Vienas is vidinių mikrovaldiklio modulių yra laikmatis Taimeris A. Sį laikmatį sudaro 16 bitų skaitiklis ir trys fiksavimo - palyginimo registrai. Taktinių impulsų saltiniu Taimeriui A gali būti vidinis (signalai ACLK ar SMCLK) arba isorinis (signalai TACLK arba INCLK). Taktinių impulsų daznį galima sumazinti du, keturis arba astuonis kartus.
33 pav. Taimerio A modulis
Kontrolės rezimas ir 16 bitų taimeris. Taimerį galima sustabdyti, pakartotinai paleisti, skaičiuoti aukstyn ir zemyn. 16 bitų taimerio turinį galima nuskaityti programiniu būdu arba programiniu būdu keisti. Darbo rezimas taimeriui A parenkamas bitais MC1 ir MC0. Su MC1 ir MC0 bitais galima parinkti keturis darbo rezimus (zr. 13 lentelę ir 34 pav.).
13 lentelė. Taimerio A darbo rezimai
MC1 |
MC0 |
Rezimas 939j913j |
Sustabdymo |
||
Didėjimo |
||
Istisinis |
||
Didėjimo - mazėjimo |
Sustabdymo rezimas. Taimeris A, nustatytas sustabdymo rezimu, neatlieka skaičiavimų ir neturi skaičiavimo krypties.
34 pav. Darbo rezimo parinkimas Taimeriui A
Didėjimo rezimas. Taimeris skaičiuoja iki konkrečios reiksmės, kuri yra fiksavimo ir palyginimo registre CCR0. Reiksmė esanti registre CCR0, neturi būti lygi 0FFFFh reiksmei. Taimeris skaičiuoja nuo konkrečios reiksmės esančios taimerio registre. Kada 16 bitų taimerio reiksmė pasidaro lygi fiksavimo ir palyginimo registrui CCR0, 16 bitų taimeris perkraunamas ir skaičiavimai atliekami is naujo (35 pav.).
35 pav. Taimeris A dirba didėjimo rezimu
Vėliavėlė CCIFG0 nustatoma į reiksmę "1", kai taimerio reiksmė tampa lygi palyginimo ir fiksavimo registrui CCR0. Vėliavėlė TAIFG nustatoma į reiksmę "1", kada skaičiuojama nuo reiksmės esančios registre CCR0 iki 0. Visos pertraukimų vėliavėlės nustatomos nepriklausomai nuo pertraukimo leidimo bito. Jeigu naudojamas pertraukimo rezimas ir nustatomas pertraukimo leidimo bitas. Taip pat reikalingas GIE bito nustatymas.
36 pav. Vidiniai taimerio A signalai didėjimo rezime
Istisinis rezimas. Taimeris skaičiuoja nuo 0 iki maksimalios reiksmės 0FFFFh. Pasiekęs maksimalią ribą, taimeris perkraunamas ir veiksmai atliekami is naujo. Vėliavėlė pertraukimo TAIFG nustatoma, kai taimeris skaičiuoja nuo 0FFFFh iki 0. TAIFG nustatoma nepriklausomai ar pertraukimo leidimo bitas yra nustatytas.
37 pav. Vidiniai Taimerio A signalai istisiniame rezime
Didėjimo - mazėjimo rezimas. Taimeris skaičiuoja iki konkrečios reiksmės esančios registre CCR0. Pasiekęs ją, pradeda skaičiuoti mazėjimo kryptimi iki pradinės reiksmės lygios nuliui. Taimeris pasiekęs maksimalią reiksmę registre CCR0, perkraunamas ir skaičiavimai atliekami is naujo. Sie skaičiavimai apibūdinami kaip vykstantys mazėjimo kryptimi. Tokiu būdu skaičiavimo periodas yra dvigubai didesnis uz skaičių įrasytą į TACCR0.
38 pav. Taimeris A dirba didėjimo/mazėjimo rezimu
Pertraukimo vėliavėlė CCIFG0 yra nustatoma, kai taimeris skaičiuoja nuo CCR0-1 iki CCR0. Pertraukimo vėliavėlė TAIFG nustatoma, kai 16 bitų taimeris skaičiuoja mazėjimo kryptimi nuo 0001h iki 0000h.
39 pav. Vidiniai signalai didėjimo - mazėjimo rezime
Pastaba: fiksavimo ir palyginimo registras CCR0 visuose rezimuose yra pasirinkto signalo periodas. Didėjimo - mazėjimo rezime periodą galime isreiksti formule: T = 2*CCR0.
Fiksavimo ir palyginimo (Capture / Compare) blokai. Taimerio A modulyje esantys trys identiski blokai suteikia lanksčią kontrolę realiame laike. Bet kuris blokas gali būti naudojamas kaip palyginimo blokas arba panaudotas kaip fiksavimo blokas.
40 pav. Fiksavimo palyginimo blokas
Fiksavimo (Capture) rezimas paprastai naudojamas įjungimui tam tikrų operacijų fiksuotu laiko momentu. Jis gali būti panaudotas greičio ar laiko intervalų matavimams. Darbo rezimai nustatomi bitu CAPx kontrolės zodyje CCTLx. Galima parinkti palyginimo rezimą (CAPx = 0) arba fiksavimo rezimą (CAPx = 1). Parinkus fiksavimo rezimą, fiksavimo signalai (CCIxA, CCIxB, GND arbaVCC) parenkami su bitais CCISx1 ir CCISx0 kontrolės zodyje CCTLx. Pasirinktų signalų fiksuojamasis frontas, parenkamas su bitais CCMx1 ir CCMx2. Frontas gali būti fiksuojamas kylantis, krentantis, kylantis - krentantis arba nefiksuojamas. Prie fiksavimo - palyginimo bloko įėjimų CCLxA arba CCLxB gali būti prijungiami isoriniai įvadai - isvadai. Skirtingiems MSP430 seimos mikrovaldikliams naudojami skirtingi signalai.
Pertraukimo leidimo bitas CCIEx ir pertraukimo vėliavėlė CCIFGx yra naudojami palyginimo ir fiksavimo rezimams.
Kai įvyksta įvykio fiksavimas (komparatorius sureaguoja į atitinkamą signalo frontą):
Taimerio turinys perkopijuojamas į atitinkamą TACCRx registrą;
Įjungiama pertraukimo vėliavėlė CCIFG.
Perpildymo (Oveflow) logika įjungia bitą COV, jeigu taimeris antrą kartą įvyksta fiksavimo įvykis, o dar nebuvo nuskaityta ankstesnioji taimerio reiksmė is TACCRx registro. COV bitas turi būti isjungtas programiniu būdu.
Taimerio skaitiklis isvalomas (= 0000h), įjungiant TACLR bitą registre TACTL. Tuo pačiu yra gesinamas sinchronizacijos signalo daznio daliklis.
Palyginimo (Compare) rezimas (CAP=0) paprastai yra naudojamas įvairių signalų sekų (pvz. PWM signalo) generavimui. Kai taimerio skaitiklio TAR reiksmė susilygina su registre TACCRx įrasytu skaičiumi:
- įjungiama pertraukimo vėliavėlė CCIFG;
- formuojamas vidinis signalas EQUx;
- signalas EQUx keičia isėjimo OUTx būseną, priklausomai nuo sio isėjimo darbo rezimo.
Fiksavimo - palyginimo bloko isėjimų rezimai. Įvairūs bloko isėjimų rezimai suteikia galimybę gauti įvairios paskirties signalus, pvz: keisti PWM (impulso pločio moduliacija) signalus. Parinkti skaitmeninio signalo isėjimo rezimą. Rezimai fiksavimo ir palyginimo registrais nustatomi trim bitais (OMx0, OMx1 ir OMx2). Bitai randasi kontrolės registre CCTLx.
14 lentelė. Taimerio A isėjimų rezimai
OMx2 |
OMx1 |
OMx0 |
Komentaras |
Isėjimo rezimas (Output). Isėjimo signalo lygis lygus bito Outx reiksmei kontrolės registre. |
|||
Įjungimo rezimas (Set). Kai taimeris pasiekia TACCRx reiksmę, signalas EQUx įjungia isėjimą Outx. |
|||
Perjungimo/isjungimo rezimas (Toggle/Reset). Kai taimeris pasiekia TACCRx reiksmę,EQUx perjungia isėjimo signalą Outx, kuris po to isjungiamas signalu EQU0. |
|||
Įjungimo / isjungimo rezimas (Set/Rest). Kai taimeris pasiekia TACCRx reiksmę, EQUx įjungia Outx signalą ir jį sinchronizuoja su taimerio taktiniais impulsai. Isėjimas Outx isjungiamas signalu EQU0 |
|||
Perjungimo rezimas (Toggle). Kai taimeris pasiekia TACCRx reiksmę, signalas EQUx perjungia Outx isėjimo signalą, signalas sinchronizuotas su taimerio taktiniais impulsais. |
|||
Isjungimo rezimas (Reset). Kai taimeris pasiekia TACCRx reiksmę, EQUx isjungia Outx isėjimo signalą, signalas sinchronizuotas su taimerio taktiniais impulsais. |
|||
Perjungimo/įjungimo rezimas (Toggle/Set). Kai taimeris pasiekia TACCRx reiksmę, signalas EQUx perjungia Outx isėjimo signalą, o isėjimas įjungiamas signalu EQU0, signalas sinchronizuotas su taimerio taktiniais impulsais. |
|||
Isjungimo/įjungimo rezimas. Kai taimeris pasiekia TACCRx reiksmę, signalas EQUx isjungia Outx. Isėjimas įjungiamas, kai taimeris pasiekia TACCR0 reiksmę signalu EQU0. |
41 pav. pateiktos Taimerio A pirmojo fiksavimo/palyginimo bloko isėjimo laikinės diagramos, taimerio skaitikliui dirbant didėjimo rezimu.
41 pav. Taimerio A isėjimų laikinės diagramos, dirbant didėjimo rezimu
Isėjimo signalo rezimas gali būti keičiamas skaičiuojant taimeriui iki CCRx reiksmės arba skaičiuojant taimeriui nuo CCR0 iki 0. Isėjimo signalas yra modifikuojamas pagal parinktą isėjimo rezimą.
42 pav. Laikinės diagramos taimeriui A dirbant didėjimo rezime, kai TACCR1 = 3
Taimerio A valdymo registrai:
Registras Trumpa forma Registro tipas Adresas
Taimerio A kontr. registras TACTL skait. - rasyt. 160h
Taimerio A registras TAR skait. - rasyt. 170h
Fik. - palyg. kontr. registras 0 CCTL0 skait. - rasyt. 162h
Fik. - palyg. registras 0 CCR0 skait. - rasyt. 172h
Fik. - palyg. kontr. registras 1 CCTL1 skait. - rasyt. 164h
Fik. - palyg. registras 1 CCR1 skait. - rasyt. 174h
Fik. - palyg. kontr. registras 2 CCTL2 skait. - rasyt. 166h
Fik. - palyg. registras 2 CCR2 skait. - rasyt. 176h
Pertraukimo vektoriaus reg. TAIV tik skaityti 12Eh
Taimerio A kontrolės registras TACTL. Registras turi būti valdomas zodinėmis instrukcijomis. Visi kontrolės bitai yra gesinami po POR signalo.
43 pav. Taimerio A kontrolės registras TACTL
Bitas 0 : TAIFG vėliavėlė fiksuoja taimerio prisipildymą. Didėjimo rezime nustatoma vėliavėlė TAIFG skaičiuojant nuo CCR0 iki 0000h. Istisiniame rezime nustatoma vėliavėlė TAIFG, skaičiuojant nuo 0FFFFh iki 0000h. Didėjimo - mazėjimo rezime, fiksuoja taimerio skaičiavimą mazėjimo kryptimi iki 0000h.
Bitas 1 : Taimerio persipildymo pertraukimo leidimo bitas TAIE.
Bitas 2 : Taimerio isvalymo bitas CLR. Taimerio dalinimo koeficientai gesinami po POR arba CLR bito nustatymo. Po įvykdymo CLR bitas yra automatiskai gesinamas techninės įrangos.
Bitas 3 : Nenaudojamas bitas. Visą laiką nulis.
Bitai 4 ir 5 : Darbo rezimo parinkimas su bitais MC1 ir MC0.
MC1 |
MC0 |
Rezimas 939j913j |
Sustabdymo |
||
Didėjimo |
||
Istisinis |
||
Didėjimo - mazėjimo |
Bitai 6 ir 7 : Dalinimo koeficiento parinkimas su bitais ID1 IR ID2.
ID1 |
ID0 |
Dalinimo koeficientas |
neegzistuoja |
||
Bitai 8 - 10 : Taimeriui parenkamas sinchroimpulsų saltinis.
SSEL2 |
SSEL1 |
SSEL0 |
Saltinis |
Komentaras |
TACLK |
Isorinis signalas |
|||
ACLK |
Vidinis signalas |
|||
MCLK |
Vidinis signalas |
|||
INCLK |
Isorinis signalas |
Bitas 11.15 : Nenaudojami bitai.
Fiksavimo ir palyginimo kontrolės registrai CCTLx. Kiekvienas fiksavimo ir palyginimo blokas turi 16 bitų kontrolės registrą.
35 pav. Fiksavimo ir palyginimo kontrolės registras CCTLx
Bitas 0: Palyginimo ir fiksavimo bloko pertraukimo vėliavėlė CCIFGx. Fiksavimo rezime: jeigu bitas nustatytas, tai taimerio vertė, esanti registre CCRx uzfiksuojama.
Palyginimo rezime: jeigu bitas nustatytas, vertės, esančios registre CCRx ir 16 bitų taimeryje, yra lygios.
Bitas 1: Fiksavimo persipildimo vėliavėlė COV nustatoma, jeigu sekantis fiksavimas yra atliktas pries nuskaitant fiksavimo registrą.
Bitas 2: Bitas OUTx atitinką isėjimą OUTMODx nuliniame rezime.
Bitas 3: Palyginimo ir fiksavimo bloko signalas CCIx. Fiksavimo rezime, nustačius bitą CCIx, galima "stebėti" pasirinktus įėjimo (CCIxA, CCIxB, VCC, GND) signalus. Palyginimo rezime nulis.
Bitas 4: Pertraukimo leidimo bitas CCIEx.
Pertraukimas negalimas.
Pertraukimas galimas.
Bitai 5 - 7 : Isėjimo rezimo parinkimas.
isėjimo rezimas.
įjungimo rezimas.
perjungimo / isjungimo rezimas.
įjungimo / isjungimo rezimas.
perjungimo rezimas.
isjungimo rezimas.
perjungimo / įjungimo rezimas.
isjungimo / įjungimo rezimas.
Bitas 8: Su bitu CAP parenkamas bloko rezimas.
Palyginimo rezimas.
Fiksavimo rezimas.
Bitas 9: Nenaudojamas bitas, visą laiką nulis.
Bitas 10: Bitu SCCIx sinchronizuojamas (CCIxA, CCIxB, VCC ir GND) įėjimas su palyginimo bloko isėjimais.
Bitas 11: Fiksavimo ir palyginimo blokui galime parinkti asinchroninį arba sinchroninį rezimą. Parinkdami rezimą, nusprendziame ar signalas bus sinchronizuotas su taimerio taktiniais impulsais, ar ne.
Asinchroninis rezimas.
Sinchroninis rezimas.
Bitai 12, 13: Įėjimo signalą parenkame su bitais CCIS1 ir CCIS0. Sie du bitai apsprendzia saltinį.
Įėjimas CCIxA parinktas
Įėjimas CCIxB parinktas
GND, zemas signalas
VCC, aukstas signalas
Bitai 14 ir 15: Fiksavimo fronto parinkimas.
Fronto fiksavimas nevyksta
Fiksuojama pagal kylantį frontą
Fiksuojama pagal krentantį frontą
Fiksuojami kylantys - krentantys frontai
|