A/D konvertor pretvara kontinualni električni naponski signal na svom ulazu u digitalnu reč na svom izlazu. A/D nalazi veliku primenu u elektromotornim pogonima, i u industiji uopšte, i koristi se pri merenju veličina kao što su struja, napon, temperatura, brzina, itd.
A/D konvertor unutar mikrokontrolera se uglavnom dizajnira tako da vrši konverziju signala u naponskom opsegu jednakom naponu napajanja samog mikrokontrolera. Opseg od , na primer 0 – 5 V, se pretvara u digitalnu reč sa n-bita, gde je n uobičajeno broj 8, 10, 12. Veći broj n donosi manji kvantni nivo. Kvantni nivo je jednak najmanjem priraštaju analognog signala koji A/D može detektovati tj. to je vrednost LSB u izlaznoj digitalnoj reči. Uvećanje broja n donosi bolju rezoluciju i preciznost, ali uvećava cenu mikrokontrolera. Iskustvo pokazuje da je n=10 (rezultat u opsegu Vmin → 0 Vmax →1023) dovoljno za merenje u većini pogona i industijskih procesa.
U elektromotornom pogonu se mnogi proračuni moraju vršiti u realnom vremenu tako da je vreme A/D konverzije jednog signala veoma bitan podatak. Vreme jedne konverzije ADC modernog DSP oko 200 ns, u slučaju više sukcesivnih konverzija sledeća traje samo 80 ns. Vreme konverzije ADC u tipičnog mikrokontrolera je reda veličine 1 µs.
Postoje dva osnovna tipa A/D konvertora:
- Flash A/D konvertori: Konverzija je izuzetnog brza jer za svako stanje postoji odgovarajući komparator. Za Flash A/D treba puno hardvera, tako da su jako skupi. Često su brži i od samog procesora. Inicira se AD konverzija i u sledećoj naredbi rezultat je već spreman. Zbog cene se uglavnom se ne ugrađuju ni u mikroprocesore ni u DSP.
- A/D konvertor sa metodom sukcesivnih aproksimacija. Više se koristi pošto se izgrađuju sa manje hardwera pa su pristupačnije cene. Rade postepeno, odlučuju za svaki bit rezultata posebno, bit po bit, počevši od MSB. Rade na osnovu internog clock signala, zahtevaju dodatno S&H kolo da se nivo signala ne promeni tokom konverzije. Način konverzije ih čini relativno su sporim ali ta brzina (čak i ispod 100 ns za konverziju) je sasvim dovoljna za većinu primena. Mikrokontroler je uglavnom brži od A/D konverzije, tako da koristi handshake signali (signali rukovanja) kao što su START CONVERSION i BUSY (ili prekid) da bi se sinhronizovao rad CPU sa A/D konvertorom.
Tipična primena A/D sa metodom sukcesivnih aproksimacija u sklopu mikrokontrolera
A/D konvertor sa metodom sukcesivnih aproksimacija ne može trenutno da izvrši konverziju signala. Ovaj A/D konvetor u svakom ciklusu internog clock signala odlučuje o jednom bitu rezultata, za 10-bitni konvertor treba barem 10 clock ciklusa. Ovaj tip A/D konvertora zahteva na svom ulazu dodatno sample&hold kolo (S&H- odabirač i zadržač signala) na čijem se izlazu zadržava isti nivo signala tokom konverzije. Sa strane CPU, takoñe je neophodna dodatna logika koja sinhronizuje rad CPU i sporijeg A/D konvertora. CPU definiše trenutak starta A/D konverzije (signal START), ali kraj iste signalizira sam A/D konvertor (signal BUSY ili mehanizam prekida).
Radi dalje uštede pri izradi mikrokontrolera, koja rezultuje u nižoj ceni, uglavnom se ugrađuje samo jedan A/D konvertor u mikrokontroler. Merenje (A/D konverzija) više analognih ulaza se omogućuje primenom analognom multipleksera, koji u odgovarajućem trenutku prosleđuje izabrani analogni signal ka jedinom A/D konvertoru. Postoje jeftinije varijante ovog sistema sa jednim S&H kolom na ulazu A/D konvertora, i više, na svakom analognom ulazu po jedno S&H kolo. Druga varijanta je skuplja ali omogućuje istovremeno odabiranje više veličina (veoma važno!).
Na sledećoj slici br.1 je prikazan blok dijagram tipičnog sistema za A/D konverziju. Pored samog A/D konvertora, prikazano je i S/H kolo, signala za sinhronizaciju rada CPU i A/D, kao i analogni multiplekser.
Slika 1 Tipičan blok u sklopu mikrokontrolera za A/D konverziju više analognim ulaza
Na slici br.2 je prikazan algoritam rada sa prikazanim sistemom za A/D konverziju.
Slika br.2 Tipičan algoritam rada sa A/D sistemom