8.14. DAC R-2R
8.14. DAC R-2R
Am văzut în tutorialul anterior despre convertorul digital-analogic ponderat binar că tensiunea de ieșire analogică este suma ponderată a intrărilor individuale și că necesită o gamă largă de rezistoare de precizie în rețeaua sa de scară, ceea ce face ca modelul său să fie scump și impracticabil pentru majoritatea DAC care necesită nivele mai scăzute de rezoluție.
Am văzut, de asemenea, că DAC-ul ponderat binar se bazează pe un amplificator operațional inversor cu buclă închisă utilizând topologia amplificatorului sumator. În timp ce acest tip de configurație a convertorului de date lucrează bine pentru un convertor D/A de câțiva biți de rezoluție, o abordare mult mai simplă este de a utiliza o rețea scară rezistivă R-2R pentru a construi un convertor digital-analogic R-2R care necesită doar două rezistențe de precizie.
Rețeaua scară rezistivă R-2R utilizează doar două valori de rezistor, una care este valoarea de bază „R” și cealaltă care are dublul valorii „2R” a primului rezistor, indiferent de câte biți sunt folosiți pentru a compune reţeaua scară. De exemplu, am putea folosi doar un rezistor de 1 kΩ pentru rezistorul de bază „R” și, prin urmare, un rezistor de 2 kΩ pentru „2R” (sau multipli ai acestuia, deoarece valoarea de bază a lui R nu este prea critică), astfel 2R este întotdeauna de două ori mai mare decât valoarea lui R, adică 2R = 2*R. Aceasta înseamnă că este mult mai ușor să mențineți acuratețea necesară a rezistoarelor de-a lungul rețelei scară, comparativ cu DAC anterioar cu rezistoare ponderate. Dar ce este oricum o „rețea scară rezistivă R-2R”?
Rețeaua scară rezistivă R-2R
După cum sugerează și numele său, descrierea „scară” provine din configurația în formă de scară a rezistoarelor utilizate în rețea. O rețea scară rezistivă R-2R oferă un mijloc simplu de conversie a semnalelor digitale de tensiune într-o ieșire analogică echivalentă. Tensiunile de intrare sunt aplicate rețelei scară în diferite puncte de-a lungul lungimii acesteia și cu cât mai multe puncte de intrare cu atât este mai bună rezoluția scării R-2R. Semnalul de ieșire ca urmare a tuturor acestor puncte de tensiune de intrare este preluat de la capătul scării, care este utilizat pentru a comanda intrarea inversoare a unui amplificator operațional.
Atunci, o rețea scară rezistivă R-2R nu este altceva decât șiruri lungi de rezistoare conectate în paralel și serie care acționează ca divizoare de tensiune interconectate de-a lungul lungimii și a cărei tensiune de ieșire depinde de interacțiunea tensiunilor de intrare între ele. Luați în considerare mai jos rețeaua scară de bază R-2R pe 4 biți (4 biți, deoarece are patru puncte de intrare).
Acest circuit scară rezistiv pe 4 biți poate părea complicat, dar este vorba de conectarea rezistoarelor împreună în combinații paralele și serie și de a lucra înapoi la sursa de intrare folosind legi simple de circuit pentru a găsi valoarea proporțională a ieșirii. Să presupunem că toate intrările binare sunt împământate la 0 volți, adică: VA = VB = VC = VD = 0V (LOW). Prin urmare, codul binar corespunzător acestor patru intrări va fi: 0000.
Începând din partea stângă și folosind ecuația simplificată pentru două rezistoare paralele și rezistoare în serie, putem găsi rezistența echivalentă a rețelei scară ca:
Rezistoarele R1 și R2 sunt în „paralel” între ele, dar în „serie” cu rezistorul R3. Atunci putem găsi rezistența echivalentă a acestor trei rezistoare și o putem numi RA pentru simplitate (sau orice altă formă de identificare doriți).
Atunci RA este echivalent cu „2R”. Acum putem vedea că rezistența echivalentă „RA” este în paralel cu R4 cu combinația paralelă în serie cu R5.
Din nou putem găsi rezistența echivalentă a acestei combinații și o numim RB.
Deci, combinația RB este echivalentă cu „2R”. Putem vedea că această rezistență echivalentă RB este în paralel cu R6 cu combinația paralelă în serie cu R7 așa cum se arată.
Ca și înainte vom găsi rezistența echivalentă și o numim RC.
Din nou, combinația de rezistențe RC este echivalentă cu „2R” care este în paralel cu R8 așa cum se arată.
După cum am arătat mai sus, când două valori egale de rezistor sunt paralele între ele, valoarea rezultată este jumătate, deci 2R în paralel cu 2R este egal cu o rezistență echivalentă cu R. Deci, întreaga rețea scară rezistivă R-2R de 4 biți cuprinzând rezistoare individuale conectate împreună în combinații paralele și în serie au o rezistență echivalentă (REQ) de „R” atunci când se aplică un cod binar de „0000” la cele patru intrări ale sale.
Prin urmare, cu un cod binar de „0000” aplicat ca intrări, circuitul nostru de convertor digital-analogicic R-2R de 4 biți de bază ar arăta cam așa:
Circuitul DAC R-2R cu patru intrări zero (LOW)
Tensiunea de ieșire pentru un amplificator operațional inversor este dată de: (RF/RIN) * VIN. Dacă facem RF egal cu R, adică RF = R = 1 și, deoarece R este terminat la masă (0V), atunci nu există o valoare a tensiunii VIN, (VIN = 0), astfel încât tensiunea de ieșire ar fi: (1/1) * 0 = 0 volți. Deci, pentru un DAC R-2R de 4 biți cu patru intrări împământate (LOW), tensiunea de ieșire va fi „zero” volți, astfel o intrare digitală de 4 biți 0000 produce o ieșire analogică de 0 volți.
Deci, ce se întâmplă acum dacă conectăm bitul de intrare VA HIGH la +5 volți. Care ar fi valoarea rezistivă echivalentă a rețelei scară R-2R și tensiunea de ieșire de la op-amp.
DAC R-2R cu intrare VA
Intrarea VA este HIGH și nivelul logic „1” și toate celelalte intrări împământate la nivelul logic „0”. Deoarece rețeaua scară R/2R este un circuit liniar, putem găsi rezistența echivalentă a lui Thevenin folosind aceleași calcule de rezistență în paralel și serie ca mai sus pentru a calcula tensiunea de ieșire așteptată. Tensiunea de ieșire, VOUT este deci calculată la 312,5 milivolți (312,5 mV).
Deoarece avem o rețea scară rezistivă R-2R pe 4 biți, această modificare a tensiunii de 312,5 mV este a șaisprezecea parte din valoarea tensiunii de intrare +5V (5/0,3125 = 16), deci este cel mai puțin semnificativ bit (LSB). Fiind cel mai puțin semnificativ bit, intrarea VA va determina, prin urmare, „rezoluția” convertorului nostru digital-analogic pe 4 biți, deoarece cea mai mică schimbare de tensiune în ieșirea analogică corespunde unei schimbări cu o singură treaptă a intrărilor digitale. Astfel, pentru DAC-ul nostru pe 4 biți, acesta va fi de 312,5mV (1/16) pentru o intrare de +5V.
Acum, să vedem ce se întâmplă cu tensiunea de ieșire dacă conectăm bitul de intrare VB HIGH la +5 volți.
DAC R-2R cu intrare VB
Cu intrarea VB HIGH și nivelul logic „1” și toate celelalte intrări împământate la nivelul logic „0”, tensiunea de ieșire, VOUT este calculată la 625mV și care este o optime (1/8) din valoarea +5V a tensiunii de intrare (5/0,625 = 8). Putem vedea, de asemenea, că este dublul tensiunii de ieșire atunci când s-a aplicat doar bitul de intrare VA și ne-am aștepta ca acesta să fie cel de-al 2-lea bit (intrare), astfel încât să aibă dublu ponderarea primului bit.
Acum să vedem ce se întâmplă cu tensiunea de ieșire dacă conectăm bitul de intrare VC HIGH la +5 volți.
DAC R-2R cu intrare VC
Cu intrarea VC HIGH și nivelul logic „1” și ceilalți biți de intrare la nivelul logic „0”, tensiunea de ieșire VOUT este calculată la 1,25 volți și care este un sfert (1/4) din valoarea tensiunii de intrare +5V (5/1,25 = 4). Din nou, putem vedea că această tensiune este dublul ieșirii bitului de intrare VB, dar, de asemenea, de 4 ori valoarea bitului VA. Acest lucru se datorează faptului că intrarea VC este cel de- al treilea bit, deci are ponderea dublă a celui de-al 2-lea bit și de patru ori ponderarea primului bit.
În cele din urmă, să vedem ce se întâmplă cu tensiunea de ieșire dacă conectăm intrarea VD HIGH la +5 volți.
DAC R-2R cu intrare VD
Cu doar intrarea VD HIGH și nivelul logic „1” și celelalte intrări la nivelul logic „0”, tensiunea de ieșire VOUT este calculată la 2,5 volți. Aceasta este jumătate (1/2) din valoarea tensiunii de intrare +5V (5/2,5 = 2). Din nou, putem vedea că această tensiune este dublă față de ieșirea bitului de intrare VC, de 4 ori valoarea bitului VB și de 8 ori valoarea bitului de intrare VA, deoarece este al 4-lea bit și, prin urmare, este clasificat ca cel mai semnificativ bit, (MSB).
Atunci putem vedea că dacă intrarea VA reprezintă LSB și, prin urmare, controlează rezoluția DAC, iar intrarea VB este dublă VA, intrarea VC este de patru ori mai mare decât VA și intrarea VD este de opt ori mai mare decât VA, putem obține o relație pentru tensiunea de ieșire analogică a convertorului nostru digital-analogic pe 4 biți cu următoarea ecuație:
Ecuație tensiunii de ieșire digital-analogică
în care valoarea numitorului 16 corespunde celor 16 (24) combinații posibile de intrări în rețeaua scară R-2R pe 4 biți a DAC.
Putem extinde această ecuație în continuare pentru a obține o ecuație DAC R-2R generalizată pentru orice număr de intrări digitale pentru un convertor D/A R-2R, deoarece ponderarea fiecărui bit de intrare va fi întotdeauna referită la bitul cel mai puțin semnificativ (LSB), oferindu-ne o ecuație generalizată:
Ecuația DAC R-2R generalizată
unde: „n” reprezintă numărul de intrări digitale din cadrul rețelei scară rezistive R-2R a DAC care produce o rezoluție de: VLSB = VIN/2n.
În mod clar, atunci când bitul de intrare VA este HIGH va provoca cea mai mică modificare a tensiunii de ieșire, în timp ce bitul de intrare VD când este HIGH va provoca cea mai mare modificare a tensiunii de ieșire. Prin urmare, tensiunea de ieșire așteptată este calculată prin însumarea efectului tuturor biților de intrare individuali care sunt conectați HIGH.
În mod ideal, rețeaua scară ar trebui să producă o relație liniară între tensiunile de intrare și ieșirea analogică, deoarece fiecare intrare va avea o creștere în trepte egală cu LSB, putem crea un tabel cu valorile de tensiune de ieșire așteptate pentru toate cele 16 combinații ale celor 4 intrări cu + 5V reprezentând o condiție „1” logic, așa cum se arată.
Ieșire convertorului D/A R-2R pe 4 biți
Convertor digital-analogic R-2R
Observați că tensiunea de ieșire analogică la scală completă pentru un cod binar de 1111 nu atinge niciodată aceeași valoare ca tensiunea de intrare digitală (+ 5V), dar este mai mică cu echivalentul unui bit LSB, (312,5mV în acest exemplu). Dar, cu cât numărul de biți de intrare digitală (rezoluție) este mai mare, cu atât tensiunea de ieșire analogică este mai apropiată de scala maximă, atunci când toți biții de intrare sunt HIGH. La fel, atunci când toți biții de intrare sunt LOW, rezoluția inferioară rezultată a LSB face VOUT mai aproape de zero volți.
Acum, că înțelegem ce este și cum funcționează o rețea scară rezistivă R-2R, o putem folosi pentru a produce un convertor digital-analogic R-2R. Din nou folosind rețeaua noastră de scară rezistivă R-2R de 4 biți de mai sus și adăugând-o la un circuit amplificator operațional inversor, putem crea un convertor digital-analogic R-2R simplu:
Convertor digital-analogic R-2R
Circuitul logic digital utilizat pentru acționarea convertorului D/A poate fi generat de circuite logice combinaționale sau secvențiale, registre de date, contoare sau pur și simplu comutatoare. Interfața unui convertor D/A R-2R de „n” biți va depinde de aplicația sa. Plăcile all-in-one, ca Arduino sau Raspberry Pi, au încorporate convertoare digital-analogice, astfel încât interfațarea și programarea să fie mult mai ușoare. Există multe DAC-uri populare disponibile, cum ar fi DAC0808 pe 8 biți.
Convertor D/A R-2R. Exemplu nr. 1
Un convertor digital-analogic R-2R pe 4 biți este construit pentru a controla viteza unui mic motor DC utilizând ieșirea dintr-un circuit logic digital. Dacă circuitul logic utilizează dispozitive CMOS de 10 volți, calculați tensiunea de ieșire analogică de la DAC atunci când codul de intrare este numărul hexazecimal „B”. De asemenea, determinați rezoluția DAC.
1). Litera hexazecimală „B” este egală cu numărul unsprezece în zecimal. Numărul zecimal unsprezece este egal cu codul binar „1011” în binar. Adică: B16 = 10112. Astfel, pentru numărul nostru binar de 4 biți de 10112, bitul de intrare D = 1, bitul C = 0, bitul B = 1 și bitul A = 1.
Dacă presupunem că rezistența de feedback RF este egală cu „R”, atunci circuitul nostru convertor D/A R-2R va arăta astfel:
Circuitul logic digital utilizează dispozitive CMOS de 10 volți, astfel încât tensiunea de intrare în rețeaua R-2R va fi de 10 volți. De asemenea, fiind un DAC scară pe 4 biți, vor exista 24 combinații posibile de intrare, deci folosind ecuația noastră de mai sus, tensiunea de ieșire pentru un cod binar de 10112 se calculează ca:
Prin urmare, tensiunea de ieșire analogică utilizată pentru controlul motorului DC atunci când codul de intrare este 10112 este calculată ca: -6,875 volți. Rețineți că tensiunea de ieșire este negativă datorită intrării inversoare a amplificatorului operațional.
2). Rezoluția convertorului va fi egală cu valoarea celui mai puțin semnificativ bit (LSB) care este dat de:
Atunci, cea mai mică treaptă de schimbare a tensiunii de ieșire analogică, VOUT pentru o schimbare LSB de 1 bit a intrării digitale a acestui exemplu de convertor digital-analogic R-2R pe 4 biți este: 0,625 volți. Aceasta este variația tensiunii de ieșire în trepte sau incremente de 0,625 volți și nu ca o valoare liniară dreaptă.
DAC R-2R de numărare binară pe 4-biți
Deci putem face un DAC scară R-2R folosind doar două valori de rezistor, una fiind valoarea de bază „R” și cealaltă de două ori sau dublă valoarea fiind „2R”. În exemplul nostru simplu de mai sus, am realizat un DAC R-2R pe 4 biți cu patru linii de date de intrare, A, B, C și D, oferindu-ne 16 (24) combinații diferite de intrare de la „0000” la „1111”. Codul binar pentru aceste patru linii digitale de intrare poate fi generat în mai multe moduri diferite, utilizând microcontrolere, circuite digitale, comutatoare mecanice sau solid-state. Dar o opțiune interesantă este utilizarea unui contor binar pe 4 biți, cum ar fi 74LS93.
74LS93 este un contor de propagare JK de 4 biți care poate fi configurat pentru a număra în sus de la 00002 până la 11112 (MOD-16) și reseta înapoi la zero (0000), din nou, prin aplicarea unui singur semnal de ceas extern. 74LS93 este un contor asincron denumit în mod obișnuit un contor „ripple” datorită modului în care bistabilele JK interne răspund la intrarea de tact (clock) sau de sincronizare producând o ieșire binară de 4 biți. Frecvența (sau perioada) acestui impuls de tact extern sau de sincronizare este împărțită la un factor de 2, 4, 8 și 16 de liniile de ieșire ale contorului, pe măsură ce impulsul de tact se propagă prin cele patru flip-flop-uri J-K producând secvența numărului de ieșire de 4-biți de la 00002 la 11112.
Rețineți că pentru a număra în sus de la 0000 la 1111, intrarea externă CLKB trebuie să fie conectată la ieșirea QA (pin-12) și impulsurile de temporizare a intrării sunt aplicate la intrarea CLKA (pin-14).
Acest contor simplu asincron de 4 biți construit în jurul contorului de propagare binar 74LS93 are aceeași secvență de numărare dată în tabelul de mai sus. La aplicarea unui impuls de tact, ieșirile: QA, QB, QC și QD se schimbă cu o treaptă. Intrarea amplificatorului operațional detectează această schimbare a treptei și generează o tensiune negativă (op-amp inversor) în raport cu codul binar la intrările scării R-2R. Valoarea tensiunii de ieșire pentru fiecare treaptă va corespunde cu cea dată în tabelul de mai sus.
Contorul de propagare va număra în ordine, cu cele patru ieșiri producând o secvență de ieșire a valorilor binare până la al 15-lea impuls de ceas unde ieșirile sunt setate la 11112 (zecimal 15) producând tensiunea maximă de ieșire negativă a convertorului digital-analogic. La al 16-lea impuls, secvența de ieșire a contoarelor este resetată, iar numărul revine la 0000, care resetează ieșirea amplificatorului opțional (op-amp) la zero volți. Aplicarea următorului impuls de tact pornește un nou ciclu de numărare de la zero la VOUT(max).
Putem arăta secvența de ieșire pentru acest convertor simplu D/A R-2R de numărare asincronă binară pe 4 biți în următoarea diagramă de timing.
Diagrama de timing pentru DAC R-2R pe 4-biți
În mod clar, tensiunea de ieșire a amplificatorului operațional variază de la zero volți la tensiunea sa maximă negativă, deoarece contorul de ripplu numără de la 00002 la 11112 respectiv. Acest circuit simplu ar putea fi utilizat pentru a varia luminozitatea unei lămpi conectate la ieșirea op-amp sau pentru a varia continuu viteza unui motor DC de la lent la rapid și înapoi la încet din nou la o rată determinată de perioada de tact (clock).
Aici contorul de propagare (ripple) și DAC R-2R sunt configurate pentru funcționarea pe 4 biți, dar utilizând contoare de propagare binare disponibile în mod obișnuit, cum ar fi CMOS 4024 pe 7 biți (÷ 128), CMOS 4040 pe 12 biți (÷ 4096) sau CMOS mai mare 4060 contor de 14 biți (÷ 16.384) și adăugarea mai multor rezistoare de intrare la rețeaua scară R-2R, cum ar fi cele disponibile de la Bournes, rezoluția (LSB) a circuitului poate fi mult redusă producând un semnal de ieșire mai lin de la convertorul digital-analogic R-2R.