10. Időzítő áramkörök
10.1. Basic Timer1 (alap időzítő áramkör)
Az időzítő áramkör feladata a felhasználói szoftver és a különféle periféria modulok részére kis frekvenciás időzítés biztosítása. Ilyen igények lépnek fel real-time órajelek előállítása, nyomógombok, klaviatúrák lekérdezése és szoftver időzítési feladatok esetén. A 10.1. ábrán látható az időzítő áramkör felépítése.
10.1. A Basic Timer felépítése.
Az időzítő más modulok számára kisfrekvenciás órajelet biztosít. Mindkét 8 bites számláló szoftverből elérhető.
Regiszterei:
BTCTL vezérlő regiszter
BCTNT1 és BCTNT2 két darab 8 bites számláló.
A számláló teljesen szoftver vezérlésű. A vezérlőregiszter bitjei:
IP0, IP1, IP2: A megszakítások közötti intervallumot állítja be.
FRFQ1, FRFQ0: az LCD frekvenciát állítják be.
HOLD: leállítja a számlálót.
SSEL, DIV: a bemeneti órajelet választják ki.
Az áramkör megszakítás flag BTIFG és megszakítás engedélyezés BTIE bitjei az SFR regiszterben (IFG2.7 és IEN2.7) találhatók.
Az időzítő kétféle üzemmódban működik:
Az üzemmódok az SSEL és DIV bitekkel állíthatók be, ahogy ez a 10.1. ábrából látható.
10.2. 8-bites intervallum számláló/időzítő
Az áramkör három fő funkcióval rendelkezik:
Blokkvázlata a 10.5. ábrán látható.
10.5. ábra: 8 bites időzítő/számláló
Fő elemei:
8 bites számláló TCDAT
8 bites elő-beállító regiszter TCPLD
Vezérlő regiszter TCCTL
Bemeneti órajel kiválasztó
Él detektor, azaz start bit aszinkron protokollhoz
Input és output adat latch, melynek beírását a 8 bites számláló Carry jele végzi.
8 bites -számláló üzemmód elő-beállító regiszterrel
A 8 bites számláló a vezérlő regiszter SEL0,SEL1 bitjei által kiválasztott órajelről számlál. A működést a számláló két bemenete ( Load és Enable) vezérli.
A Load jel belépteti a számlálóba az elő-beállító regiszter tartalmát. A számlálóba írás az elő-beállító regiszter tartalmát írja be a számlálóba.
Az Enable bemenet engedélyezi a számlálót. Ha az engedélyező jel magas szintű, a számláló a bemeneti órajelről előre számol.
A 8 bites vezérlő regiszter
Beállítja a számláló üzemmódját és vezérli a funkciókat.
Bemeneti órajel kiválasztás
Meghatározza az órajelet. Ezek négyfélék lehetnek:
MCLK. ACLK, P0.1. kivezetés, P0.1 ÉS (logikai és) MCLK.
Él detektálás
A soros kommunikáció vétel start jelét érzékeli.
Bemeneti és kimeneti latch-ek
Az RXD_FF és a TXD_FF az adó és vevő jeleket tárolja. A számláló Carry jele vezérli.
A 8 bites számláló/időzítő áramkör soros kommunikációs alkalmazása.
Az áramkör támogatja a soros adatátvitel megvalósítását. Fél duplex üzemmód valósítható meg vele. A vett adat a P0 port P0.1 kivezetésére érkezik, az adás pedig a P0 port P0.2 kivezetésén keresztül történik. A Kézikőnyv 10. 14. és a 10. 15. ábráin az adás. illetve a vétel szemléltetése látható. Az üzemmód leírása úgyszintén a kézikönyvben található.
10.3. Wathdog Timer
A watchdog timer elsődleges funkciója rendszer reset végrehajtása, szoftver hiba esetén. Ha a beállított időintervallum letelik, rendszer reszetet hoz létre. Ha a watchdog funkció nem szükséges, az áramkör normál időzítő áramkörként is használható. A 10.16. ábrán a z áramkör felépítése látható.
Jellemzői:
Nyolc programból kiválasztható időintervallum
Két üzemmód: watchdog vagy normál időzítés
Watchdog módban az időintervallum letelte után rendszer resetet gennerál, időzítő módban pedig megszakítást kér
Biztonsági okokból a watchdog timer csak jelszóval írható
Hold módban kis teljesítmény feklvételt biztosít.
10.16 ábra: watchdog timer felépítése.
Regiszterek:
WDTCNT: számláló regiszter, 16 bites.
WDTCTL: vezérlő regiszter, 16 bites, a felső 8 bit tartalmazza a jelszót. Ennek értéke: 69H(01101001).
Vezérlő bitek:
SSEL, IS0,IS1: megszakítás időintervallum kiválasztása:
SSEL IS0 IS1
0 1 1 TMCLK*26 (0.064 ms)
0 1 0 TMCLK*29
1 1 1 TACLK*26
0 0 1 TMCLK*213
1 1 0 TACLK*29
0 0 0 TMCLK*215
1 0 1 TACLK*213
1 0 0 TACLK*215 (1000 ms)
CNTL: Ujra indítja az időzítőt 0000H értékkel.
TMSEL: Watchdog mód (0), vagy timer mód (1)
NMI: a RST/NMI bemenetet állítja be. 0: Reset, 1: NMI.
NMIES: NMI megszakítás kérés él kiválasztás
HOLD: Leállítja a működést.
A vezérlő regiszter írásához a felső byte-ba a jelszó írása szükséges. Ha a jelszó téves, rendszer reset keletkezik.
Megszakítás vezérlés
Az SFR regiszter két bitje szolgál a megszakítás vezérlésére:
WDTIFG, az IFG1.0 bit: megszakítás flag.
WDTIE, az IE1.0, megszakítás engedélyezés regiszterben.
Példa a watchdog timer kezelésére. :
WDTCTL .equ 0120h ;WDT címe
WDTPW .equ 05A00H ;WDT jelszó
T250MS .equ 5 ;SSEL0,SSEL1,IS1 bitek beállítása 250 ms-ra
T05MS .equ 2 ;SSEL0,SSEL1,IS1 bitek beállítása 0.5 ms-ra
CNTCL .equ 8 ;Reset bit beállítása a WDTCTL regiszterben
TMSEL .equ 010h ; Timer mód kiválasztás
;Watchdog timer reset:
MOV #WDTPW+CNTCL,&WDTCTL ; periodikusan resetelni kell ilyen utasításssal
……………
……………
……………
; Átállítás normál üzemmódba:
MOV#WDTPW+CNTL+TMSEL+T250MS,&WDTCT ; Törli a számlálót és normál 250 ;ms-os időzítő módba áll át.
……………
……………
……………
;Visszatérés watchdog üzemmódba:
MOV #WDTPW+CNTCL,&WDTCTL ; reseteli a Watchdog timert
MOV #WDTPW+T05MS,&WDTCTL ; watchdog mód, 0.5 ms ;időintervallummal.
10.4. 8 bites PWM (Impulzus szélesség modulált) időzítő áramkör
A 8 bites számlálóval és a 8 bites kitöltésvezérlő regiszterrel 0-100% kitöltési tényezővel négyszög jelet állít elő.
Szolgáltatásai:
8 forrás órajel adható meg,
1/254-es felbontással 0-100% kitöltési tényező állítható elő,
pozitív vagy negatív logikájú kimenetek.
A felépítés a 10.18. ábrán látható.
A kimenet működését az OS kimeneti polaritás jel vezérli. Ha OS=0, pozitív logikaként, ha OS=1, negatív logikaként működik.
Az OE jel a port kimenetét engedélyezi. Ha OE=0, a port tiltva van, ha OE=1, a port PWM portként működik.
10.18. ábra: PWM időzítő áramkör
Ha a számláló tartalma eléri a PWMDT kitöltés vezérlő regiszter tartalmát, a kimenet jelszintje a következő órajel hatására átbillen (alacsony szintű lesz, ha OS=0).
A PWM áramkör regiszterei:
Név: Cím: Funkció:
PWMCTL.1 58h PWM időzítő vezérlő regiszter
PWMDTB.1 59h kitöltés vezérlő regiszter buffer
PWMDTR.1 5Ah kitöltés vezérlő regiszter
PWMCNT.1 5Bh számláló regiszter
PWMCTL.1 5Ch PWM időzítő vezérlő regiszter
PWMDTB.1 5Dh kitöltés vezérlő regiszter buffer
PWMDTR.1 5Eh kitöltés vezérlő regiszter
PWMCNT.1 5FBh számláló regiszter
A PWMCTL regiszter vezérlő bitjei:
OE: output engedélyezés
OS: output logikai szint vezérlés. (OS=0, pozitív logika, OS=1, negatív logika)
CMPM: Komparátor jel. Jelzoi, hogy a PWMCNT és a PWMDT regiszter tartalma azonos.
SSEL2 SSEL1 SSEL0 bemenő órajel:
0 0 0 MCLK
0 0 1 MCLK/4
0 1 0 MCLK/16
0 1 1 ACLK
1 0 0 ACLK/4
1 0 1 ACLK/8
1 1 0 ACLK/16
1 1 1 ACLK/128
Felbontás: 1/óra frekvencia
PWM periódus: felbontásx254=254/bemenő órajel frekvencia
PWM frekvencia: 1/PWM periódus=bemenő órajel frekvencia/254
Kitöltési ciklus: PWMDT/254