Spisu treści:
Wideo: Esp8266 Zegar i generator impulsów: 3 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:26
Ta instrukcja dotyczy prostego sprzętu testowego; zegar i generator impulsów.
Wykorzystuje interfejs sprzętowy i2S w esp8266 do generowania zegara testowego lub sekwencji impulsów. Ułatwia to składanie, ponieważ podstawowy system nie wymaga specjalnego sprzętu.
- Generowanie zegara od 2Hz do 20MHz
- Można użyć dowolnej częstotliwości
- Wyszukuje najlepsze dopasowanie dzielników zegara i długości bitów od zegara bazowego 160 MHz
- Zazwyczaj lepsze niż 0,1% dopasowanie dla częstotliwości <100 KHz
- Zaznacz wybór stosunku odstępu
- Tolerancja dopasowania częstotliwości może zostać złagodzona, aby uzyskać lepszą obsługę przestrzeni znakowania
- Generowanie pociągów impulsowych na podstawie definicji w plikach
- GUI oparte na sieci Web umożliwiające sterowanie z komputera, telefonu, tabletu
- Zarządzanie Wi-Fi, aby umożliwić łatwą początkową konfigurację routera
- Aktualizacja oprogramowania OTA
- Wykorzystuje specjalną bibliotekę I2s (i2sTXcircular) dającą elastyczną kontrolę
Krok 1: Sprzęt
Kopalnię zbudowałem w obudowie wydrukowanej w 3D, zawierającej baterię 18650 z ładowarką USB, włącznikiem/wyłącznikiem, 3-pinową wtyczką dla sygnału wyjściowego.
Obudowa posiada wąskie gniazdo do trzymania elektroniki obok akumulatora.
Sygnał wychodzi z pinu GPIO3 (RX). Można tego użyć bezpośrednio, ale dla większej wydajności napędu zdecydowałem się dołączyć mały bufor przy użyciu 74LVC2G34. Połączyłem dwa bufory równolegle w tym urządzeniu, aby zapewnić jeszcze więcej możliwości napędu.
Wszystko odbywa się tylko w oprogramowaniu w urządzeniu, a sterowanie odbywa się poprzez udostępnienie serwera WWW, dzięki czemu przeglądarka na komputerze, telefonie lub tablecie zapewnia pełną kontrolę.
Krok 2: Oprogramowanie
Aby zbudować i skonfigurować oprogramowanie, użyj kodu na
- Zainstaluj bibliotekę i2sTXcircular (w zestawie)
- Zainstaluj bibliotekę BaseSupport (https://github.com/roberttidey/BaseSupport)
- Dodaj bibliotekę WifiManager
- Edytuj hasła w BaseConfig.h
- Kompiluj i przesyłaj w środowisku Arduino
- Skonfiguruj zarządzanie siecią Wi-Fi, łącząc się z AP i przechodząc do 192.168.4.1
- wgraj podstawowy zestaw plików z folderu danych za pomocą STA ip/upload
- dalsze przesyłanie może być wykonane za pomocą ip/edit - normalny interfejs jest na ip/
Jak to działa
Biblioteka i2sTXcircular umożliwia budowanie kołowego łańcucha buforów, które są następnie automatycznie wyprowadzane przez sprzęt i2S na esp8266 przy użyciu DMA, dzięki czemu nie jest używane żadne dodatkowe oprogramowanie po uruchomieniu.
Podstawowy zegar urządzenia to 160 MHz, który jest podzielony przez parę dzielników. Sygnał wyjściowy jest następnie określany przez to, jakie dane są umieszczane w buforach, które są wyprowadzane przez dzielony niższy zegar. Wybierając dwa dzielniki i używając potencjalnie wielu bitów danych do reprezentowania każdego impulsu, można dość dokładnie przybliżyć częstotliwość. Pozwala również na zmianę cyklu pracy (stosunek znak/przestrzeń impulsów zegarowych).
Kod javascript przeglądarki próbuje zoptymalizować wybór parametrów, aby zapewnić ścisłe dopasowanie do dowolnej wybranej częstotliwości.
Chociaż głównym celem jest generowanie zegarów, możliwe jest również wytwarzanie bardziej złożonych ciągów impulsów poprzez umieszczenie definicji w pliku impulsów, który następnie kontroluje dane, które zostaną wygenerowane i umieszczone w buforze kołowym. Szczegóły znajdują się w załączonych przykładowych plikach impulsowych.
Krok 3: Operacja
Operacja jest kontrolowana przez interfejs przeglądarki pokazany na głównym obrazie.
W przypadku normalnego generowania zegara wystarczy wybrać zegar docelowy i współczynnik odstępu znaku %. Wyświetlany jest rzeczywisty osiągnięty zegar i jego błąd. Po naciśnięciu przycisku Generuj zegar parametry są wysyłane do urządzenia i rozpoczyna się generowanie zegara przy użyciu tych parametrów.
Klikając na pasek Zaawansowane możesz zobaczyć więcej szczegółów.
Zegar bitowy pokazuje podwielokrotność 160 MHz, która jest używana.
Bity znaku i odstępu pokazują, ile bitów jest używanych do reprezentowania znaków i spacji.
Div1 i Div2 pokazują dwa dzielniki, które zostały wybrane do wygenerowania najbliższego zegara bitowego.
Zwykle dwa dzielniki są wybierane w taki sposób, aby zapewnić jak najbliższe dopasowanie do wybranej częstotliwości i zmaksymalizować liczbę używanych bitów danych, co pomaga w zapewnieniu większej elastyczności w umożliwianiu różnych cykli pracy. Jednak czasami najlepsze dopasowanie skutkuje niską liczbą bitów, pozostawiając niewiele miejsca na zmianę cyklu pracy. Zmieniając wartość procentową tolerancji, dzielniki zostaną wybrane tak, aby dać częstotliwość w ramach tej tolerancji, ale z potencjalnie większą liczbą użytych bitów danych. Spróbuj na przykład ustawić tolerancję na 0,5 lub 1.
Możesz również ustawić liczbę bitów na słowo, aby kontrolować wybór parametrów. 0 (domyślnie) oznacza wybór dowolnych bitów na słowo. Pojedyncza liczba (np. 24) oznacza tylko wybór parametrów, które do niej pasują. Możesz również umieścić w zakresie (np. 24, 31). Działa to tylko dla docelowego Hz powyżej 10 kHz, poniżej tego skalowania będzie obowiązywać tak, że liczba zostanie pomnożona.
Rozmiar bufora pokazuje całkowity odstęp bufora użyty w słowach 32-bitowych. Jest to wybrane, aby zapewnić, że impuls zegarowy będzie idealnie pasował do bufora. Wewnętrznie ten bufor jest podzielony na kilka mniejszych rbufferów, aby umożliwić działanie połączonego DMA.
Dla pracy impulsowej wybierz impulsy TAB. Pokazuje dostępne pliki impulsów i przycisk obok każdego z nich, który utworzy ciąg impulsów na podstawie jego definicji. Możesz zobaczyć zawartość pliku, klikając jego link. Więcej plików pulsu można przesłać za pomocą przeglądarki plików ip/edit. Powinny zaczynać się od pulsu imienia.
Zalecana:
Jak zrobić zegar analogowy i zegar cyfrowy z paskiem LED za pomocą Arduino: 3 kroki
Jak zrobić zegar analogowy i zegar cyfrowy z paskiem LED za pomocą Arduino: Dzisiaj zrobimy zegar analogowy i amp; Zegar cyfrowy z paskiem Led i modułem MAX7219 Dot z Arduino. Koryguje czas z lokalną strefą czasową. Zegar analogowy może wykorzystywać dłuższą taśmę LED, dzięki czemu można go zawiesić na ścianie, aby stać się grafiką
ESP8266 Zegar sieciowy bez zegara RTC - Nodemcu NTP Zegar bez RTC - PROJEKT ZEGAR INTERNETOWY: 4 kroki
ESP8266 Zegar sieciowy bez zegara RTC | Nodemcu NTP Zegar bez RTC | PROJEKT ZEGARA INTERNETOWEGO: W projekcie będzie wykonywany projekt zegara bez RTC, będzie pobierał czas z internetu za pomocą wifi i wyświetli go na wyświetlaczu st7735
Mikrokontroler AVR. Modulacja szerokości impulsów. Kontroler silnika prądu stałego i natężenia światła LED.: 6 kroków
Mikrokontroler AVR. Modulacja szerokości impulsów. Kontroler silnika prądu stałego i natężenia światła LED.: Witam wszystkich! Modulacja szerokości impulsu (PWM) jest bardzo powszechną techniką w telekomunikacji i kontroli zasilania. jest powszechnie używany do sterowania zasilaniem urządzenia elektrycznego, niezależnie od tego, czy jest to silnik, dioda LED, głośniki itp. Jest to w zasadzie modu
Generator impulsów o fali prostokątnej Fast Edge: 4 kroki
Generator impulsów prostokątnych Fast Edge: Generator impulsów prostokątnych Fast Edge - Ultra szybki generator impulsów prostokątnych Ten prosty obwód, wykorzystujący 74HC14N (sześć falowników TTL o niskiej szybkości narastania), jest w stanie generować sygnały fali prostokątnej do 10 MHz. Idealny do niektórych testów elektroniki. Z zgnilizną
Sonda logiczna z wykrywaniem impulsów: 8 kroków
Sonda logiczna z wykrywaniem impulsów: sonda TWO TRANSISTOR LOGC PROBE wprowadzona przez jazzzzzhttps://www.instructables.com/id/Two-Transistor-Logic-Probe/ jest prosta - ale nie głupia - działa bardzo dobrze określając poziom logiczny TTL i CMOS. Głównym problemem w testowaniu obwodów cyfrowych jest