Obsah:

Generátor hodín a impulzov Esp8266: 3 kroky
Generátor hodín a impulzov Esp8266: 3 kroky

Video: Generátor hodín a impulzov Esp8266: 3 kroky

Video: Generátor hodín a impulzov Esp8266: 3 kroky
Video: Удаленно контролировать энергопотребление дома | ПЗЭМ-004Т | Облако Интернета вещей RemoteXY 2024, Júl
Anonim
Generátor hodín a impulzov Esp8266
Generátor hodín a impulzov Esp8266

Tento návod je pre jednoduchý kus testovacieho zariadenia; hodinový a impulzný generátor.

Na generovanie testovacích hodín alebo sekvencie impulzov používa hardvérové rozhranie i2S na esp8266. To uľahčuje zostavenie, pretože pre základný systém nie je potrebný žiadny špeciálny hardvér.

  • Generovanie hodín od 2 Hz do 20 MHz
  • Je možné použiť akúkoľvek frekvenciu
  • Hľadá najlepšiu zhodu rozdeľovačov hodín a bitovej dĺžky od základného taktu 160 MHz
  • Typicky lepšie ako 0,1% pre frekvencie <100 KHz
  • Označte výber pomeru priestoru
  • Aby bola zaistená lepšia manipulácia s priestorom značiek, môže byť tolerancia zhody frekvencií uvoľnená
  • Generovanie impulzného sledu na základe definícií v súboroch
  • Webové grafické rozhranie umožňujúce ovládanie z počítača, telefónu, tabletu
  • Wifi Management, ktorý umožňuje jednoduché počiatočné nastavenie routera
  • Aktualizácia softvéru OTA
  • Používa špeciálnu knižnicu I2s (i2sTXcircular), ktorá poskytuje flexibilné ovládanie

Krok 1: Hardvér

Hardvér
Hardvér
Hardvér
Hardvér

Moje som skonštruoval v 3D tlačenom kryte s batériou 18650 s nabíjačkou USB, vypínačom/vypínačom a 3 -pólovou zástrčkou konektora pre výstupný signál.

Kryt má úzky otvor na uchytenie elektroniky vedľa batérie.

Signál vychádza z kolíka GPIO3 (RX). Toto je možné použiť priamo, ale kvôli vyššej schopnosti disku som sa rozhodol zahrnúť malú vyrovnávaciu pamäť pomocou 74LVC2G34. Paralelizoval som dve vyrovnávacie pamäte v tomto zariadení, aby som poskytol ešte väčšiu kapacitu disku.

Všetko sa robí iba v softvéri v zariadení a ovládanie sa vykonáva pomocou webového servera, takže prehliadač v počítači, telefóne alebo tablete poskytuje plnú kontrolu.

Krok 2: Softvér

Na zostavenie a nastavenie softvéru použite kód na

  • Nainštalujte si kruhovú knižnicu i2sTX (súčasťou dodávky)
  • Nainštalujte si knižnicu BaseSupport (https://github.com/roberttidey/BaseSupport)
  • Pridajte knižnicu WifiManager
  • Upravte heslá v BaseConfig.h
  • Kompilujte a nahrávajte v prostredí Arduino
  • Nastavte správu siete Wi -Fi pripojením k AP a prehliadaním na adrese 192.168.4.1
  • nahrajte základnú sadu súborov z dátového priečinka pomocou STA ip/upload
  • ďalšie nahrávania je potom možné vykonať pomocou ip/edit - normálne rozhranie je na ip/

Ako to funguje

Kruhová knižnica i2sTX umožňuje vybudovanie kruhového reťazca vyrovnávacích pamätí, ktoré sú potom hardvérom i2S automaticky odosielané na serveri esp8266 pomocou DMA, takže akonáhle sa spustí, nepoužije sa žiadna réžia softvéru.

Základné hodiny na zariadení sú 160 MHz, ktoré delí dvojica deličov. Výstupný signál je potom určený tým, aké údaje sú vložené do vyrovnávacích pamätí, ktoré sú generované delenými hodinami. Výberom dvoch deličov a použitím potenciálne viacerých dátových bitov na reprezentáciu každého impulzu je potom možné frekvenciu celkom aproximovať. Umožňuje tiež meniť pracovný cyklus (pomer značka/priestor hodinových impulzov).

Kód JavaScriptu prehliadača sa pokúša optimalizovať výber parametrov tak, aby zodpovedali akejkoľvek zvolenej frekvencii.

Napriek tomu, že hlavným účelom je generovanie hodín, je tiež možné vyrábať zložitejšie sledy impulzov vložením definície do súboru impulzov, ktorý potom riadi údaje, ktoré budú generované a vložené do kruhovej vyrovnávacej pamäte. Podrobnosti sú zahrnuté v zahrnutých príkladoch súborov impulzov.

Krok 3: Prevádzka

Prevádzku ovláda rozhranie prehliadača zobrazené na hlavnom obrázku.

Pri normálnom generovaní hodín stačí vybrať cieľové hodiny a pomer označeného priestoru v %. Zobrazia sa aktuálne dosiahnuté hodiny a ich chyba. Po stlačení tlačidla Generovať hodiny sa parametre odošlú do zariadenia a spustí sa generovanie hodín pomocou týchto parametrov.

Po kliknutí na lištu Rozšírené sa zobrazia ďalšie podrobnosti.

Bitové hodiny ukazujú sub-násobok 160 MHz, ktorý sa používa.

Značkové a medzerové bity ukazujú, koľko bitov sa používa na reprezentáciu značiek a medzier.

Div1 a Div2 zobrazujú dva rozdeľovače, ktoré boli zvolené na generovanie najbližších bitových hodín.

Normálne sú dva rozdeľovače zvolené tak, aby poskytovali najbližšiu zhodu so zvolenou frekvenciou a maximalizovali počet použitých dátových bitov, čo pomáha pri poskytovaní väčšej flexibility pri povoľovaní rôznych pracovných cyklov. Niekedy však najlepšia zhoda vyústi do nízkeho počtu bitov a ponechá malý priestor na zmenu pracovného cyklu. Zmenou hodnoty % tolerancie budú zvolené rozdeľovače tak, aby poskytovali frekvenciu v rámci tejto tolerancie, ale s potenciálne použitým väčším počtom dátových bitov. Skúste napríklad nastaviť toleranciu na 0,5 alebo 1.

Môžete tiež nastaviť počet bitov na slovo, aby ste mohli ovládať výber parametrov. 0 (predvolené) znamená vybrať akékoľvek bity za slovo. Jedno číslo (napr. 24) znamená, že si vyberiete iba parametre, ktoré tomu zodpovedajú. Môžete tiež zaradiť do rozsahu (napr. 24, 31). Funguje to iba pri cieľových Hz nad 10 kHz, pod týmto stupňovaním sa prejaví, aby sa číslo znásobilo.

Veľkosť vyrovnávacej pamäte zobrazuje celkový rozstup vyrovnávacej pamäte použitý v 32 bitových slovách. Toto je zvolené tak, aby hodinový impulz tvoril perfektný kruhový tvar do vyrovnávacej pamäte. Vnútorne je táto vyrovnávacia pamäť rozdelená na niekoľko malých buferov, aby reťazová DMA mohla fungovať.

Pre prevádzku impulzov zvoľte impulzy TAB. Toto zobrazuje dostupné súbory impulzov a tlačidlo vedľa každého z nich, ktoré na základe jeho definície vyrobí sled impulzov. Obsah súboru si môžete prezrieť kliknutím na jeho odkaz. Viac impulzných súborov je možné nahrať pomocou prehliadača súborov ip/edit. Mali by začínať názvom pulz.

Odporúča: