Cuprins:
- Pasul 1: Arhitectura ADC
- Pasul 2: Circuit intern
- Pasul 3: Circuit extern
- Pasul 4: Citiți instrucțiunile I2C
- Pasul 5: Rezultate
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
Î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
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
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
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
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
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:
Diferența dintre (curent alternativ și curent continuu): 13 pași
Diferența dintre (curent alternativ și curent continuu): Toată lumea știe că electricitatea este în mare parte curent continuu, dar ce zici de un alt tip de electricitate? Cunoști Ac? Ce înseamnă AC? Este utilizabil atunci DC? În acest studiu vom cunoaște diferența dintre tipurile de electricitate, surse, aplicații
Cum se face un driver de curent mare pentru un motor pas cu pas: 5 pași
Cum se face un driver de curent mare pentru un motor pas cu pas: aici vom vedea cum se realizează un driver de motor pas cu pas folosind controlerul Toshiba TB6560AHQ. Acesta este un controler cu funcții complete, care are nevoie doar de 2 variabile ca intrare și face toată treaba. De când aveam nevoie de două dintre acestea, le-am făcut pe amândouă folosind
Soft Starter (limitator de curent de intrare) pentru încărcări de curent alternativ și continuu: 10 pași
Soft Starter (limitator de curent de intrare) pentru încărcări de curent alternativ și continuu: curentul de intrare / supratensiunea de pornire este curentul maxim de intrare instantanee tras de un dispozitiv electric la prima pornire. Curentul de pornire este mult mai mare decât curentul stării de echilibru al sarcinii și aceasta este sursa multor probleme, cum ar fi siguranța bl
Cum se programează un decodor IR pentru controlul motorului cu curent alternativ cu mai multe viteze: 7 pași
Cum se programează un decodor IR pentru controlul motorului cu curent alternativ cu mai multe viteze: motoarele cu curent alternativ monofazate se găsesc în mod obișnuit în articolele de uz casnic, cum ar fi ventilatoarele, iar viteza lor poate fi controlată cu ușurință atunci când se utilizează un număr de înfășurări discrete pentru turațiile setate. În acest Instructable construim un controler digital care
Cum să controlați motorul de transmisie de curent continuu utilizând un controler electronic de viteză 160A și un tester servo: 3 pași
Cum se controlează motorul de transmisie DC utilizând controler electronic de viteză 160A și servotestor: Specificații: Tensiune: 2-3S Lipo sau 6-9 NiMH Curent continuu: 35A Curent de spargere: 160A BEC: 5V / 1A, moduri liniare: 1. înainte &verso; 2. înainte &frână; 3. înainte & frână & Greutate inversă: 34g Dimensiune: 42 * 28 * 17mm