Cuprins:

Cum să identificați ADC curent: 5 pași
Cum să identificați ADC curent: 5 pași
Anonim
Cum să faci sensul curent al ADC
Cum să faci sensul curent al ADC

În acest Instructable vom descrie cum să implementăm un convertor analog-digital (ADC) pe 8 biți în SLG46855V care poate detecta curentul de încărcare și interfața cu un MCU prin I2C. Acest design poate fi utilizat pentru diverse aplicații de detectare a curentului, cum ar fi ampermetrele, sistemele de detectare a defecțiunilor și indicatoarele de combustibil.

Mai jos am descris pașii necesari pentru a înțelege modul în care soluția a fost programată pentru a crea sensul curent ADC. Cu toate acestea, dacă doriți doar să obțineți rezultatul programării, descărcați software-ul GreenPAK pentru a vizualiza fișierul de proiectare GreenPAK deja finalizat. Conectați kitul de dezvoltare GreenPAK la computer și apăsați programul pentru a crea sensul curent ADC.

Pasul 1: Arhitectura ADC

Arhitectură ADC
Arhitectură ADC

ADC este alcătuit în esență dintr-un comparator analog și un convertor digital-analog (DAC). Comparatorul detectează tensiunea de intrare față de tensiunea de ieșire DAC și, ulterior, controlează dacă se crește sau se micșorează codul de intrare DAC, astfel încât ieșirea DAC converge la tensiunea de intrare. Codul de intrare DAC rezultat devine codul de ieșire digitală ADC.

În implementarea noastră, creăm un DAC utilizând o rețea de rezistențe controlată prin modulare la lățimea pulsului (PWM). Putem crea cu ușurință o ieșire PWM precisă controlată digital folosind GreenPAK. Când este filtrat, PWM devine tensiunea noastră analogică și, astfel, servește ca un DAC eficient. Un avantaj distinct al acestei abordări este că este ușor să setați tensiunile care corespund codului zero și scala completă (compensare și câștig echivalent) prin simpla ajustare a valorilor rezistenței. De exemplu, un utilizator dorește să citească în mod ideal codul zero de la un senzor de temperatură fără curent (0 µA) care corespunde la 4,3 V și codul la scară completă la 1000 µA corespunzând la 3,9 V (Tabelul 1). Acest lucru este ușor de implementat prin simpla setare a câtorva valori ale rezistorului. Dacă gama ADC se potrivește cu gama de senzori de interes, folosim cel mai bine rezoluția ADC.

O considerație de proiectare pentru această arhitectură este că o frecvență PWM internă trebuie să fie mult mai rapidă decât rata de actualizare ADC pentru a preveni comportamentul subamortizat al buclei sale de control. Cel puțin ar trebui să fie mai lung decât ceasul contorului de date ADC împărțit la 256. În acest design, perioada de actualizare ADC este setată la 1,3312 ms.

Pasul 2: Circuit intern

Circuit intern
Circuit intern

ADC flexibil se bazează pe designul prezentat în Dialog Semiconductor AN-1177. Viteza de ceas este crescută de la 1 MHz la 12,5 MHz pentru a putea controla contorul ADC, deoarece SLG46855 are disponibil un ceas de 25 MHz. Aceasta permite o rată de actualizare mult mai rapidă pentru o rezoluție mai bună a eșantionului. LUT-ul care ceasul de date ADC este schimbat, astfel încât acesta va trece prin semnalul de 12,5 MHz când PWM DFF este scăzut.

Pasul 3: Circuit extern

Circuit extern
Circuit extern

O rezistență externă și o rețea de condensatori sunt utilizate pentru a converti un PWM într-o tensiune analogică așa cum se arată în schema circuitului din Figura 1. Valorile sunt calculate pentru rezoluția maximă pentru curentul maxim pe care îl va detecta dispozitivul. Pentru a obține această flexibilitate, adăugăm rezistențe R1 și R2 în paralel cu VDD și masă. Un divizor de rezistență împarte VBAT în partea de jos a gamei de tensiune. Raportul divizor pentru un VBAT minim așteptat poate fi rezolvat folosind ecuația 1.

Pasul 4: Citiți instrucțiunile I2C

Citiți instrucțiunile I2C
Citiți instrucțiunile I2C

Tabelul 1 descrie structura de comandă I2C pentru a citi datele stocate în CNT0. Comenzile I2C necesită un bit de pornire, octet de control, adresă de cuvânt, bit de citire și bit de oprire.

Un exemplu de comandă I2C pentru a citi înapoi valoarea numărată CNT0 este scris mai jos:

[0x10 0xA5] [0x11 R]

Valoarea numărată care este citită înapoi va fi valoarea codului ADC. De exemplu, un cod Arduino este inclus în fișierul ZIP al acestei note de aplicație de pe site-ul web Dialog.

Pasul 5: Rezultate

Rezultate
Rezultate
Rezultate
Rezultate
Rezultate
Rezultate

Pentru a testa acuratețea proiectării sensului curentului ADC, valorile măsurate la un curent de sarcină dat și la un nivel VDD au fost comparate cu o valoare teoretică. Valorile teoretice ADC au fost calculate cu ecuația 2.

ILOAD care se corelează cu o valoare ADC se găsește cu ecuația 3.

Pentru următoarele rezultate am folosit aceste valori ale componentelor prezentate în Tabelul 3.

Rezoluția valorii ADC la conversia ILOAD poate fi calculată utilizând ecuația 3 cu valorile măsurate în tabelul 2 și valoarea ADC setată la 1. Cu un VBAT de 3,9 V rezoluția este de 4,96 µA / div.

Pentru a optimiza circuitul de detectare a curentului ADC la un nivel VDD minim de 3,6 V cu un curent maxim de 1100 µA și un rezistor de detectare de 381 Ω, coeficientul divizor ideal ar fi 0,884, pe baza ecuației 1. Cu valorile date în tabel 2, divizorul real are un coeficient divizor de 0,876. Deoarece acest lucru este puțin mai mic, acesta va permite un interval de curent de încărcare puțin mai mare, astfel încât valorile ADC să fie aproape de gama completă, dar nu vor depăși. Valoarea efectivă a divizorului este calculată cu ecuația 4.

Mai sus (Figurile 2-6, Tabelele 4-6) sunt măsurătorile efectuate ale circuitului la trei niveluri de tensiune: 4,3 V, 3,9 V și 3,6 V. Fiecare nivel afișează un grafic care afișează diferența dintre valorile ADC măsurate și teoretice. Valorile teoretice sunt rotunjite la cel mai apropiat întreg întreg. Există un grafic rezumat pentru a compara diferențele la cele trei niveluri de tensiune. Apoi, există un grafic care afișează corelația dintre valorile ADC teoretice și curentul de încărcare la diferite niveluri de tensiune.

Concluzie

Dispozitivul a fost testat la trei niveluri de tensiune: 3,6 V, 3,9 V și 4,3 V. Gama acestor tensiuni modelează o baterie complet litiu-ion care se descarcă la nivelul său nominal. Dintre cele trei niveluri de tensiune, se observă că dispozitivul era de obicei mai precis la 3,9 V pentru circuitul extern ales. Diferența dintre valorile ADC măsurate și teoretice a fost de doar 1 valoare zecimală oprită la curenți de sarcină de 700 - 1000 µA. La intervalul de tensiune dat, valorile ADC măsurate au fost cu 3 puncte zecimale peste condițiile nominale în cel mai rău caz. Se pot face ajustări suplimentare la divizorul de rezistență pentru a optimiza diferite niveluri de tensiune VDD.

Recomandat: