KOMUNIKACIJA Z AD PRETVORNIKOM
            Podatki, potrebni za razumevanje komunikacije s tehtnico so v navodilih za AD pretvornik AD7715 ter v navodilih za mikroprocesor 68HC11.
           V naslednjem sestavku bom poskušal kar se da enostavneje razložiti vzpostavitev komunikacije, oziroma pomen ukazov v programu.
           Najprej bom opisal 3 podprograme (subrutine), ki so mi povzročile največ težav pri pisanju programa.
Pomembno je da vemo, da sta 68HC11 in AD7715 povezana preko 4. povezav. 
                HC11 ima pri serijski komunikaciji dve liniji, MOSI in MISO. MISO linija je lahko vhod v master načinu ali pa izhod v slave načinu. Podobno je MOSI linija lahko izhod v master načinu ali vhod v slave načinu. Ker je v našem primeru glavni 68HC11, uporabimo MOSI linijo za izhod (vezana je na DATA IN na AD pretvorniku), MISO linijo pa za vhod (vezana je na DATA OUT na AD pretvorniku). Poleg tega je potrebna tudi povezava  serijske ure SCK pri HC11 z uro SCLK pri AD pretvorniku. Najbolj zanimiva povezava pa je iz SS na CS.
                Poglejmo si jo podrobneje. SS signal pri HC11 je slave select signal. Z njim določimo, katera naprava je slave. Ta izhod je v našem primeru nastavljen na 1. To storimo že na samem začetku programa, ko inicializiramo naš sistem (8 bitno besedo pošljemo na PORT D)
                Kadar pa prenašamo podatke iz HC11 na AD pretvornik ali obratno, pa mora biti bit SS nastavljen na 0. Tukaj se pojavita dva podprograma, CSYES in CSNO. Kadar hočemo prenašati podatke, uporabimo podprogram CSYES, ki bit SS postavi na 0. To stori tako, da naloži PORT D, mu postavi 5. bit na 0, vse ostale bite pa pusti pri miru. Nato 8 bitno besedo shrani nazaj na PORT D. Po končanem prenosu pa s podprogramom CSNO na podoben način bit 5 spet postavimo na 1. Če SS bita po končanem prenosu ne postavimo nazaj na 1, ostane MODF zastavica (mode fault error flag) postavljena, pri čemer master slave komunikacija ne deluje pravilno.
                Pri prenosu uporabljamo še en podprogram. ST podprogram je zanka, ki preverja 8 bit SPSR registra (statusnega registra) na HC11. Ponavlja se, dokler ta bit ni postavljen na 1, kar pomeni, da se je prenos podatkov uspešno zaključil.
                Tako vidimo, da ti trije podprogrami (ST, CSYES in CSNO) predstavljajo povezano celoto, ki jo moramo uporabiti vedno, kadar hočemo kaj prebrati s tehtnice, ali pa ji poslati kakšen podatek. Pri opisu samega programa ne bom več opisoval teh treh podprogramov, saj nam je sedaj jasno, da mora biti vedno pred komunikacijo CSYES, ki nastavi SS bit na 0. Nato sledi branje ali pošiljanje podatkov. S podprogramom ST preverimo, če je prenos že končan in ko je končan,  še s podprogramom CSNO postavimo SS bit nazaj na 1. To je osnovni princip pošiljanja in branja podatkov.

            In sedaj k samem programu. Vedno, ko ga poženemo, moramo najprej nastaviti PORT D ter SPCR (serijski kontrolni register) na mikroprocesorju. V serijskem kontrolnem registru vključimo serijsko komunikacijo, določimo master mode delovanja, port D izhode, ter clock.
            Nato sledi reset AD pretvornika. Za pravilno delovanje ga je potrebno izvesti vedno ob vključitvi sistema. To programsko storimo tako, da mu pošljemo 4 bayte (32) enic. Podatke pošiljamo ali jih beremo tako, da AD pretvorniku pošljemo 8 ničel.
            Po resetu je na vrsti nastavitev registrov na AD pretvorniku. Pri tem moramo vedeti, da imamo vedno direkten dostop samo do komunikacijskega registra. Zapisi si namreč sledijo po sledečem vrstnem redu: vpis v komunikacijski register, pri katerem določimo v kateri register bomo v naslednjem koraku pisali (iz katerega registra bomo v naslenjem koraku brali). Pisanju ali branju iz registra ponovno sledi vpis v komunikacijski register.
            Ravno tako se po resetu AD pretvornika pričakuje vpis v komunikacijski register. Ta je sestavljen iz 8 bitov. Bit 7 je 0/DRDY bit, ki nam sporoča pripravljenost podatkov za branje. Če niso, je ta bit postavljen na 0. Bit 6 je ZERO bit, ki mora biti za pravilno delovanje nastavljen na 0. Na to vrednost se tudi sam postavi, ko so podatki pripravljeni za branje. V kateri register bomo pisali (ali iz njega brali) določimo s 5. in 4. bitom. Kombinacija 00 pomeni komunikacisjki register, 01 nastavitveni register, 10 testni register ter 11 podatkovni register, ki je sestavljen iz dveh bytov. Naslednji bit je R/W bit, ki določa, ali bomo v naslednjem koraku iz nekega registra brali (R/W = 1) ali pa vanj pisali (R/W = 0). Ostali trije biti so še stand by bit ter bita za nastavitev ojačanja, ki pa za nas niso pomebni, zato jih pustimo nastavljene na 0.
            Če se sedaj povrnemo k programu, vidimo, da smo po resetu nastavili komunikacijski register za vpis v nastavitveni register ter ga z vpisom vanj tudi nastavili.
            Nastavitvam sledi branje podatkov iz AD pretvornika. Najprej z vpisom v komunikacijski register določimo branje iz njega. Sledi preverjanje DRDY in ZERO bita. Ta zanka se ponavlja, dokler ne dobimo informacije, da je podatek pripravljen za oddajo. Ko se to zgodi, s komunikacijskim registrom določimo branje iz podatkovnega registra. Za branje pošljemo dvakrat po 8 ničel, dobljene podatke pa shranimo v registra PODL in PODH.
 
 

Nazaj na prvo stran