• Nie Znaleziono Wyników

 Wykad 4,5 - Liczniki T/C0, T/C1, T/C2

N/A
N/A
Protected

Academic year: 2021

Share " Wykad 4,5 - Liczniki T/C0, T/C1, T/C2"

Copied!
82
0
0

Pełen tekst

(1)

Podstawy Techniki

Mikroprocesorowej

Liczniki

Timer Counter T/C0, T/C1, T/C2

Wydział Elektroniki Mikrosystemów i Fotoniki

Piotr Markowski

Na prawach rękopisu.

(2)

Licznik „0”

Timer/Counter 0

(3)

Funkcje

Służy do: • zliczania:

- impulsów zegarowych - impulsów zewnętrznych

• generowania sygnału o zadanej częstotliwości • generowania PWM

Cechy:

• 8-o bitowy (0-255) • 1-o kanałowy

• 10-o bitowy prescaler

(4)

Sterowanie licznikiem T/C0

Do sterowania licznikiem:

• 3+2 rejestry specjalne:

- Timer/Counter 0 Control Register (TCCR0) - Timer/Counter 0 Register (TCNT0)

- Output Compare Register 0 (OCR0)

- Timer /Counter Interrupt Mask Register (TIMSK) - Timer /Counter Interrupt Flag Register (TIFR) • wejście Timer0 (T0 - PB0)

• wyjście Output Compare 0 (OC0 – PB3) • 2 przerwania:

- Timer0 Overflow (TOV0, flaga TOV0, wektor 0x009) - Timer0 Compare (OCF0, flaga OCF0, wektor 0x013)

(5)

T/C0 - sterowanie

(6)

Struktura

Wnę trz e mi kro ko nt ro le ra Pi ny WE /W Y TIMSK TIFR

(7)

Taktowanie licznika

(8)

Piny WE/WY

(9)

Struktura

Wnę trz e mi kro ko nt ro le ra Pi ny WE /W Y

(10)

Piny WE/WY

(11)

Struktura – waveform generator

Wnę trz e mi kro ko nt ro le ra Pi ny WE /W Y

(12)

Piny WE/WY

OC0 – wyjście przebiegu prostokątnego

(13)

Piny WE/WY

(14)

Piny WE/WY

OC0 – wyjście przebiegu prostokątnego

COM01,COM00 = 00

COM01,COM00 = 11,01,10 wymaga DDR  1

(15)

Przerwania licznika T/C0

- Timer0 Overflow (TOV0, flaga TOV0, wektor 0x009)

- Timer0 Compare Match (OCF0, flaga OCF0, wektor 0x013) Timer/Counter Interrupt Mask Register:

Timer/Counter Interrupt Flag Register:

(16)

Timer0 Overflow (TOV0)

(17)

Timer0 Compare Match (OCF0)

(18)

Rejestry

Licznika 0

(19)

Timer/Counter0 Control Register

WGM0

(20)

Timer/Counter0 Control Register

Force Output Compare FOC0 –

(zgodne z ustawieniami bitów COM)

(21)

Timer/Counter0 Control Register

Tryb CTC COM0 –

(22)

Timer/Counter0 Control Register

Tryb Fast PWM

(23)

Timer/Counter0 Control Register

Tryb PWM z korekcją fazy

(24)

Timer/Counter0 Control Register

(25)

Timer/Counter0 Register - TCNT0

Output Compare Register - OCR0

Timer/Counter0 Register:

Output Compare Register:

(26)

Tryby pracy

Licznika 0

(27)

Tryby pracy T/C0

Licznik T/C0 pracuje w jednym z czterech trybów: • Normalny

• CTC (Clear on Compare)

• Fast PWM (Pulse Width Modulation) • Phase Correct PWM

Do wyboru trybów – bity WGM0 oraz COM0 w TCCR0 WGM0 – wybór trybu

COM0 – sposób działania wyjścia

(28)

Tryb normalny

• Służy do

• Zliczanie w górę

• Po doliczeniu do MAX (255) zerowanie licznika

• W dowolnym momencie można zmodyfikować wartość TCNT0 (stan licznika)przejściu

MAX → 0

(29)

Tryb Clear on Compare (CTC)

• Służy do

• Zliczanie

• Po doliczeniu do OCR0

• W OCR0 wartość z zakresu

(30)

Tryb CTC

(31)

Tryb Fast PWM

• Służy do

• Zliczanie

• Po doliczeniu do 255

• tylko zbocze narastające:

• Praca normalna: odwrócona:

pin OC0 » ’0’ przy zrównaniu przy przepełnieniu pin OC0 » ’1’ przy przepełnieniu przy zrównaniu • DDRB » ’1’ aby OC0 działało!

(32)

Tryb Fast PWM

(33)

Tryb PWM z korekcją fazy

• Służy do

• Zliczanie

• Po doliczeniu do 255

• 2 zbocza (narastające i opadające):

• Praca normalna: odwrócona:

pin OC0 » ’0’ przy zrównaniu przy zrównaniu na zb. narastającym na zb. opadającym

pin OC0 » ’1’ przy zrównaniu przy zrównaniu na zb. opadającym na zb. narastającym • DDRB » ’1’ aby OC0 działało!

(34)

Tryb PWM z korekcją fazy

• Zliczanie w

• Po doliczeniu do MAX

• 2 zbocza (narastające i opadające): –

-

• Praca normalna: odwrócona:

pin OC0 » 0

pin OC0 » 1

• DDRB » 1 aby OC0 działało!

• Flaga przepełnienia (TOV0) ustawiana przy przejściu przez `0`!

(35)

Tryb PWM z korekcją fazy

(36)

Licznik „1”

Timer/Counter 1

(37)

Zastosowanie

Służy do:

• zliczania:

- impulsów zegarowych

- impulsów zewnętrznych

• generowania sygnału PWM

• generowania częstotliwości

(38)

Cechy

• 16-o bitowy (0-65535)

• 10-o bitowy prescaler (wspólny z T/C0) • 2x Output Compare (OCR1A, OCR1B)

• Input Capture (IC) – detekcja zdarzeń zewnętrznych • IC Noise Canceler

• 3 tryby PWM • 4 przerwania:

ICF1 – TIMER1 CAPT – wektor 0x005 OCF1A – TIMER1 COMPA – wektor 0x006 OCF1B – TIMER1 COMPB – wektor 0x007 TOV1 – TIMER1 OVF – wektor 0x008

(39)

Budowa

Wnę trz e mi kro ko nt ro le ra

(40)

Sterowanie licznikiem T/C1

• 6+3 rejestry specjalne:

- Timer/Counter 1 Control Register A (TCCR1A) – 8 bit - Timer/Counter 1 Control Register B (TCCR1B) – 8 bit - Timer/Counter 1 Register (TCNT1) – 16 bit

- Output Compare Register 1A (OCR1A) – 16 bit - Output Compare Register 1B (OCR1B) – 16 bit - Input Capture Register 1 (ICR1) – 16 bit

- Timer /Counter Interrupt Mask Register (TIMSK) - Timer /Counter Interrupt Flag Register (TIFR) - Special Function I/O Register (SFIOR)

• 2 wejścia:

- Timer1 (T1) – PB1

- Input Capture pin (ICP1) – PD6

(41)

Sterowanie licznikiem T/C1

• 2 wyjścia:

- Output Compare 1A (OC1A) – PD5 - Output Compare 1B (OC1B) – PD4 • 4 przerwania:

- Input Capture Flag (ICF1, wektor 0x005)

- Output Compare 1A (OCF1A, wektor 0x006) - Output Compare 1B (OCF1B, wektor 0x007) - Timer1 Overflow (TOV1, wektor 0x008)

(42)

Piny licznika T/C1

(43)

Piny WE/WY

T1 PB1 OC1A, OC1B PD5, PD4 ICP1 ICP1 PD6

(44)

Taktowanie licznika

- wybór źródła taktowania

- wybór prescalera (dla źródła MCU)

- wybór zbocza (dla źródła zewnętrznego) Źródło nie wybrane = licznik zatrzymany

CS12 CS11 CS10

T1 T1

(45)

• T/C0 i T/C1 wykorzystują ten sam moduł prescalera

(1, 8, 64, 256, 1024), ale mogą mieć różne dzielniki • pin wejściowy T0 (T1) – taktowanie licznika

• reset prescalera – SFIOR (PSR10)

T/C0, T/C1 - prescaler

2

clk zewn

f

f

Special Function IO Register

(46)

Output Compare Unit

(układ porównawczy)

Przerwania

OCR1A:

0x006

OCR1B:

0x007

(47)

Wyjścia ukł. porównawczego

Wyjścia:

OC1A:

PD5

OC1B:

PD4

(48)

Input Capture Unit

(układ zatrzaskujący)

PD6

Przerwanie: 0x005

(49)

Tryby pracy

Licznika 1

(50)

Tryby pracy T/C1

(51)

Tryb normalny

zob. T/C0

(52)

Tryby CTC

2 tryby:

• z OCR1A

• z ICR1

(53)

Tryby FAST PWM

(54)

Fast PWM

Zliczanie

Flaga TOV1 – w TOP

Zmiana na pinach OC1x przy: OCR1A, OCR1B, TOP

(55)

Tryby Phase Correct PWM (korekcja fazy)

(56)

Tryby Phase Correct PWM (korekcja fazy)

Zliczanie

Flaga TOV1 –

Zmiana na pinach OC1x przy: OCR1A, OCR1B

Modyfikacja OCR1x – w TOP => niesymetryczny PWM

(57)

Tryby Phase and Frequency Correct PWM

(korekcja fazy i częstotliwości)

(58)

Tryby Phase and Frequency Correct PWM

(korekcja fazy i częstotliwości)

Zliczanie

Flaga TOV1 –

Zmiana na pinach OC1x przy: OCR1A, OCR1B

Modyfikacja OCR1x – w BOTTOM => symetryczny PWM

(59)

PC / PFC PWM

(60)

PC / PFC PWM

(61)

Rejestry

Licznika T/C1

(62)

Timer/Counter1 Control Register A

(TCCR1A)

Piny wyjściowe – tryby NIE PWM

(63)

Timer/Counter1 Control Register A

(TCCR1A)

Piny wyjściowe – tryby FAST PWM

(64)

Timer/Counter1 Control Register A

(TCCR1A)

Piny wyjściowe – tryby PC i PCF PWM

(65)

Timer/Counter1 Control Register B

(TCCR1B)

(66)

Timer/Counter1 (TCNT1H, TCNT1H)

Input Capture Register (ICR1H, ICR1L)

(67)

Output Compare Registers (OCR1AH, OCR1AL)

(OCR1BH, OCR1BL)

(68)

Rejestry 16-bitowe

16-bitowe:

TCNT1

ICR1

OCR1A

OCR1B

(69)

Timer/Counter Interrupt Mask Register

Timer/Counter Interrupt Flag Register

(70)

Licznik „2”

Timer/Counter 2

(71)

Cechy

• 8-o bitowy (0-255)

• 10-o bitowy prescaler (niezależny od T/C0 i T/C1)

• Output Compare (OCR2)

• 2 tryby PWM

• 2 przerwania:

OCF2 – TIMER2 COMP – wektor 0x003

TOV2 – TIMER2 OVF – wektor 0x004

(72)

Zastosowanie

Służy do:

• zliczania:

- impulsów zegarowych

- impulsów zewnętrznych

• generowania sygnału PWM

• generowania częstotliwości

• możliwość pracy jako licznik czasu rzeczywistego

(Real Time Counter)

(73)

Budowa

(74)

Budowa - c.d.

(75)

Sterowanie licznikiem T/C2

• 4+3 rejestry specjalne:

- Timer/Counter 2 Control Register (TCCR2) - Timer/Counter 2 Register (TCNT2)

- Output Compare Register 2 (OCR2) - Asynchronous Status Register (ASSR)

- Timer /Counter Interrupt Mask Register (TIMSK) - Timer /Counter Interrupt Flag Register (TIFR) - Special Function I/O Register (SFIOR)

• wejścia:

- Timer Oscillator 1 (TOSC1) – PC6 - Timer Oscillator 2 (TOSC2) – PC7 • wyjścia:

- Output Compare 2 (OC2) – PD7

(76)

T/C2 vs T/C0

Różnice dotyczą

(77)

Rejestry

Licznika T/C2

(78)

Timer/Counter Control Register (TCCR2)

(79)

Pozostałe rejestry

Timer/Counter Register (TCNT2)

Output Compare Register (OCR2)

Timer/Counter Interrupt Mask Register (TIMSK)

(bity 7 oraz 6)

Timer/Counter Interrupt Flag Register (TIFR)

(bity 7 oraz 6)

Special Function IO Register (SFIOR)

(bit 1)

(80)

Asynchronous Status Register (ASSR)

AS2 – 1 =>

Pozostałe – sygnalizacja dostępności

(81)

Praca asynchroniczna

• Przy zmianie źródła taktowania możliwe

• Optymalna f =

• Zapis/odczyt rejestrów trwa

(ważne m.in. przy )

• Wybudzanie przerwaniem od T/C2 asynchro:

• T/C2 asynchro wyłączany tylko w

• Po wybudzeniu TOSC1/2 oraz CPU

(wymaga czasu)

(82)

Przykładowe zagadnienia

sprawdzające

1. Liczniki mikrokontrolerów – cechy, różnice.

2. Tryby pracy – cechy, różnice, zastosowania.

3. Wejścia i wyjścia – rodzaje, zastosowania.

4. Bloki funkcyjne liczników.

5. Przerwania – rodzaje.

6. Sposoby formowania przebiegów prostokątnych na wyjściu licznika.

7. Praca asynchroniczna, zegar czasu rzeczywistego – wyjaśnij terminy.

Cytaty

Powiązane dokumenty

T1C0 Timer Start/Stop control in Modes 1 and 2 (Processor Independent PWM and External Event Counter), where 1 = Start, 0 = Stop Timer Underflow Interrupt

Timer Start/Stop control in Modes 1 and 2 (Processor Independent PWM and External Event Counter), where 1 = Start, 0 = Stop Timer Underflow Interrupt Pending

TxCO Timer Start/Stop control in Modes 1 and 2 (Processor Independent PWM and External Event Counter), where 1 = Start, 0 = Stop Timer Underflow Interrupt

TxCO Timer Start/Stop control in Modes 1 and 2 (Processor Independent PWM and External Event Counter), where 1 = Start, 0 = Stop Timer Underflow Interrupt

TxC0 Timer Start/Stop control in Modes 1 and 2 (Processor Independent PWM and External Event Counter), where 1 e Start, 0 e Stop Timer Underflow Interrupt Pending Flag in Mode 3

TxC0 Timer Start/Stop control in Modes 1 and 2 (Processor Independent PWM and External Event Counter), where 1 e Start, 0 e Stop Timer Underflow Interrupt Pending Flag in Mode 3

TxC0 Timer Start/Stop control in Modes 1 and 2 (Processor Independent PWM and External Event Counter), where 1 e Start, 0 e Stop Timer Underflow Interrupt Pending Flag in Mode 3

TxC0 Timer Start/Stop control in Modes 1 and 2 (Processor Independent PWM and External Event Counter), where 1 e Start, 0 e Stop Timer Underflow Interrupt Pending Flag in Mode 3