Obsah:

Generátor hodin a pulzů Esp8266: 3 kroky
Generátor hodin a pulzů Esp8266: 3 kroky

Video: Generátor hodin a pulzů Esp8266: 3 kroky

Video: Generátor hodin a pulzů Esp8266: 3 kroky
Video: Jak naprogramovat modul Wi-Fi relé ESP8266 ESP-01 2024, Červenec
Anonim
Generátor hodin a pulsů Esp8266
Generátor hodin a pulsů Esp8266

Tento návod je pro jednoduchý kus testovacího zařízení; hodinový a pulzní generátor.

Používá hardwarové rozhraní i2S na esp8266 ke generování testovacích hodin nebo pulzní sekvence. To umožňuje snadné sestavení, protože pro základní systém není vyžadován žádný speciální hardware.

  • Generování hodin od 2 Hz do 20 MHz
  • Lze použít libovolnou frekvenci
  • Hledá nejlepší shodu děličů hodin a bitové délky od základního taktu 160 MHz
  • Typicky lepší než 0,1% shoda pro frekvence <100KHz
  • Označte výběr poměru prostoru
  • Tolerance shody frekvencí může být uvolněna, aby se dosáhlo lepšího zpracování prostoru značek
  • Generování sledu pulsů na základě definic v souborech
  • Webové GUI umožňující ovládání z PC, telefonu, tabletu
  • Wifi Management umožňující snadné počáteční nastavení routeru
  • Aktualizace softwaru OTA
  • Používá speciální knihovnu I2s (i2sTXcircular) poskytující flexibilní ovládání

Krok 1: Hardware

Hardware
Hardware
Hardware
Hardware

Svůj důl jsem zkonstruoval ve 3D tištěném pouzdře s baterií 18650 s USB nabíječkou, vypínačem/vypínačem a 3pólovým konektorem pro výstupní signál.

Skříň má úzký otvor pro držení elektroniky vedle baterie.

Signál vychází z pinu GPIO3 (RX). To lze použít přímo, ale pro vyšší možnosti pohonu jsem se rozhodl zahrnout malou vyrovnávací paměť pomocí 74LVC2G34. Paralelizoval jsem dvě vyrovnávací paměti v tomto zařízení, abych poskytl ještě více možností pohonu.

Vše se provádí pouze v softwaru v zařízení a ovládání se provádí poskytnutím webového serveru, takže prohlížeč na počítači, telefonu nebo tabletu poskytuje plnou kontrolu.

Krok 2: Software

K vytvoření a nastavení softwaru použijte kód na adrese

  • Nainstalujte si kruhovou knihovnu i2sTX (součást dodávky)
  • Nainstalujte si knihovnu BaseSupport (https://github.com/roberttidey/BaseSupport)
  • Přidejte knihovnu WifiManager
  • Upravte hesla v BaseConfig.h
  • Zkompilovat a nahrát v prostředí Arduino
  • Nastavte si správu WiFi sítě připojením k AP a procházením na 192.168.4.1
  • nahrát základní sadu souborů z datové složky pomocí STA ip/upload
  • další nahrávání pak lze provést pomocí ip/edit - normální rozhraní je na ip/

Jak to funguje

Knihovna i2sTXcircular umožňuje vybudovat kruhový řetězec vyrovnávacích pamětí, které jsou pak automaticky odesílány hardwarem i2S na esp8266 pomocí DMA, takže jakmile bude spuštěna, nebude použita žádná režie softwaru.

Základní hodiny na zařízení jsou 160 MHz, které dělí dvojice děličů. Výstupní signál je pak určen podle toho, jaká data jsou vložena do vyrovnávacích pamětí, která jsou generována dělenými hodinami dolů. Volbou dvou děličů a použitím potenciálně více datových bitů k reprezentaci každého impulsu lze pak frekvenci poměrně přiblížit. Umožňuje také měnit pracovní cyklus (poměr značka/prostor hodinových hodin).

Kód javascriptu prohlížeče se snaží optimalizovat výběr parametrů tak, aby odpovídal jakékoli vybrané frekvenci.

Ačkoli je hlavním účelem generování hodin, je také možné vytvářet složitější sledy impulzů vložením definice do souboru impulsů, který pak řídí data, která budou generována a vložena do kruhové vyrovnávací paměti. Podrobnosti jsou obsaženy v ukázkových souborech impulsů.

Krok 3: Provoz

Provoz je řízen rozhraním prohlížeče zobrazeným na hlavním obrázku.

Pro normální generování hodin stačí vybrat cílové hodiny a poměr procenta značkovacího prostoru. Zobrazí se aktuální dosažené hodiny a jejich chyba. Po stisknutí tlačítka Generovat hodiny se parametry odešlou do zařízení a spustí se generování hodin pomocí těchto parametrů.

Kliknutím na lištu Upřesnit zobrazíte další podrobnosti.

Bitové hodiny ukazují dílčí násobek 160 MHz, který se používá.

Značkové a mezerové bity ukazují, kolik bitů se používá k reprezentaci značek a mezer.

Div1 a Div2 ukazují dva děliče, které byly vybrány pro generování nejbližší bitové hodiny.

Obvykle jsou dva děliče vybrány tak, aby poskytovaly nejbližší shodu se zvolenou frekvencí a maximalizovaly počet použitých datových bitů, což pomáhá zajistit větší flexibilitu umožňující různé pracovní cykly. Někdy však nejlepší shoda vede k nízkému počtu bitů a ponechává malý prostor pro změnu pracovního cyklu. Změnou hodnoty % tolerance budou zvoleny děliče tak, aby poskytovaly frekvenci v rámci této tolerance, ale s potenciálně více použitými datovými bity. Zkuste například nastavit toleranci na 0,5 nebo 1.

Můžete také nastavit počet bitů na slovo pro ovládání výběru parametrů. 0 (výchozí) znamená vybrat libovolné bity na slovo. Jediné číslo (např. 24) znamená, že zvolíte pouze parametry, které tomu odpovídají. Můžete také zadat rozsah (např. 24, 31). Toto funguje pouze pro cílové Hz nad 10KHz, pod tímto měřítkem se projeví, takže se číslo znásobí.

Velikost vyrovnávací paměti ukazuje celkovou mezeru v mezipaměti použitou ve 32bitových slovech. Toto je zvoleno tak, aby hodinový puls tvořil dokonalé kruhové uložení do vyrovnávací paměti. Interně je tato vyrovnávací paměť rozdělena na několik malých rbufferů, aby mohla řetězová DMA fungovat.

Pro provoz impulsů zvolte pulzy TAB. Toto ukazuje dostupné soubory pulzů a tlačítko vedle každého z nich, které vytvoří sled pulzů na základě jeho definice. Obsah souboru můžete zobrazit kliknutím na jeho odkaz. Více impulsních souborů lze nahrát pomocí prohlížeče souborů ip/edit. Měli by začínat pulsem jména.

Doporučuje: