Sommario:

Esp8266 Orologio e generatore di impulsi: 3 passaggi
Esp8266 Orologio e generatore di impulsi: 3 passaggi

Video: Esp8266 Orologio e generatore di impulsi: 3 passaggi

Video: Esp8266 Orologio e generatore di impulsi: 3 passaggi
Video: Aereo che si schianta atterrando 2024, Dicembre
Anonim
Esp8266 Orologio e generatore di impulsi
Esp8266 Orologio e generatore di impulsi

Questo istruibile è per un semplice pezzo di attrezzatura di prova; un orologio e un generatore di impulsi.

Utilizza l'interfaccia hardware i2S su un esp8266 per generare un clock di prova o una sequenza di impulsi. Ciò semplifica l'assemblaggio poiché non è richiesto alcun hardware speciale per un sistema di base.

  • Generazione di clock da 2Hz a 20MHz
  • È possibile utilizzare qualsiasi frequenza
  • Cerca la migliore corrispondenza tra divisori di clock e lunghezza in bit da un clock di base a 160 MHz
  • Tipicamente migliore della corrispondenza dello 0,1% per le frequenze <100KHz
  • Segna la selezione del rapporto di spazio
  • La tolleranza di corrispondenza della frequenza può essere ridotta per ottenere una migliore gestione dello spazio del segno
  • Generazione di treni di impulsi in base alle definizioni nei file
  • GUI basata sul Web che consente il controllo da PC, telefono, tablet
  • Gestione Wi-Fi per consentire una facile configurazione iniziale del router
  • Aggiornamento software OTA
  • Utilizza una speciale libreria I2s (i2sTXcircular) che offre un controllo flessibile

Passaggio 1: hardware

Hardware
Hardware
Hardware
Hardware

Ho costruito il mio in un contenitore stampato in 3D contenente una batteria 18650 con un caricabatterie USB, un interruttore on/off, un connettore a 3 pin per il segnale di uscita.

La custodia ha uno slot stretto per tenere l'elettronica accanto alla batteria.

Il segnale esce dal pin GPIO3 (RX). Questo può essere usato direttamente, ma per una maggiore capacità di guida ho scelto di includere un piccolo buffer usando un 74LVC2G34. Ho messo in parallelo i due buffer in questo dispositivo per fornire ancora più capacità di guida.

Tutto viene eseguito solo nel software nel dispositivo e il controllo viene eseguito fornendo un server Web in modo che un browser su un PC, telefono o tablet fornisca il controllo completo.

Passaggio 2: software

Per costruire e configurare il software usa il codice su

  • Installa la libreria circolare i2sTX (inclusa)
  • Installa la libreria BaseSupport (https://github.com/roberttidy/BaseSupport)
  • Aggiungi la libreria WifiManager
  • Modifica le password in BaseConfig.h
  • Compila e carica in ambiente Arduino
  • Configura la gestione della rete wifi collegandoti all'AP e navigando su 192.168.4.1
  • caricare un set di file di base dalla cartella dei dati utilizzando STA ip/upload
  • ulteriori caricamenti possono quindi essere eseguiti utilizzando ip/edit - l'interfaccia normale è su ip/

Come funziona

La libreria i2sTXcircular consente di creare una catena circolare di buffer che vengono quindi emessi automaticamente dall'hardware i2S su esp8266 utilizzando DMA in modo che non venga utilizzato alcun sovraccarico software una volta avviato.

L'orologio di base sul dispositivo è 160 MHz che è diviso da una coppia di divisori. Il segnale di uscita viene quindi determinato da quali dati vengono inseriti nei buffer che vengono emessi dal clock diviso. Scegliendo i due divisori e utilizzando bit di dati potenzialmente multipli per rappresentare ciascun impulso, una frequenza può essere approssimata abbastanza da vicino. Consente inoltre di variare il ciclo di lavoro (rapporto segno/spazio degli impulsi di clock).

Il codice javascript del browser cerca di ottimizzare la scelta dei parametri per dare una stretta corrispondenza a qualsiasi frequenza selezionata.

Sebbene lo scopo principale sia quello di generare clock, è anche possibile produrre treni di impulsi più complessi inserendo una definizione in un file di impulsi che controlla quindi i dati che verranno generati e inseriti nel buffer circolare. I dettagli sono nei file di esempio di impulsi inclusi.

Passaggio 3: operazione

Il funzionamento è controllato dall'interfaccia del browser mostrata nell'immagine principale.

Per la normale generazione di clock è sufficiente selezionare il clock target e il rapporto % dello spazio di marcatura. Vengono visualizzati l'orologio effettivamente raggiunto e il relativo errore. Quando viene premuto il pulsante Genera orologio, i parametri vengono inviati al dispositivo e viene avviata la generazione dell'orologio utilizzando questi parametri.

Cliccando sulla barra Avanzate si possono vedere maggiori dettagli.

Il bit clock mostra il sottomultiplo di 160MHz che viene utilizzato.

I bit di segno e spazio mostrano quanti bit vengono utilizzati per rappresentare segni e spazi.

Div1 e Div2 mostrano i due divisori che sono stati scelti per generare il bit clock più vicino.

Normalmente i due divisori vengono scelti per fornire la corrispondenza più vicina alla frequenza scelta e per massimizzare il numero di bit di dati utilizzati, il che aiuta a fornire una maggiore flessibilità nel consentire diversi cicli di lavoro. Tuttavia, a volte la migliore corrispondenza si traduce in un numero di bit basso che lascia poco spazio per la modifica del ciclo di lavoro. Modificando il valore % di tolleranza i divisori verranno scelti per fornire una frequenza all'interno di questa tolleranza ma con potenzialmente più bit di dati utilizzati. Prova ad esempio a impostare la tolleranza su 0,5 o 1.

È inoltre possibile impostare il numero di bit per parola per controllare la scelta dei parametri. 0 (predefinito) significa scegliere qualsiasi bit per parola. Un singolo numero (es. 24) significa scegliere solo i parametri che corrispondono a questo. Puoi anche inserire un intervallo (ad es. 24, 31). Funziona solo per target Hz sopra 10KHz, al di sotto di questo ridimensionamento avrà effetto in modo che il numero venga moltiplicato.

La dimensione del buffer mostra lo spazio totale del buffer utilizzato in parole a 32 bit. Questo viene scelto per garantire che l'impulso di clock formi un perfetto adattamento circolare nel buffer. Internamente questo buffer è suddiviso in un numero di buffer più piccoli per consentire il funzionamento del DMA concatenato.

Per il funzionamento ad impulsi scegliere il TAB impulsi. Questo mostra i file di impulsi disponibili e un pulsante accanto a ciascuno che produrrà un treno di impulsi in base alla sua definizione. Puoi vedere il contenuto del file cliccando sul suo link. È possibile caricare più file di impulsi utilizzando il browser di file ip/edit. Dovrebbero iniziare con il nome pulse.

Consigliato: