Mikrokontrolerski sistemi

Autor: Velimir Cvetković

68HC11 Familija

Kontakt: cveve@eunet.yu

 

Generisanje sinusoide pomoću DA konvertora DAC 08

Generisanje sinusoide u analognoj tehnici ne predstavlja neki problem. Tu i ovako - i - onako napon stalno menja vrednost pa ga samo treba naterati da to radi po nekom pravilu (sinusnom)! U digitalnom okruženju to nije slučaj. Potrebno je od jedinica i nula napraviti taj pravilan oblik. Za to se koriste DA konvertori u različitim izvedbama i sa različitim rezolucijama. Može se upotrebiti monolitno integrisano kolo a može se koristiti i otpornička mreža sa odnosom otpornika R - 2R - 4R... koja je priključena na port mikrokontrolera.

 

Shema povezivanja DAC08 i 68HC11F1

Postoje nekoliko načina upravljanja DA konvertorima. Jedan od njih je pomoću EPROM-a u koji su upisane vrednosti koje odgovaraju određenim pozicijama na sinusoidi. Sukcesivnim isčitavanjem adresa, što se obično izvodi nekim binarnim brojačem, na izlazu se dobijaju vrednosti koje odgovaraju pozicijama na sinusoidi. Preko otporničke mreže se ta kombinacija jedinica i nula pretvara u analogni signal. Od broja upisanih vrednosti i veličine EPROM-a zavisi rezolucija i "finoća" sinusoide. Na ovaj način se mogu generisati i fazno pomerene sinusoide pa se može imitirati trofazni sistem. Ovakvo rešenje se sreće u nekim DC/AC konvertorima. 

Pošto je upravljane DAC-a mikrokontrolerom jednostavno i meni najprivlačnije, logično je da sam se odlučio za ovakvo rešenje. Posebna objašnjenja nisu potrebna. Iz šeme i izvornog koda se jasno vidi sta se tu desava. Treba samo reći da je mikrokontroler u Bootstrap mode-u a da je program učitan i testiran programom PCBUG11 od adrese $100.
x

LISTING PROGRAMA

 

*****************************************
* Generisanje sinusnog napona pomocu DAC08. 
* DA konvertor je prikljucen na port B
* prema shemi na slici 1. 
* Program pisao : Velja V. Cvetkovic 
*****************************************

regs equ $1000          * Pocetak bloka reg.
portb equ $04             * Adresa porta B za model F1

org $300                    * Pocetak Promenlj.
time rmb 2                 * U ovu lokaciju se unosi broj ciklusa trajanja poluperiode
pos rmb 1

org $100                    * Pocetak
ldx #regs
clr pos
start ldy #tabela         * Postavlja se na pocetak tabela
l1 ldaa 0,y                 * Uzima prvu vrednost iz tabele 
staa portb,x               * i salje je na port B
bsr wait 
iny                            * Prelazi na sledecu vrednost u tabeli 
cpy #tabela+72          * Kraj tabele?
bne l1
bra start 

wait pshx                   * Potprogram za vremensko kasnjenje
psha
ldaa #$1
tl1 ldx time
tl2 dex
bne tl2
deca
bne tl1
pula
pulx
rts

tabela 
fcb $80,$8b,$96,$a1,$ab,$b6,$bf,$c9,$d2,$da,$e2,$e8,$ee,$f3,$f8
fcb $fb,$fe,$ff,$ff,$ff,$fe,$fb,$f8,$f4,$ee,$e8,$e2,$da,$d2,$c9
fcb $c0,$b6,$ab,$a1,$96,$8b,$80
fcb $75,$69,$5f,$54,$4a,$40,$36,$2d,$25,$1e,$17,$11,$0c,$07,$04
fcb $01,$00,$00,$00,$01,$04,$07,$0b,$10,$16,$1d,$25,$2d,$36,$3f
fcb $49,$53,$5e,$69,$74,$7f


Pročitajte više o ovoj temi
Bit po bit 
Povezivanje ADC-a sa 68HC11 
Serijski EEPROM, šta i kako 
Kako upaliti sijalicu?
Konverzija 
Pokrenimo štampač 
Množenje celog i realnog broja 
AD konverzija

C o p y r i g h t  1998 mikroElektronika. All Right Reserved. Za sva pitanja obratite se redakciji