Cuprins:

Esp8266 Generator de ceasuri și impulsuri: 3 pași
Esp8266 Generator de ceasuri și impulsuri: 3 pași

Video: Esp8266 Generator de ceasuri și impulsuri: 3 pași

Video: Esp8266 Generator de ceasuri și impulsuri: 3 pași
Video: MIcrocontrolere - Curs 2 -2021 2024, Iulie
Anonim
Esp8266 Generator de ceasuri și impulsuri
Esp8266 Generator de ceasuri și impulsuri

Acest instructable este pentru o piesă simplă de echipament de testare; un generator de ceas și impulsuri.

Folosește interfața hardware i2S pe un esp8266 pentru a genera un ceas de test sau o secvență de impulsuri. Acest lucru îl face ușor de asamblat, deoarece nu este necesar un hardware special pentru un sistem de bază.

  • Generarea ceasului de la 2Hz la 20MHz
  • Se poate utiliza orice frecvență
  • Caută cea mai bună potrivire a divizoarelor de ceas și a lungimii de biți de la ceasul de bază de 160 MHz
  • De obicei, mai bine de 0,1% potrivire pentru frecvențe <100KHz
  • Marcați selecția raportului de spațiu
  • Toleranța de potrivire a frecvenței poate fi relaxată pentru a obține o mai bună manevrare a spațiului
  • Generarea trenului de impulsuri pe baza definițiilor din fișiere
  • GUI bazat pe web care permite controlul de pe PC, telefon, tabletă
  • Gestionarea Wifi pentru a permite configurarea ușoară a routerului inițial
  • Actualizare software OTA
  • Folosește o bibliotecă specială I2s (i2sTXcircular) care oferă un control flexibil

Pasul 1: Hardware

Hardware
Hardware
Hardware
Hardware

Mi-am construit-o într-o carcasă tipărită 3D care conține o baterie 18650 cu un încărcător USB, un comutator de pornire / oprire, o fișă antet cu 3 pini pentru semnalul de ieșire.

Carcasa are un slot îngust pentru a ține electronica lângă baterie.

Semnalul iese din pinul GPIO3 (RX). Acest lucru poate fi utilizat direct, dar pentru o capacitate mai mare de unitate am ales să includ un mic buffer folosind un 74LVC2G34. Am paralelizat cele două buffere din acest dispozitiv pentru a oferi și mai multă capacitate de unitate.

Totul se face doar în software-ul dispozitivului, iar controlul se face prin furnizarea unui server web, astfel încât un browser de pe un computer, telefon sau tabletă să ofere control complet.

Pasul 2: Software

Pentru a construi și configura software-ul, utilizați codul la

  • Instalați biblioteca i2sTXcircular (inclusă)
  • Instalați biblioteca BaseSupport (https://github.com/roberttidey/BaseSupport)
  • Adăugați o bibliotecă WifiManager
  • Editați parolele în BaseConfig.h
  • Compilați și încărcați în mediul Arduino
  • Configurați gestionarea rețelei wifi conectându-vă la AP și navigând la 192.168.4.1
  • încărcați setul de bază de fișiere din folderul de date folosind STA ip / upload
  • încărcări ulterioare se pot face apoi folosind ip / edit - interfața normală este la ip /

Cum functioneaza

Biblioteca i2sTXcircular permite construirea unui lanț circular de buffere care sunt apoi trimise automat de hardware-ul i2S pe esp8266 utilizând DMA, astfel încât să nu fie folosită nicio cheltuială software odată ce merge.

Ceasul de bază al dispozitivului este de 160 MHz, care este împărțit la o pereche de separatoare. Semnalul de ieșire este apoi determinat de ce date sunt introduse în tampoanele care sunt emise de ceasul împărțit. Alegând cei doi divizori și folosind biți de date potențial multipli pentru a reprezenta fiecare impuls, atunci o frecvență poate fi aproximată destul de strâns. De asemenea, permite variația ciclului de funcționare (raport marca / spațiu al impulsurilor de ceas).

Codul javascript al browserului încearcă să optimizeze alegerea parametrilor pentru a oferi o potrivire strânsă cu orice frecvență selectată.

Deși scopul principal este generarea de ceasuri, este de asemenea posibil să se producă trenuri de impulsuri mai complexe prin introducerea unei definiții într-un fișier de impulsuri care apoi controlează datele care vor fi generate și introduse în tamponul circular. Detaliile sunt în exemplul de fișiere de impulsuri incluse.

Pasul 3: Operațiune

Funcționarea este controlată de interfața browserului prezentată în imaginea principală.

Pentru generarea normală a ceasului, trebuie doar să selectați ceasul țintă și raportul% spațiu de marcare. Ceasul real realizat și eroarea acestuia sunt afișate. Când este apăsat butonul Generare ceas, atunci parametrii sunt trimiși la dispozitiv și generarea ceasului utilizând acești parametri începe.

Făcând clic pe bara Avansată pot fi văzute mai multe detalii.

Ceasul de biți arată sub-multiplul de 160 MHz care este utilizat.

Biții de marcare și spațiu arată câte biți sunt folosiți pentru a reprezenta mărci și spații.

Div1 și Div2 arată cele două divizoare care au fost alese pentru a genera cel mai apropiat ceas de biți.

În mod normal, cele două divizoare sunt alese pentru a oferi cea mai apropiată potrivire cu frecvența aleasă și pentru a maximiza numărul de biți de date utilizați, ceea ce ajută la oferirea unei flexibilități mai mari în a permite cicluri de funcționare diferite. Cu toate acestea, uneori cea mai bună potrivire are ca rezultat un număr mic de biți, lăsând puțin loc pentru schimbarea ciclului de funcționare. Prin modificarea valorii% a toleranței, separatorii vor fi aleși pentru a da o frecvență în cadrul acestei toleranțe, dar cu potențial mai mulți biți de date utilizați. Încercați, de exemplu, să setați toleranța la 0,5 sau 1.

De asemenea, puteți seta numărul de biți pe cuvânt pentru a controla alegerea parametrilor. 0 (implicit) înseamnă alegerea oricăror biți pe cuvânt. Un singur număr (de exemplu, 24) înseamnă doar alegerea parametrilor care se potrivesc cu acesta. De asemenea, puteți introduce o gamă (de exemplu, 24, 31). Acest lucru funcționează numai pentru Hz țintă peste 10KHz, sub această scalare va intra în vigoare, astfel încât numărul să se înmulțească.

Dimensiunea bufferului arată bufferul spațiat total utilizat în cuvinte pe 32 de biți. Aceasta este aleasă pentru a se asigura că pulsul ceasului formează o potrivire circulară perfectă în tampon. Intern, acest buffer este împărțit într-un număr de tampoane mici pentru a permite DMA înlănțuit să funcționeze.

Pentru funcționarea impulsurilor, alegeți impulsurile TAB. Aceasta arată fișierele de impulsuri disponibile și un buton lângă fiecare care va produce un tren de impulsuri pe baza definiției sale. Puteți vedea conținutul fișierului făcând clic pe linkul acestuia. Mai multe fișiere puls pot fi încărcate folosind browserul de fișiere ip / edit. Ar trebui să înceapă cu numele puls.

Recomandat: