|
|
|
| Mikrokontroleri |
Autor: Velimir Cvetković |
|
E-mail: cveve@EUnet.yu |
|
|
POVEZIVANJE AD KONVERTORA SA 68HC11 Interni AD konvertor ne može uvek da zadovolji tačnost i rezoluciju koja nam je potrebna, pa se mora pribeći primeni AD konvertora boljih osobina. Kako priključiti spoljni 12-to bitni AD konvertor pročitajte u ovom članku. U zavisnosti od potreba i od para
kojima raspolažemo za izradu željenog uređaja vršimo odabir AD konvertora. Ako nam je
brzina bitna, imamo dovoljno linija za priključivanje (ili ste se možda odlučili za
povezivanje na BUS?) i cena nije problem onda se svakako treba odlučiti za paralelni AD
konvertor. U svakom drugom slučaju, bolje je rešenje serijski AD konvertor. Drugi
kriterijum je rezolucija: Ako vam je 255 podeoka za celu skalu dovoljno, onda koristite
interni ADC ( eng.Analog to Digital Converter). Ako je to malo, možete se odlučiti za
10-to ili 12-to bitne ADC-e. Ako ste došli do nivoa da projektujete uređaje koji
zahtevaju rezoluciju od 16 bita, Vi ovaj članak i ne morate da čitate.
Kontrolna logika Konvertor poseduje pet kontrolnih linija. U zavisnosti od stanja na njima biće izvršena određena akcija. Pin 2. je 12/8. U našem slučaju je ovaj pin priključen na masu. Kada bi bio na visokom nivou, za rezultat konverzije bi se koristilo svih dvanaest pinova ADC-a istovremeno. Ova varijanta se može koristiti kod priključivanja na šesnaestobitnu magistralu. Pošto je u mojoj aplikaciji stanje ovog pina “low”, rezultat konverzije je prikazan u formi dve osmobitne reči čiji je način pojavljivanja definisan stanjem linije A0 u toku ciklusa čitanja. Kod mikroprocesorskih sistema gde se koristi spoljašnji BUS, linija A0 je pogonjena najmanje značajnim bitom adresne magistrale pa je tako smeštanje dvaju reči obavljeno u dve susedne memorijske lokacije. Pin 3. je CS (eng.Chip Select). Njegovo aktivno stanje je “low”. U slučaju da nemamo drugih perifernih uređaja (Stand-Alone Operation) ovaj pin može biti konstantno na niskom potencijalu. Pin 6. CE (eng.Chip Enable), ima aktivno stanje “high” i za njega važi isto kao i za pin 3. R/C linija ( eng.Read/Convert ) je na pinu 5. Mora biti “0” da bi konverzija započela. Za početak konverzije se može koristiti i opadajuća ivica (1-0) na ovom pinu. Da bi se obavio prenos rezultata konverzije iz internog registra na izlazni port konvertora, ovaj pin mora da ima logičko stanje “high”. Takođe se može koristiti ivica, ali ovog puta uzlazna (0-1). Trimer P1 služi da se podesi faktor skale (Full Scale Calibration). Početak konverzije Da bi proces konverzije otpočeo, potrebno je da se pin R/C nađe na niskom logičkom nivou. Podrazumeva se da su CE = 1 i CS = 0. Stanje linije A0 nema uticaja. Izlazni port ADC-a je na visokoj impendansi. U toku ove operacije, stanja na trima kontrolnim linijama se ignorišu, tako da ne mogu da ugroze proces konverzije ni na koji način. Podaci se ne mogu isčitavati sve do kraja operacije, na šta nam ukazuje stanje na statusnoj liniji (pin 28). Njeno visoko stanje nam ukazuje da je konvertor zauzet. Pošto vreme konverzije premašuje 25ms, rešeno je programsko prozivanje ove linije. Tek pošto stanje na ovoj liniji postane “low” moguće je isčitavanje podataka.
Čitanje podataka Pošto je konverzija inicirana, izlazni port konvertora prelazi u stanje visoke impendanse, koje zadržava sve dok se istovremeno ne dese sledeći uslovi: R/C = 1, STATUS = 0, CE = 1, CS = 0. Tek pošto su zadovoljena ova četiri uslova dolazi do transfera podataka iz internog registra na izlazni port, i to u zavisnosti od stanja na linijama 12/8 i A0 (tabela2.).
Program Kontrolne linije se povezuju na port b i to: CS =PB7, CE = PB6, A0 = PB5 i R/C = PB4. Statusna linija je priključena pa port c ( PC1 ). Linije podataka su priključene na port e (PE0-PE7 na DB4-DB11 respektivno). Iskorišćen je baš ovaj port zato što pri upotrebi internog ADC-a on služi baš ovoj svrsi. Promenljive počinju od adrese $350. Prva lokacija je “hexbr” . Tu se nalazi heksadecimalna vrednost koja predstavlja vrednost izmerenog napona. Ova vrednost se može, u zavisnosti od potrebe, upotrebiti za kompariranje, prikazivanje ili regulaciju, već prema potrebi. Iza nje se nalaze lokacije u koje se smeštaju međurezultati preračunavanja. Posle učitavanja početne adrese bloka registara, proverava se status ADC-a. Ako konvertor nije zauzet, daje se nalog za početak konverzije. Isčitavanje vršimo kada statusna linija bude ponovo na niskom nivou i to tako što prvo pročitamo 8 značajnijih bitova, liniju A0 postavimo na “high”, pa isčitamo 4 manje značajna bita i 4 nule. Time bi prenos podataka iz ADC-a bio završen. U akumulatoru D se sada nalazi broj u intervalu od 0 do 4095. U ostatku programa se taj broj pretvara u heksadecimalnu vrednost u opsegu 0 do 10000, koja predstavlja napon u opsegu od 0 do 10V.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
C o p y r i g h t 1998 mikroElektronika. All Right Reserved. Za sva pitanja obratite se redakciji |