Sommario:

Come dare un senso attuale all'ADC: 5 passaggi
Come dare un senso attuale all'ADC: 5 passaggi

Video: Come dare un senso attuale all'ADC: 5 passaggi

Video: Come dare un senso attuale all'ADC: 5 passaggi
Video: I 4 ostacoli alla presa degli APPUNTI (e come superarli) 2024, Novembre
Anonim
Come dare un senso attuale all'ADC
Come dare un senso attuale all'ADC

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

Architettura ADC
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

Circuito interno
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

Circuito esterno
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

I2C Leggi le istruzioni
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

Risultati
Risultati
Risultati
Risultati
Risultati
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: