Indholdsfortegnelse:

Esp8266 Ur og pulsgenerator: 3 trin
Esp8266 Ur og pulsgenerator: 3 trin

Video: Esp8266 Ur og pulsgenerator: 3 trin

Video: Esp8266 Ur og pulsgenerator: 3 trin
Video: #3 Generator || ESP8266 FLProg Ladder Logic 2024, Juli
Anonim
Esp8266 Ur og pulsgenerator
Esp8266 Ur og pulsgenerator

Denne instruks er til et enkelt stykke testudstyr; et ur og en pulsgenerator.

Det bruger i2S hardware -interface på en esp8266 til at generere et testur eller en pulssekvens. Dette gør det let at sammensætte, da der ikke kræves særlig hardware til et grundlæggende system.

  • Urgenerering fra 2Hz til 20MHz
  • Enhver frekvens kan bruges
  • Søger efter det bedste match af urdelere og bitlængde fra 160MHz basisur
  • Typisk bedre end 0,1% matcher frekvenser <100KHz
  • Markér valg af mellemrumsforhold
  • Frekvensoverensstemmelsestolerancen kan være lempet for at få bedre mærkepladshåndtering
  • Pulstoggenerering baseret på definitioner i filer
  • Webbaseret GUI, der muliggør kontrol fra pc, telefon, tablet
  • Wifi Management til at tillade let indledende router opsætning
  • OTA softwareopdatering
  • Bruger et specielt I2s -bibliotek (i2sTXcircular), der giver fleksibel kontrol

Trin 1: Hardware

Hardware
Hardware
Hardware
Hardware

Jeg konstruerede min i et 3D -trykt kabinet med et 18650 -batteri med en USB -oplader, en tænd/sluk -kontakt, et 3 -polet headerstik til udgangssignalet.

Kabinettet har en smal åbning til at holde elektronikken ved siden af batteriet.

Signalet kommer ud af GPIO3 pin (RX). Dette kan bruges direkte, men for højere drevkapacitet valgte jeg at inkludere en lille buffer ved hjælp af en 74LVC2G34. Jeg parallellerede de to buffere i denne enhed for at give endnu mere drevkapacitet.

Alt udføres bare i softwaren i enheden, og kontrol udføres ved at tilvejebringe en webserver, så en browser på en pc, telefon eller tablet giver fuld kontrol.

Trin 2: Software

Brug koden på https://github.com/roberttidey/espI2sClockGen til at opbygge og konfigurere softwaren

  • Installer i2sTXcircular -bibliotek (inkluderet)
  • Installer BaseSupport -bibliotek (https://github.com/roberttidey/BaseSupport)
  • Tilføj WifiManager -bibliotek
  • Rediger adgangskoder i BaseConfig.h
  • Kompiler og upload i Arduino -miljø
  • Konfigurer wifi -netværksadministration ved at oprette forbindelse til AP og browse til 192.168.4.1
  • uploade grundlæggende sæt filer fra datamappen ved hjælp af STA ip/upload
  • yderligere uploads kan derefter udføres ved hjælp af ip/edit - normal grænseflade er på ip/

Hvordan det virker

I2sTXcircular -biblioteket tillader opbygning af en cirkulær kæde af buffere, der derefter automatisk udsendes af i2S -hardware på esp8266 ved hjælp af DMA, så der ikke bruges software overhead, når den er i gang.

Grunduret på enheden er 160MHz, som er opdelt med et par skillevægge. Udgangssignalet bestemmes derefter af, hvilke data der lægges i bufferne, som udsendes af det opdelte ned -ur. Ved at vælge de to delere og ved at bruge potentielt flere databit til at repræsentere hver puls, kan en frekvens tilnærmes ganske tæt. Det gør det også muligt at ændre arbejdscyklussen (mærke/rumforhold mellem urimpulser).

Browserens javascript -kode forsøger at optimere valget af parametre for at give et tæt match til enhver valgt frekvens.

Selvom hovedformålet er at generere ure, er det også muligt at producere mere komplekse pulstog ved at sætte en definition i en pulsfil, som derefter styrer de data, der vil blive genereret og lagt i den cirkulære buffer. Detaljer er inkluderet i eksemplet på pulsfiler.

Trin 3: Betjening

Driften styres af browserinterfacet vist i hovedbilledet.

For normal urgenerering vælger du bare måluret og forholdet mellem mærkeplads og %. Det faktiske opnåede ur og dens fejl vises. Når der trykkes på knappen Generer ur, sendes parametrene til enheden, og urgenerering ved hjælp af disse parametre starter.

Ved at klikke på Avanceret bar kan flere detaljer ses.

Bituret viser delmultipleet på 160MHz, der bruges.

Mark og space bits viser, hvor mange bits der bruges til at repræsentere mærker og mellemrum.

Div1 og Div2 viser de to delere, der er valgt til at generere det nærmeste bitur.

Normalt vælges de to delere for at give det nærmeste match til den valgte frekvens og for at maksimere antallet af anvendte databit, hvilket hjælper med at give mere fleksibilitet i at tillade forskellige driftscyklusser. Nogle gange resulterer den bedste match imidlertid i et lavt bitantal, der efterlader lidt plads til at ændre driftscyklussen. Ved at ændre tolerance % -værdien vil delerne blive valgt til at give en frekvens inden for denne tolerance, men med potentielt flere databit brugt. Prøv f.eks. At indstille tolerance til 0,5 eller 1.

Du kan også indstille Bits per word -nummeret til at styre valg af parametre. 0 (standard) betyder, at du vælger bits pr. Ord. Et enkelt tal (f.eks. 24) betyder kun at vælge parametre, der matcher dette. Du kan også angive et område (f.eks. 24, 31). Dette fungerer kun for mål -Hz over 10KHz, under denne skalering træder i kraft, så antallet bliver ganget op.

Bufferstørrelsen viser den samlede bufferafstand, der bruges i 32 bitord. Dette vælges for at sikre, at urpulsen danner en perfekt cirkulær pasform i bufferen. Internt er denne buffer opdelt i et antal små rbuffere for at tillade den lænkede DMA at fungere.

Vælg impulser TAB for impulser. Dette viser de tilgængelige pulsfiler og en knap ved siden af hver, som vil producere et pulstog baseret på dens definition. Du kan se filens indhold ved at klikke på dets link. Flere pulsfiler kan uploades ved hjælp af ip/edit -filbrowseren. De skal starte med navnet puls.

Anbefalede: