69
Techniki mikroprocesorowe Wbudowane układy peryferyjne cz. 2 Wykład 8

Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Wbudowane układy peryferyjne cz. 2

Wykład 8

Page 2: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Timery (liczniki)

Techniki mikroprocesorowe

Timery

2

Page 3: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timery – informacje ogólne

• Mikrokontroler ATmega32 posiada 3 liczniki:

– Timer0 – 8-bitowy

– Timer1 – 16-bitowy

– Timer2 – 8-bitowy, mogący pracować w trybie asynchronicznym

• Każdy licznik może pracować w jednym z kilku trybów pracy i być źródłem przerwań

3

Page 4: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timery – informacje ogólne

• Timery mogą być taktowane sygnałem z różnych źródeł

• Każdy timer ma możliwość pracy z preskalerem sygnału taktującego, stopnie podziału są zależne od numeru timera

4

Page 5: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timery - pojęcia

• BOTTOM – minimalna wartość możliwa do osiągnięcia przez timer (0x00 lub 0x0000)

• MAX – maksymalna wartość możliwa do osiągnięcia przez timer (0xff lub 0xffff – zależnie od timera)

• TOP – maksymalna wartość timera możliwa do osiągnięcia w danej sekwencji zliczania. Może być nią MAX lub wartość OCRn lub ICRx.

5

Page 6: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Timer0 i timer2

Techniki mikroprocesorowe

Timer0 i timer2

6

Page 7: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer 0

7

Page 8: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer2

8

Page 9: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer0 i timer2 – informacje ogólne

• Pojemność: 8-bitów • Pojedynczy moduł porównujący • 10-bitowy preskaler • Tryby:

– Zliczanie (zegar zewnętrzny lub wewnętrzny) – Szybki PWM i PWM z korekcją fazy – Zerowanie w momencie zgodności (CTC - Clear Timer

on Compare)

• Przerwania: – Przepełnienie, zgodność

9

Page 10: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer0 i timer1 - preskaler

10

Page 11: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer2 - preskaler

11

Page 12: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb zliczania

• W trybie tym licznik zlicza impulsy taktujące, pochodzące z zegara systemowego lub źródła zewnętrznego

• W momencie przepełnienia może zostać zgłoszone przerwanie

• Stan licznik przechowywany jest w rejestrze TCNT0 (timer0) lub TCNT2 (timer2)

12

Page 13: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb zliczania (timer0)

13

Page 14: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb zliczania (timer2)

14

Page 15: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb porównywania

• W trybie tym stan licznika TCNT0 (timer0) lub TCNT2 (timer2) jest porównywany ze stanem rejestru OCR0 (timer0) lub OCR0 (timer2)

• W momencie wystąpienia zgodności może zostać zgłoszone przerwanie

• Ponadto w momencie wystąpienia zgodności może zostać zmieniony stan pinu OC0 (timer0) lub OC2 (timer2)

15

Page 16: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb porównywania

16

Page 17: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb zerowania timera w momencie zgodności (CTC)

• W trybie tym stan timera TCNT0 (timer0) lub TCNT2 (timer2) jest zerowany w momencie wystąpienia zgodności ze stanem rejestru OCR0 (timer0) lub OCR2 (timer2)

• Oprócz wyzerowania może zostać stan pinu OC0 (timer0) lub OC2 (timer2)

17

Page 18: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb zerowania timera w momencie zgodności (CTC)

18

Page 19: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb zerowania timera w momencie zgodności (CTC)

• Częstotliwość przebiegu generowanego na wyjściu OC0 (timer0) lub OC2 (timer2) jest zadana wzorem:

gdzie N jest współczynnikiem podziału preskalera (różne dla timera0 i timera1)

)1(2

/_

OCRnN

ff

OIclk

OCn

19

Page 20: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb szybkiego PWM

• W trybie tym licznik zlicza od BOTTOM do MAX, po czym jest zerowany

• Zmiana stanu następuje w momencie osiągnięcia BOTTOM i TOP

20

Page 21: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb szybkiego PWM

21

Page 22: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb szybkiego PWM

• Częstotliwość przebiegu generowanego na wyjściu OC0 (timer0) lub OC2 (timer2) jest zadana wzorem:

gdzie N jest współczynnikiem podziału preskalera (różne dla timera0 i timera1)

N

ff

OIclk

OCnPWM

256

/_

22

Page 23: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb PWM z korekcją fazy

• W trybie tym licznik zlicza od BOTTOM do TOP

• W momencie osiągnięcia zgodności zmieniany jest stan OC0 (lub OC2 dla timera2) na przeciwny

• Po osiągnięciu TOP licznik zmienia kierunek zliczania

• Ponownie w momencie osiągnięcia zgodności zmieniany jest stan OC0 (lub OC2 dla timera2) na przeciwny

23

Page 24: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb PWM z korekcją fazy

24

Page 25: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb PWM z korekcją fazy

• Częstotliwość przebiegu generowanego na wyjściu OC0 jest zadana wzorem:

gdzie N jest współczynnikiem podziału preskalera (różne dla timera0 i timera1)

N

ff

OIclk

OCnPCPWM

510

/_

25

Page 26: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer0 i timer2 - rejestry

• TCCRn:

– FOCn: w trybie zwykłym zmienia wartość pinu OCn zgodnie z bitami COMn0 i COMn1

– WGMn0 i WGMn1: tryb pracy

WGMn1 WGMn0 Tryb TOP Aktualizacja OCRn

Flaga TOVn ustawiana

0 0 Normalny 0xff natychmiast MAX

0 1 PWM z korekcją fazy

0xff TOP BOTTOM

1 0 CTC OCRn natychmiast MAX

1 1 Szybki PWM 0xff BOTTOM MAX 26

Page 27: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer0 i timer2 - rejestry

• TCCRn – c.d.:

– COMn0 i COMn1: tryb porównywania zgodności

COMn1 COMn0 Opis dla trybów innych niż PWM

0 0 OCn odłączony

0 1 Zmień stan OCn na przeciwny w momencie zgodności

1 0 Zeruj OCn w momencie zgodności

1 1 Ustaw OCn w momencie zgodności

27

Page 28: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer0 i timer2 - rejestry

COMn1 COMn0 Opis dla trybu szybkiego PWM

0 0 OCn odłączony

0 1 Zarezerwowany

1 0 Zeruj OCn w momencie zgodności, ustaw OCn dla BOTTOM

1 1 Ustaw OCn w momencie zgodności, zeruj OCn dla BOTTOM

COMn1 COMn0 Opis dla trybu PWM z korekcją fazy

0 0 OCn odłączony

0 1 Zarezerwowany

1 0 Zeruj OCn w momencie zgodności przy liczeniu w górę, ustaw OCn w momencie zgodności przy liczeniu w dół

1 1 Zeruj OCn w momencie zgodności przy liczeniu w dół, ustaw OCn w momencie zgodności przy liczeniu w górę

28

Page 29: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer0 - rejestry

• TCCR0 – c.d.: – CS00, CS01, CS02: dzielnik preskalera

CSn2 CSn1 CSn0 Opis

0 0 0 Sygnał taktujący odłączony (licznik zatrzymany)

0 0 1 clk/1

0 1 0 clk/8

0 1 1 clk/64

1 0 0 clk/256

1 0 1 clk/1024

1 1 0 Sygnał taktujący podany na pin T0 – reakcja na zbocze opadające

1 1 1 Sygnał taktujący podany na pin T0 – reakcja na zbocze narastające

29

Page 30: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer2 - rejestry

• TCCR2 – c.d.:

– CS20, CS21, CS22: dzielnik preskalera

CS22 CS21 CS20 Opis

0 0 0 Sygnał taktujący odłączony (licznik zatrzymany)

0 0 1 clk/1

0 1 0 clk/8

0 1 1 clk/32

1 0 0 clk/64

1 0 1 clk/128

1 1 0 clk/256

1 1 1 clk/1024 30

Page 31: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer0 i timer2 – rejestry

• TCNTn: bieżący stan licznika

• OCRn: rejestr wartości do porównania

• TIMSK:

– OCIEn: 1 - włączenie przerwania przy zgodności

– TOIEn: 1 - włączenie przerwania przy przepełnieniu

• TIFR:

– OCFn: flaga wystąpienia przerwania przy zgodności

– TOVn: flaga wystąpienia przerwania przy przepełnieniu

31

Page 32: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Timer1

Techniki mikroprocesorowe

Timer1

32

Page 33: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer1

33

Page 34: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer1 – informacje ogólne

• Pojemność: 16-bitów • Podwójny moduł porównujący • Pojedynczy moduł przechwytywania • 10-bitowy preskaler • Tryby:

– Zliczanie (zegar zewnętrzny lub wewnętrzny) – Szybki PWM, PWM z korekcją fazy, PWM z korekcją fazy i

częstotliwości – Zerowanie w momencie zgodności (CTC)

• Przerwania: – Przepełnienie, zgodność, przechwycenie

34

Page 35: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb zliczania

• Tryb ten działa tak samo jak w przypadku licznika timer0

• Wartość licznika jest przechowywana w rejestrze TCNT1 (TCNT1H i TCNT1L)

35

Page 36: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb zliczania

36

Page 37: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb przechwytywania

• W trybie tym istnieje możliwość zachowania stanu licznika timer1 w momencie pojawienia się wybranego zbocza na pinie ICP1

• Przechwycona wartość jest zachowywana w rejestrze ICR1 (ICR1H i ICR1L)

• W momencie przechwycenia może być zgłoszone przerwanie

37

Page 38: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb przechwytywania

38

Page 39: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb porównywania

• Tryb ten działa identycznie jak w liczniku timer0, z tą różnicą, że timer1 posiada dwa takie moduły: A i B

• Moduły te posiadają odpowiednio rejestry OCR1A i OCR1B oraz własne opcje konfiguracyjne, dzięki czemu mogą działać częściowo niezależnie od siebie

• Moduły A i B mogą zgłaszać przerwania niezależnie od siebie

39

Page 40: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb porównywania

40

Page 41: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb zerowania timera w momencie zgodności (CTC)

• Zasada działania tego trybu jest identyczna jak w przypadku timera0, lecz dzięki posiadaniu dwóch modułów porównawczych możliwe jest generowanie dwóch niezależnych przebiegów na pinach OCR1A i OCR1B

41

Page 42: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb zerowania timera w momencie zgodności (CTC)

42

Page 43: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb zerowania timera w momencie zgodności (CTC)

• Częstotliwość generowanego przebiegu na wyjściach OC1A i OC1B można wyrazić wzorem gdzie N jest współczynnikiem podziału preskalera (1,8,64,256,1024)

)1(2

/_

OCRnxN

ff

OIclk

OCnx

43

Page 44: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb szybkiego PWM

• Tryb ten różni się od trybu szybkiego PWM dla timera0 możliwością użycia jako TOP rejestru ICR1 lub OCR1x

• Dzięki obecności dwóch modułów porównujących A i B istnieje możliwość jednoczesnego generowania dwóch przebiegów o różnym wypełnieniu

44

Page 45: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb szybkiego PWM

45

Page 46: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb szybkiego PWM

• Częstotliwość i rozdzielczość generowanego przebiegu można wyrazić wzorami gdzie N jest współczynnikiem podziału preskalera (1,8,64,256,1024)

)1(2

/_

TOPN

ff

OIclk

OCnxPWM

)2log(

)1log(

TOPRFPWM

46

Page 47: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb PWM z korekcją fazy

• Podobnie jak tryb szybkiego PWM, tryb ten różni się od trybu PWM z korekcją fazy dla timera0 możliwością użycia jako TOP rejestru ICR1 lub OCR1x

• Dzięki obecności dwóch modułów porównujących A i B istnieje możliwość jednoczesnego generowania dwóch przebiegów o różnym wypełnieniu

47

Page 48: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb PWM z korekcją fazy

• W przypadku zmiany wartości TOP przez program jego wartość jest aktualizowana z bufora tymczasowego w momencie osiągnięcia przez licznik wartości aktualnej wartości TOP

• Podczas ustawiania nowej wartości TOP należy ustawiać ją zawsze większą lub równą niż wartość w rejestrze porównującym, w przeciwnym wypadku ponowne porównanie nigdy nie nastąpi

48

Page 49: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb PWM z korekcją fazy

49

Page 50: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb PWM z korekcją fazy

• Częstotliwość i rozdzielczość generowanego przebiegu można wyrazić wzorami gdzie N jest współczynnikiem podziału preskalera (1,8,64,256,1024)

TOPN

ff

OIclk

OCnxPCPWM

2

/_

)2log(

)1log(

TOPRPCPWM

50

Page 51: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb PWM z korekcją fazy i częstotliwości

• Tryb ten jest podobny do trybu z korekcją fazy, z tą różnicą, że aktualizacja wartości TOP następuje w momencie, gdy licznik ma wartość BOTTOM

• Tryb ten ma zastosowanie, jeśli TOP ulega zmianom w trakcie pracy licznika. Jeśli wartość TOP jest stała, tryb ten jest taki sam jak PWM z korekcją fazy.

51

Page 52: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb PWM z korekcją fazy i częstotliwości

52

Page 53: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Tryb PWM z korekcją fazy i częstotliwości

• Częstotliwość i rozdzielczość generowanego przebiegu można wyrazić wzorami gdzie N jest współczynnikiem podziału preskalera (1,8,64,256,1024)

TOPN

ff

OIclk

OCnxPCPWM

2

/_

)2log(

)1log(

TOPRPCPWM

53

Page 54: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer1 - rejestry

• TCCR1A

– COM1A1 i COM1A0: tryb porównywania dla modułu A

– COM1B1 i COM1B0: tryb porównywania dla modułu B

54

Page 55: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer1 - rejestry

COM1A1 COM1B1

COM1A0 COM1B0

Opis (tryby inne niż PWM)

0 0 Pin OC1A/OC1B odłączony

0 1 Zmień stan OC1A/OC1B na przeciwny w momencie zgodności

1 0 Zeruj OC1A/OC1B w momencie zgodności

1 1 Ustaw OC1A/OC1B w momencie zgodności

55

Page 56: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer1 - rejestry

COM1A1 COM1B1

COM1A0 COM1B0

Opis (tryb szybkiego PWM)

0 0 Pin OC1A/OC1B odłączony

0 1 Jeśli TOP:=OCR1A: zmień stan OC1A na przeciwny w momencie zgodności, OC1B odłączony Pozostałe przypadki: zmień stan OC1A/OC1B odłączone

1 0 Zeruj OC1A/OC1B w momencie zgodności, ustaw dla BOTTOM

1 1 Ustaw OC1A/OC1B w momencie zgodności, zeruj dla BOTTOM

56

Page 57: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer1 - rejestry

COM1A1 COM1B1

COM1A0 COM1B0

Opis (tryb PWM z korekcją fazy i PWM z korekcją fazy i częstotliwości)

0 0 Pin OC1A/OC1B odłączony

0 1 Jeśli TOP:=OCR1A: zmień stan OC1A na przeciwny w momencie zgodności, OC1B odłączony Pozostałe przypadki: zmień stan OC1A/OC1B odłączone

1 0 Zeruj OC1A/OC1B w momencie zgodności przy liczeniu w górę, ustaw OC1A/OC1B w momencie zgodności przy liczeniu w dół

1 1 Ustaw OC1A/OC1B w momencie zgodności przy liczeniu w górę, zeruj OC1A/OC1B w momencie zgodności przy liczeniu w dół

57

Page 58: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer1 - rejestry

• TCCR1A – c.d.:

– FOC1A: w trybie zwykłym zmienia wartość pinu OC1A zgodnie z bitami COM1A0 i COM1A1

– FOC1B: w trybie zwykłym zmienia wartość pinu OC1B zgodnie z bitami COM1B0 i COM1B1

– WGM11 i WGM10: tryb pracy licznika

58

Page 59: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer1 - rejestry

WG

M1

3

WG

M1

2

WG

M1

1

WG

M1

0

Tryb pracy TOP Aktualizacja OCR1x

Flaga TOV1 ustawiana

0 0 0 0 Normalny 0xffff natychmiast MAX

0 0 0 1 PWM z kor. Fazy, 8-bit 0x00ff TOP BOTTOM

0 0 1 0 PWM z kor. Fazy, 9-bit 0x01ff TOP BOTTOM

0 0 1 1 PWM z kor. Fazy, 10-bit 0x03ff TOP BOTTOM

0 1 0 0 CTC OCR1A Natychmiast MAX

0 1 0 1 Szybki PWM, 8-bit 0x00ff BOTTOM TOP

0 1 1 0 Szybki PWM, 9-bit 0x01ff BOTTOM TOP

0 1 1 1 Szybki PWM, 10-bit 0x03ff BOTTOM TOP

59

Page 60: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Timer1 - rejestry

Techniki mikroprocesorowe

WG

M1

3

WG

M1

2

WG

M1

1

WG

M1

0

Tryb pracy TOP Aktualizacja OCR1x

Flaga TOV1 ustawiana

1 0 0 0 PWM z korekcją fazy i częst. ICR1 BOTTOM BOTTOM

1 0 0 1 PWM z korekcją fazy i częst. OCR1A BOTTOM BOTTOM

1 0 1 0 PWM z korekcją fazy ICR1 TOP BOTTOM

1 0 1 1 PWM z korekcją fazy OCR1A TOP BOTTOM

1 1 0 0 CTC ICR1 Natychmiast MAX

1 1 0 1 zarezerwowane - - -

1 1 1 0 Szybki PWM ICR1 BOTTOM TOP

1 1 1 1 Szybki PWM OCR1A BOTTOM TOP

60

Page 61: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer1 - rejestry

• TCCR1B:

– ICNC1: 1 - włączenie eliminacji zakłóceń na wejściu ICP1

– ICES1: wybór zbocza przechwytywania: 0 – opadające, 1- narastające

– WGM12 i WGM13: tryb pracy licznika

– CS10, CS11, CS12: dzielnik preskalera

61

Page 62: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer1 - rejestry

CS12 CS11 CS10 Opis

0 0 0 Sygnał taktujący odłączony (licznik zatrzymany)

0 0 1 clk/1

0 1 0 clk/8

0 1 1 clk/64

1 0 0 clk/256

1 0 1 clk/1024

1 1 0 Sygnał taktujący podany na pin T1 – reakcja na zbocze opadające

1 1 1 Sygnał taktujący podany na pin T1 – reakcja na zbocze narastające

62

Page 63: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer1 - rejestry

• TCNT1 (TCNT1H i TCNT1L): bieżący stan licznika

• OCR1A (OCR1AH i OCR1AL): rejestr wartości do porównania (A)

• OCR1B (OCR1BH i OCR1BL): rejestr wartości do porównania (B)

• ICR1 (ICR1A i ICR1L): rejestr przechwytujący

63

Page 64: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer1 - rejestry

• TIMSK: – TICIE1: 1 - włączenie przerwania przy przechwyceniu

– OCIE1A i OCIE1B: 1 - włączenie przerwania przy zgodności (moduł A i B komparatora)

– TOIE1: 1 - włączenie przerwania przy przepełnieniu

• TIFR: – ICF1: flaga przerwania przy przechwyceniu

– OCF1A i OCF1B: flagi przerwania przy zgodności (moduł A i B)

– TOV1: flaga przerwania przy przepełnieniu 64

Page 65: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Timer2 – tryb asynchroniczny

Techniki mikroprocesorowe

Timer 2 – tryb asynchroniczny

65

Page 66: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer2 – tryb asynchroniczny

• Timer2 posiada możliwość pracy w trybie asynchronicznym, niezależnym od głównego zegara systemowego

• Źródłem sygnału zegarowego dla trybu asynchronicznego może być oscylator kwarcowy 32,768kHz

• Tryb ten umożliwia pracę timera w niektórych trybach oszczędzania energii

66

Page 67: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer2 – tryb asynchroniczny

• Timer2 pracujący w trybie asynchronicznym może zostać wykorzystany do wybudzania mikrokontrolera z trybu uśpienia lub jako wzorzec częstotliwości dla zegara RTC

67

Page 68: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer2 – tryb asynchroniczny - rejestry

• ASSR:

– AS2: 1 - przełączenie timera2 w tryb asynchroniczny, zmiana tego bitu w trakcie pracy timera2 może uszkodzić zawartość rejestrów TCNT2, OCR2 i TCCR2

– TCNT2UB: flaga aktualizacji rejestru TCNT2 w trybie asynchronicznym, jeśli jest ustawiona, to wartość rejestru TCNT2 jest aktualizowana

68

Page 69: Wbudowanelielow/PTM/Wyklady/W8_Wbudowane...układy peryferyjne cz. 2 Wykład 8 Timery (liczniki) Techniki mikroprocesorowe Timery 2 Techniki mikroprocesorowe Timery – informacje

Techniki mikroprocesorowe

Timer2 – tryb asynchroniczny - rejestry

• ASSR – c.d.:

– OCR2UB: flaga aktualizacji rejestru OCR2 w trybie asynchronicznym, jeśli jest ustawiona, to wartość rejestru OCR2 jest aktualizowana

– TCR2UB: flaga aktualizacji rejestru TCR2 w trybie asynchronicznym, jeśli jest ustawiona, to wartość rejestru TCR2 jest aktualizowana

69