Sommario:
- Passaggio 1: architettura ADC
- Passaggio 2: circuito interno
- Passaggio 3: circuito esterno
- Passaggio 4: I2C Leggi le istruzioni
- Passaggio 5: risultati
Video: Come dare un senso attuale all'ADC: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
In questo Instructable descriveremo come implementare un convertitore analogico-digitale (ADC) a 8 bit nell'SLG46855V in grado di rilevare la corrente di carico e interfacciarsi con un MCU tramite I2C. Questo design può essere utilizzato per varie applicazioni di rilevamento della corrente come amperometri, sistemi di rilevamento dei guasti e indicatori di livello del carburante.
Di seguito abbiamo descritto i passaggi necessari per comprendere come è stata programmata la soluzione per creare il senso di corrente dell'ADC. Tuttavia, se desideri solo ottenere il risultato della programmazione, scarica il software GreenPAK per visualizzare il file di progettazione GreenPAK già completato. Collega il kit di sviluppo GreenPAK al tuo computer e premi il programma per creare il senso di corrente ADC.
Passaggio 1: architettura ADC
L'ADC è essenzialmente composto da un comparatore analogico e un convertitore digitale-analogico (DAC). Il comparatore rileva la tensione di ingresso rispetto alla tensione di uscita del DAC e successivamente controlla se aumentare o diminuire il codice di ingresso del DAC, in modo tale che l'uscita del DAC converga alla tensione di ingresso. Il codice di ingresso DAC risultante diventa il codice di uscita digitale ADC.
Nella nostra implementazione, creiamo un DAC utilizzando una rete di resistori controllata da modulazione di larghezza di impulso (PWM). Possiamo facilmente creare un'uscita PWM controllata digitalmente utilizzando GreenPAK. Il PWM quando filtrato diventa la nostra tensione analogica e quindi funge da DAC efficace. Un netto vantaggio di questo approccio è che è facile impostare le tensioni che corrispondono al codice zero e al fondo scala (equivalentemente offset e guadagno) semplicemente regolando i valori del resistore. Ad esempio, un utente desidera idealmente leggere il codice zero da un sensore di temperatura senza corrente (0 µA) corrispondente a 4,3 V e il codice di fondo scala a 1000 µA corrispondente a 3,9 V (Tabella 1). Questo è facilmente implementabile impostando semplicemente alcuni valori di resistenza. Facendo in modo che la gamma dell'ADC corrisponda alla gamma del sensore di interesse, utilizziamo al massimo la risoluzione dell'ADC.
Una considerazione progettuale per questa architettura è che una frequenza PWM interna deve essere molto più veloce della velocità di aggiornamento dell'ADC per evitare un comportamento sottosmorzato del suo circuito di controllo. Come minimo dovrebbe essere più lungo del clock del contatore dei dati dell'ADC diviso per 256. In questo progetto, il periodo di aggiornamento dell'ADC è impostato su 1,3312 ms.
Passaggio 2: circuito interno
L'ADC flessibile si basa sul design presentato in Dialog Semiconductor AN-1177. La velocità di clock viene aumentata da 1 MHz a 12,5 MHz per il clock del contatore ADC poiché l'SLG46855 dispone di un clock di 25 MHz. Ciò consente una velocità di aggiornamento molto più rapida per una risoluzione del campione più fine. La LUT che esegue il clock del data clock dell'ADC viene modificata in modo che passi attraverso il segnale a 12,5 MHz quando il PWM DFF è basso.
Passaggio 3: circuito esterno
Un resistore esterno e una rete di condensatori vengono utilizzati per convertire un PWM in una tensione analogica come mostrato nello schema del circuito in Figura 1. I valori sono calcolati per la risoluzione massima per la corrente massima che il dispositivo rileverà. Per ottenere questa flessibilità, aggiungiamo i resistori R1 e R2 in parallelo a VDD e massa. Un divisore di resistori divide il VBAT sul lato basso dell'intervallo di tensione. Il rapporto del divisore per un VBAT minimo atteso può essere risolto usando l'equazione 1.
Passaggio 4: I2C Leggi le istruzioni
La tabella 1 descrive la struttura dei comandi I2C per rileggere i dati memorizzati in CNT0. I comandi I2C richiedono un bit di avvio, un byte di controllo, un indirizzo di parola, un bit di lettura e un bit di arresto.
Di seguito è scritto un comando I2C di esempio per rileggere il valore contato CNT0:
[0x10 0xA5] [0x11 R]
Il valore conteggiato che viene riletto sarà il valore del codice ADC. Ad esempio, un codice Arduino è incluso nel file ZIP di questa nota applicativa sul sito Web di Dialog.
Passaggio 5: risultati
Per testare l'accuratezza del progetto di rilevamento della corrente dell'ADC, i valori misurati a un dato livello di corrente di carico e VDD sono stati confrontati con un valore teorico. I valori teorici ADC sono stati calcolati con l'equazione 2.
L'ILOAD che si correla con un valore ADC si trova con l'equazione 3.
Per i seguenti risultati ho usato questi valori dei componenti mostrati nella Tabella 3.
La risoluzione del valore ADC nella conversione ILOAD può essere calcolata utilizzando l'equazione 3 con i valori misurati nella Tabella 2 e il valore ADC impostato su 1. Con un VBAT di 3,9 V la risoluzione è 4,96 µA/div.
Per ottimizzare il circuito di rilevamento della corrente dell'ADC a un livello minimo di VDD di 3,6 V con una corrente massima di 1100 µA e un resistore di rilevamento da 381, il coefficiente del divisore ideale sarebbe 0,884, in base all'equazione 1. Con i valori forniti nella tabella 2, il divisore effettivo ha un coefficiente divisore di 0,876. Poiché questo è leggermente inferiore, consentirà un intervallo di corrente di carico leggermente più ampio in modo che i valori ADC siano vicini all'intervallo completo ma non traboccheranno. Il valore effettivo del divisore viene calcolato con l'equazione 4.
Sopra (Figure 2-6, Tabelle 4-6) sono le misurazioni effettuate del circuito a tre livelli di tensione: 4,3 V, 3,9 V e 3,6 V. Ciascun livello visualizza un grafico che mostra la differenza tra i valori ADC misurati e teorici. I valori teorici vengono arrotondati al numero intero più vicino. C'è un grafico riassuntivo per confrontare le differenze ai tre livelli di tensione. Segue un grafico che mostra la correlazione tra i valori teorici dell'ADC e la corrente di carico ai diversi livelli di tensione.
Conclusione
Il dispositivo è stato testato a tre livelli di tensione: 3,6 V, 3,9 V e 4,3 V. La gamma di queste tensioni modella una batteria agli ioni di litio completa che si scarica al livello nominale. Dei tre livelli di tensione, si osserva che il dispositivo era tipicamente più preciso a 3,9 V per il circuito esterno scelto. La differenza tra i valori ADC misurati e teorici era di solo 1 valore decimale a correnti di carico di 700 - 1000 µA. Al dato intervallo di tensione, i valori ADC misurati erano 3 punti decimali sopra le condizioni nominali nel caso peggiore. È possibile apportare ulteriori regolazioni al partitore di resistenza per ottimizzare i diversi livelli di tensione VDD.
Consigliato:
Rover-One: dare un cervello a un camion/auto RC: 11 passaggi
Rover-One: dare un cervello a un camion/auto RC: questo Instructable è su un PCB che ho progettato chiamato Rover-One. Rover-One è una soluzione che ho progettato per prendere un'auto/camion RC giocattolo e dargli un cervello che include componenti per rilevare il suo ambiente. Rover-One è un PCB da 100 mm x 100 mm progettato in EasyED
Non dimenticare di dare da mangiare al cane: 3 passaggi
Non dimenticare di dare da mangiare al cane: è successo troppe volte! Ho guardato la ciotola del cibo o dell'acqua ed era vuota. Da molto tempo volevo imparare ad usare Arduino, quindi ho pensato che questo sarebbe stato un buon progetto di partenza, volevo sapere, a colpo d'occhio, quanto sono bassi i cibo e acqua
Dare a Thomas il treno la possibilità di guidare di notte: 5 passaggi
Dare a Thomas il treno la capacità di guidare di notte: questo tutorial ti insegnerà come creare un sistema di luci per avvertire i passeggeri in attesa quando un treno si sta avvicinando e anche come far apparire un messaggio su un laptop quando il treno è alla fermata stazione. Un suono per quando il treno passa la stat
Dare una nuova vita alla mia USB: 7 passaggi
Dare una nuova vita alla mia USB: quindi ho questa Kingston USB (o un'unità flash se vuoi) che ho comprato diversi anni fa. Anni di servizio hanno mostrato la prova sul suo aspetto ora. Il cappuccio è già sparito e l'involucro sembra preso da un rottamaio con tracce di scolorimento. La scheda USB
Come dare a un orologio da parete lancette luminose e indicatori di intervallo di tempo: 14 passaggi (con immagini)
Come dare a un orologio da parete lancette luminose e indicatori di intervallo di tempo: volevamo un orologio da parete per camera da letto con lancette luminose e visualizzazione di intervalli di cinque minuti e quarti d'ora. Doveva essere facilmente leggibile dal letto e la luminosità doveva durare per tutta la notte. La vernice luminosa usata sugli orologi moderni tende