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:

  1. Két független 8 bites számlálóként
  2. Egy 16 bites számlálóként.

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:

  1. Soros kommunikáció
  2. Impulzus számlálás vagy impulzus tárolás
  3. Időzítés.

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