Digitalno kontroliran napetostni vir
(z mikrokrmilnikom HC11)
(Software User Manual)
Opis delovanja glavnih rutin.
INIT
: Se zažene samo ob vklopu naprave in postavi vrednosti spremenljivk na začetne vrednosti.DPYx
: poskrbijo, za pravilno osveževanje displaya in prikaz vrednosti na zaslon. Razdeljene so na štiri segmente tako, da lahko svetijo z največjo možno močjo.KBD
: Skrbi za branje podatkov iz tipkovnice, podatke priredi ASCII kodu in še preveri, če je tipka bila že pritisnjena.ATD
: Skrbi za transformacijo iz ASCII koda v 7 segmentni kod, če pa je bila pritisnjena funkcijska tipka se pa vrednost vpiše v spremenljivko.DAR
: Preverja vrednosti na displeju, onemogoča pisanje več decimalnih vejic, Ob pritisku na funkcijski tipki +,- nam poveča vrednost na displayu za ena oz. zmanjša vrednost za ena pri tem pa upošteva še tipko SHIFT.SAT
: Prebere vrednosti iz spremenljivke displaya in ji priredi binarno vrednost, z upoštevanjem plavajoče vejice.CHECK
: Skrbi, da vrednost ne preseže vrednosti, ki večja od 10V, če je vrednost višja nam vrne prejšnjo vrednost. ( 10V je podana zgolj za primer vpiše se lahko poljubno številko.)DIV: Skrbi za deljenje binarne vrednosti z 100, da dobimo 16 – bitno binarno cifro.
DECOD: Nam pretvori 16 – bitno binarno vrednost v kod, ki je primeren za DAC konverter, ki nam pretvori vrednost v napetost.
Podrobnejša dokumentacija, se nahaja v izvorni kodi programa, kjer je opisana skoraj vsaka malenkost.
(Hardware user manual)
Hitra predstavitev:
Vezje vsebuje zgolj osnovne komponente, ki so potrebne za pretvorbo iz digitalnega v analogni signal. Preko podatkovnega vodila sprejmemo podatek v digitalni zapah in ta nam zadržuje podatek toliko časa dokler ne želimo spremembe podatka. Iz zapaha se pod
atki prenesejo na digitalno analogni pretvornik, ki nam priredi ustrezno analogno vrednost glede na digitalni podatek. To analogno vrednost peljemo preko ojačevalnika, ki nam omogoča, da ne obremenjujemo samega DA pretvornika.
Opis vezja:
Na konektorju
IDC40 sta naslovno in podatkovno vodilo ter še nekaj kontrolnih signalov, ki pa za samo delovanje vezja niso pomembni. Za vezje nisem uporabil popolnega dekodiranja naslova, kar bi se izkazalo kot čisti nesmisel. Z popolnim dekodiranjem bi povečal površino vezja in upočasnil njegovo delovanje, kakšnega posebnega efekta pa nebi dosegel. K popolnemu dekodiranju bi težil takrat, ko bi uporabljal ogromno vhodno izhodnih enot. Na podatkovno vodilo sta priključena dva 74573 registra. Eden služi, kot kontrolni register, ki omogoča različna delovanja veza, ko je rele sklenjen deluje vezje do 10V, medtem ko pa rele ni sklenjen pa deluje od -10 V do 10 V, pri tem se moramo zavedati, da je v tem delovanju razmerje bitnih uteži na DA pretvorniku spremenjeno! Pri releju se poraja samo vprašanje zakaj nisem namesto releja uporabil kakšno bolj elegantno stikalo kot je tranzistor oz. Optocopler. V praksi se izkaže, da skozi emitor teče tudi del baznega tokova, ki pa že vpliva na ne točnost delovanja. Drugi register služi zgolj za zapah. Ki omogoča, da drži podatke do naslednjega vnosa. Oba registra sta povezana preko negatorjev na CS liniji to pa zato ker je že sama linija “active low” kakor tudi vhod na registru. Sam DA pretvornik nebi posebej razlagal pri njem je pomembno samo dvoje. Prvič: da ga je potrebno priključiti na simetričen vir napajanja in sicer maksimalno do ±18V in drugič: poljubno referenčno napetost, ki je v okviru napajalne napetosti. Iz DA pretvornika sedaj vodimo signal na operacijski ojačevalnik z ojačanjem 1 to pa zato da ne obremenjujemo izhoda pretvornika, ker se napetost na njemu hitro sesede.Možne izboljšave vezja:
Pri napajalniku, da nam nebi bilo potrebno imeti transformatorja za 30V ki je že kar težek svetujem da se napravi usmerjanje kar iz 230V in sicer polvalno z dobrim veliko kapacitivnim kondenzatorjem za glajenje napetosti, potem pa to napetost še znižamo z kakšnim DC DC konverterjem, da dobimo želeno napetost moramo pa se zavedat, da tak način napajanja povzroča tudi radio frekvenčne motnje, in je lahko tudi življenjsko nevarno, zato priporočam uporabo visoko frekvenčnega transformatorja, ki je po velikosti majhen in nam služi zgolj za galvansko ločitev.
V našem primeru operacijski ojačevalnik ne generira velikega izhodnega toka, zato bi lahko rešili še z enim močnostnim ojačevalnikom npr: audio ojačevalci so, kar primerni samo frekvenčna karakteristika je zato nekoliko slabša. Da skoki med napetostmi nebi bili tako nerealni z vidika analognih signalov se lahko na izhodu uporabi filter, ki nam jih zgladi (RC najpreprostejši) Brez posebnega truda pa lahko naredimo tudi tokovno omejitev. Zavedati pa se še moramo, da za induktivna bremena bi morali narediti še posebno zaščito, ki nam poskrbi, da pri izklopu takega bremena ne poškoduje vezja. Kontrolni register pa bi lahko uporabljali tudi za signalizacijo delovanja itd.
Funkcijski opis delovanja:
Napetostni, krmiljeni vir deluje v območju 0V – 10V. Najmanjša ločljivost je 0.0390625V (8 – bitni pač). Želeno vrednost napetosti vnesemo preko tipkovnice, ko pritisnemo
enter se nam ta napetost pojavi na izhodu. S tipkama + ali – povečujemo oz. zmanjšujemo vrednost napetosti. Po defoultu zadnji displej v kolikor pritisnemo Shift lahko spreminjamo vrednost cifre na predzadnjem displayu itd. Esc je tipka, ki nam hitro postavi izhod na 0V. Če vpišemo vrednost, ki presega območje nam povrne prejšnje stanje. Tipka , nam omogoča vpis decimalnih vrednosti. Glede vpisa decimalnih vrednosti ni nobenih omejitev, vpis več decimalnih vejic pa onemogoča že naprava sama.Možne izboljšave:
Krmiljenemu viru bi lahko dodali del programa, ki bi omogočal tudi vpis vrednosti preko računalnika in jo nato preko RS232 kabla prenesel na DAC konverter. Zelo uporabna bi bila tudi aplikacija napisana v C, C++, ki bi omogočala po določeni funkciji spreminjati vrednost na izhodu DAC konverterja.
voljo so tudi razni fajli kot so na primer datasheati in načrt vezja pa tudi sam program v asm kodi:
Projekt je bil izdelan v okviru predmeta: Gradnja Mikroprocesorskih Sistemov.
Avtorja projekta:
Gorazd Grkman
Gorazd.Grkman@volja.netMihael Govednik
mihaelgovednik@hotmail.com