INHOUDSOPGAWE:

Esp8266 Klok- en polsgenerator: 3 stappe
Esp8266 Klok- en polsgenerator: 3 stappe

Video: Esp8266 Klok- en polsgenerator: 3 stappe

Video: Esp8266 Klok- en polsgenerator: 3 stappe
Video: IoT: скорость управления двигателем постоянного тока с NodeMCU ESP8266 и модулем L298N 2024, Julie
Anonim
Esp8266 klok en pols generator
Esp8266 klok en pols generator

Hierdie instruksie is bedoel vir 'n eenvoudige stuk toetsapparatuur; 'n klok en pols kragopwekker.

Dit gebruik die i2S hardeware -koppelvlak op 'n esp8266 om 'n toetshorlosie of 'n polsreeks te genereer. Dit maak dit maklik om saam te stel, aangesien geen spesiale hardeware nodig is vir 'n basiese stelsel nie.

  • Klokopwekking van 2Hz tot 20MHz
  • Enige frekwensie mag gebruik word
  • Soek na die beste pas van klokverdelers en bitlengte vanaf 160MHz basisklok
  • Gewoonlik pas beter as 0,1% by frekwensies <100KHz
  • Merk die keuse van ruimteverhouding
  • Die frekwensie -ooreenstemmende verdraagsaamheid kan verslap word om 'n beter merkruimte te hanteer
  • Puls trein generasie gebaseer op definisies in lêers
  • Webgebaseerde GUI wat beheer vanaf rekenaar, telefoon, tablet moontlik maak
  • Wifi -bestuur om maklike aanvanklike router op te stel
  • OTA sagteware -opdatering
  • Gebruik 'n spesiale I2s -biblioteek (i2sTXcircular) wat buigsame beheer bied

Stap 1: Hardeware

Hardeware
Hardeware
Hardeware
Hardeware

Ek het myne gebou in 'n 3D -gedrukte omhulsel met 'n 18650 -battery met 'n USB -laaier, 'n aan/uit -skakelaar, 'n 3 -pins kopstekker vir die uitsetsignaal.

Die omhulsel het 'n smal gleuf om die elektronika langs die battery te hou.

Die sein kom uit die GPIO3 -pen (RX). Dit kan direk gebruik word, maar vir 'n groter dryfvermoë het ek gekies om 'n bietjie buffer in te sluit met 'n 74LVC2G34. Ek het die twee buffers in hierdie toestel gelyktydig gemaak om nog meer dryfvermoë te bied.

Alles word uitgevoer net in die sagteware van die toestel, en die beheer word uitgevoer deur 'n webbediener te voorsien sodat 'n blaaier op 'n rekenaar, telefoon of tablet volle beheer bied.

Stap 2: sagteware

Gebruik die kode op https://github.com/roberttidey/espI2sClockGen om die sagteware te bou en op te stel

  • Installeer i2sTXcircular library (ingesluit)
  • Installeer BaseSupport -biblioteek (https://github.com/roberttidey/BaseSupport)
  • Voeg WifiManager -biblioteek by
  • Wysig wagwoorde in BaseConfig.h
  • Stel op en laai op in die Arduino -omgewing
  • Stel wifi -netwerkbestuur in deur aan te sluit op AP en na 192.168.4.1 te blaai
  • Laai basiese stel lêers op uit die databasis met behulp van STA ip/upload
  • verdere oplaai kan dan met behulp van ip/edit gedoen word - normale koppelvlak is by ip/

Hoe dit werk

Die i2sTXcircular -biblioteek maak dit moontlik om 'n sirkelvormige ketting buffers te bou wat dan outomaties deur die i2S -hardeware op die esp8266 uitgevoer word met behulp van DMA, sodat geen sagtewarekoste gebruik word sodra dit aan die gang is nie.

Die basiese klok op die toestel is 160MHz, wat deur 'n paar verdelers gedeel word. Die uitsetsignaal word dan bepaal deur watter data in die buffers geplaas word, wat deur die verdeelklok afgegee word. Deur die twee verdelers te kies en deur potensieel veelvoudige databits te gebruik om elke pols voor te stel, kan 'n frekwensie baie naby benader word. Dit laat ook toe dat die werksiklus (merk/spasie -verhouding van klokpulse) verander word.

Die javascript -kode van die blaaier probeer die keuse van parameters optimaliseer om by enige geselekteerde frekwensie te pas.

Alhoewel die hoofdoel vir die opwekking van horlosies is, is dit ook moontlik om meer komplekse polstreine te vervaardig deur 'n definisie in 'n polslêer te plaas, wat dan die data wat gegenereer word, in die sirkelbuffer plaas. Besonderhede is in die voorbeeld polslêers ingesluit.

Stap 3: werking

Die werking word beheer deur die blaaier -koppelvlak wat in die hoofbeeld getoon word.

Vir die normale klokopwekking kies u net die doelklok en die verhouding tussen die spasie en die spasie. Die werklike bereikte klok en die fout word vertoon. As die Generate Clock -knoppie ingedruk word, word die parameters na die toestel gestuur en die klokgenerering met behulp van hierdie parameters begin.

Deur op die gevorderde balk te klik, kan u meer besonderhede sien.

Die bitklok toon die sub-veelvoud van 160MHz wat gebruik word.

Merk- en spasie -stukkies wys hoeveel stukkies gebruik word om merke en spasies voor te stel.

Div1 en Div2 toon die twee verdelers wat gekies is om die naaste bitklok te genereer.

Normaalweg word die twee verdelers gekies om die naaste pasmaat aan die gekose frekwensie te gee en om die aantal datastukke wat gebruik word, te maksimeer, wat meer buigsaamheid bied om verskillende werksiklusse moontlik te maak. Soms lei die beste pasmaat egter tot 'n lae bitsyfer wat min ruimte laat vir die verandering van die werksiklus. Deur die toleransie % -waarde te verander, word die verdelers gekies om 'n frekwensie binne hierdie toleransie te gee, maar moontlik meer data -stukkies gebruik. Probeer byvoorbeeld om toleransie op 0,5 of 1 te stel.

U kan ook die nommer Bits per woord stel om die keuse van parameters te beheer. 0 (standaard) beteken dat u enige stukkies per woord kies. 'N Enkele getal (bv. 24) beteken slegs kies parameters wat hierby pas. U kan ook 'n reeks bereik (bv. 24, 31). Dit werk slegs vir die teiken Hz bo 10KHz, onder hierdie skaal tree in werking sodat die getal vermeerder word.

Die buffer grootte toon die totale buffer gespasieer gebruik in 32 bit woorde. Dit word gekies om te verseker dat die klokpuls 'n perfekte sirkelvormige pas in die buffer vorm. Intern is hierdie buffer verdeel in 'n aantal klein ruffers om die geketting DMA te laat funksioneer.

Kies die pulse TAB vir pulse werking. Dit toon die beskikbare polslêers en 'n knoppie langs elkeen wat 'n polsstrein sal produseer op grond van die definisie daarvan. U kan die inhoud van die lêer sien deur op die skakel te klik. Meer polslêers kan met die ip/edit -lêerblaaier opgelaai word. Hulle moet begin met die naam pols.

Aanbeveel: