300 likes | 466 Views
MCS51 - wykład 3. Wykład 3 1/29. Timery/liczniki MCS51. Cechy wspólne: 16-bitowe; widoczne w SFR jako pary rejestrów THx-TLx; zliczające w górę;
E N D
Wykład 3 1/29 Timery/liczniki MCS51
Cechy wspólne: • 16-bitowe; • widoczne w SFR jako pary rejestrów THx-TLx; • zliczające w górę; • mogą zliczać cykle maszynowe albo impulsy zewnętrzne; • możliwość bramkowania impulsów zewn.; • sterowane odpowiednimi bitami rejestrów kontrolnych; • przepełnienie ustawia flagę (TFx). która może powodować przerwanie; • 3 jednakowe tryby pracy: 0, 1 i 2. • Timer/licznik 0 może działać w trybie 3, wtedy timer/licznik 1 nie pracuje. MCS51 - timer/licznik 0 i 1 2/29
TMOD GATE C/T M1 M0 GATE C/T M1 M0 89h Rejestry sterujące: MCS51 - timer/licznik 0 i 1 3/29 timer/licznik 1 timer/licznik 0 GATE - ustawiony włącza mechanizm bramkowania zliczanych impulsów zewn. C/T - ustawiony - tryb licznikowy, wyzerowany - tryb czasowy M1,M0 - wybór jednego z trybów pracy: dla układu 1 dla układu 0 0 0 - tryb 0 0 0 - tryb 0 (13-bitowy) 0 1 - tryb 1 0 1 - tryb 1 (16-bitowy) 1 0 - tryb 2 1 0 - tryb 2 (8-bitowy z przeładowaniem) 1 1 - wyłączony1 1 - tryb 3 (podwójny 8-bitowy)
TCON TF1 8F TR1 8E TF0 8D TR0 8C IE1 8B IT1 8A IE0 89 IT0 88 88h TH1 8Dh TH0 8Ch TL1 8Bh TL0 8Ah MCS51 - timer/licznik 0 i 1 4/29 TF1 - flaga przepełnienia timera/licznika 1 TR1 - ustawiony uruchamia timer/licznik 1 TF0 - flaga przepełnienia timera/licznika 0 TR0 - ustawiony uruchamia timer/licznik 0 Rejestry wartości-zliczające:
MCS51 - timer/licznik 0 i 1 5/29 Praca w trybie 0 - 13-bitowym OSC :12 0 1 0 1 TLx 5b THx 8b TFx Tx C/T TRx GATE INTx
MCS51 - timer/licznik 0 i 1 6/29 Praca w trybie 1 - 16-bitowym OSC :12 0 1 0 1 TLx 8b THx 8b TFx Tx C/T TRx GATE INTx
MCS51 - timer/licznik 0 i 1 7/29 Praca w trybie 2 - 8-bitowym z przeładowaniem OSC :12 0 1 0 1 TLx 8b TFx Tx C/T THx 8b TRx GATE INTx
MCS51 - timer/licznik 0 i 1 8/29 Praca układu 0 w trybie 3 - podwójnym 8-bitowym TR1 0 1 TH0 8b TF1 OSC :12 0 1 0 1 TL0 8b TF0 Tx C/T TR0 GATE INT0
MCS51 - timer/licznik 0 i 1 9/29 • Zliczanie impulsów zewnętrznych (C/T=1) • zliczane są zbocza opadające; • zbocze na wejściu Tx jest wykrywane, jeżeli w jednym cyklu jest na nim stan wysoki, a w następnym - niski; • inkrementacja stanu licznika następuje w cyklu maszynowym następującym po wykryciu zbocza opadającego • maksymalna częstotliwość zliczanych impulsów zewn. = fOSC:24. cykl maszynowy N-1 cykl maszynowy N cykl maszynowy N+1 3/4c.m. 3/4c.m. 1/3c.m. wykrycie zbocza opadającego inkrementlicznika
MCS51 - timer/licznik 0 i 1 10/29 • Możliwe zastosowania timerów/liczników 0 i 1: • odmierzanie zadanych odcinków czasu, koniec pracy sygnalizowany przerwaniem lub tylko flagą TFx; • przerwania zegarowe; • w trybie 8-bitowym z automatycznym przeładowaniem można uzyskać przy fOSC=12MHz okres przerwań zegarowych do 256s (3,9kHz); • w trybie 16-bitowym z programowym przeładowaniem można uzyskać przy fOSC=12MHz okres przerwań zegarowych do 65,5ms (15,25Hz); • zliczanie impulsów / zdarzeń zewn.; • zliczenie zadanej liczby impulsów zewn. i zgłoszenie przerwania; • taktowanie portu transmisji szeregowej - tylko timer 1 !.
Cechy: • 16-bitowy; • widoczny w SFR jako para rejestrów TH2-TL2; • zliczający w górę; • może zliczać cykle maszynowe albo impulsy zewnętrzne; • 16-bitowy rejestr przechwytująco-porównujący RCAP2H-RCAP2L; • sterowany odpowiednimi bitami rejestru kontrolnego; • przepełnienie ustawia flagę (TF2), która może powodować przerwanie; • może taktować port transmisji szeregowej; MCS51 - timer/licznik 2 11/29
T2CON TF2CF EXF2CE RCLKCD TCLKCC EXEN2CB TR2CA C/T2C9 CP/RL2C8 C8h Rejestr sterujący: MCS51 - timer/licznik 2 12/29 TF2 - flaga przepełnienia w timera/licznika 2, ustawiana sprzętowo po przepełnieniu licznika pod warunkiem, że bity RCLK i TCLK są wyzerowane EXF2 - flaga sygnalizująca opadające zbocze na wejściu T2EX (P1.1),warunkiem zadziałania jest ustawienie bitu EXEN2 EXEN2 - bit zezwalający na wykrywanie opadającego zbocza na wejściu T2EX np. w celu przeładowania/przechwycenia stanu licznika TR2 - ustawiony uruchamia timer/licznik 2 C/T2 - ustawiony - tryb licznikowy, wyzerowany - tryb czasowy CP/RL2 - ustawiony - tryb z przechwytywaniem, wyzerowany - tryb z przeładowaniem RCLK, TCLK - ustawione powodują, że przepełnienia timera/licznika 2 są sygnałami taktującymi dla odbiornika i/lub nadajnika transmisji szeregowej, wyzerowane pozostawiają timer/licznik 1 jako generator taktu SIO
OSC :12 0 1 0 1 TL2 TH2 TF2 T2 C/T2 TR2 RCAP2L RCAP2H EXEN2 0 1 T2EX EXF2 MCS51 - timer/licznik 2 13/29 Praca w trybie z automatycznym przechwytywaniem przy CP/RL2=1 TCLK=RCLK=0
OSC :12 0 1 0 1 TL2 TH2 TF2 T2 C/T2 TR2 RCAP2L RCAP2H EXEN2 0 1 T2EX EXF2 MCS51 - timer/licznik 2 14/29 Praca w trybie z automatycznym przeładowaniem przy CP/RL2=0 TCLK=RCLK=0
TF1 OSC :2 0 1 0 1 TL2 TH2 T2 C/T2 TR2 RCAP2L RCAP2H EXEN2 0 1 T2EX EXF2 Praca w trybie generatora taktu dla portu szeregowego przy RCLK=1 lub TCLK=1 MCS51 - timer/licznik 2 15/29 SMOD 0 1 :2 1 0 :16 RxC 1 0 :16 TxC RCLK TCLK
MCS51 - timer/licznik 2 16/29 • Możliwe zastosowania timera/licznika 2: • odmierzanie zadanych odcinków czasu, koniec pracy sygnalizowany przerwaniem lub tylko flagą TF2; • przerwania zegarowe; • wykorzystanie 16-bitowej stałej przeładowującej pozwala łatwo uzyskać długie okresy przerwań zegarowych; • zliczanie impulsów / zdarzeń zewn.; • zliczenie zadanej liczby impulsów zewn. i zgłoszenie przerwania; • taktowanie portu transmisji szeregowej - niezależnie odbiornik i nadajnik; • szeroka gama częstotliwości taktowania SIO; • pomiar czasu trwania zjawisk, których początek i koniec są sygnalizowane opadającym zboczem na T2EX.
0 1 0 1 OSC :2 TL2 TH2 opcjonalniedo SIO C/T2 TR2 T2OE RCAP2L RCAP2H 0 1 T2 :2 EXEN2 0 1 T2EX EXF2 Praca w trybie z automatycznym przeładowaniem i generacją fali prostokątnej na T2 MCS51 - timer/licznik 2 - spotykane modyfikacje 17/29 fOUT=fOSC/4/(65536-RCAP2)
0FFh 0FFh OSC :12 0 1 0 1 0 1 TL2 TH2 TF2 T2 C/T2 TR2 RCAP2L RCAP2H kierunek zliczania: 0 - w dół; 1 - w górę T2EX EXF2 Praca w trybie z automatycznym przeładowaniem i przełączanym kierunku zliczania MCS51 - timer/licznik 2 - spotykane modyfikacje 18/29 zliczanie w górę: od wartości z RCAP2 do 0FFFFhzliczanie w dół: od wartości 0FFFFh do wartości z RCAP2
Cechy: • 16-bitowy licznik widoczny w SFR jako para rejestrów CH-CL, będący wspólną podstawą czasu dla 5 modułów; • zliczający w górę; • może zliczać podzielone takty oscylatora wewn. albo impulsy zewnętrzne albo sygnał z wyjścia timera/licznika 0; • 5 16-bitowych modułów przechwytująco-porównujących CCAPxH-CCAPxL; • każdy z modułów może pracować w trybach: przechwytywania, odmierzania czasu, PWM, generacji impulsów; • jeden z modułów może pracować jako watch-dog; • możliwość zgłaszania przerwań; MCS51 - układ PCA 19/29
moduły PCA OSC :4 :3 0 1 CL CH CF T0OV ECI CPS1 system przerwań CPS0 CR CIDL IDL ECF Struktura licznika - podstawy czasu MCS51 - układ PCA 20/29
CCFn system przerwań ECCFn CL CH 0 1 CEXn 0 1 CCAPnL CCAPnH CAPPn CAPNn Działanie jednego z 5 kanałów w trybie przechwytywania MCS51 - układ PCA 21/29
zapis do CCAPnH RESET 0 1 zapis do CCAPnL CL CH 0 1 E =? EQ ECOMn CCFn system przerwań CCAPnL CCAPnH MATn ECCFn Działanie jednego z 5 kanałów w trybie pomiaru czasu MCS51 - układ PCA 22/29
zapis do CCAPnH RESET 0 1 zapis do CCAPnL CL CH 0 1 E =? EQ ECOMn CCFn system przerwań CCAPnL CCAPnH 0 1 CEXn MATn ECCFn TOGn Działanie jednego z 5 kanałów w trybie generacji impulsów MCS51 - układ PCA 23/29
CL OV 0 1 PWMn CL<CCAPnL E =? CL>CCAPnL CEXn ECOMn CCAPnL CCAPnH Działanie jednego z 5 kanałów w trybie PWM MCS51 - układ PCA 24/29
zapis do CCAP4H RESET 0 1 zapis do CCAP4L CL CH 0 1 E =? EQ ECOM4 RESET CCAP4L CCAP4H WDTE Działanie kanału 4 w trybie watch-doga MCS51 - układ PCA 25/29
MCS51 - układ PCA 26/29 • Możliwe zastosowania struktury PCA: • równoległe w pięciu kanałach realizowanie zadań zsynchronizowanych ze sobą za sprawą wspólnego licznika podstawy czasu; • jednoczesna, 5-kanałowa rejestracja/pomiar zjawisk fizycznych
CT2I CT1I CT0I CT3I CTI3 CTI2 CTI1 CTI0 CTL0 CTL1 CTL3 CTL2 CTH3 CTH2 CTH1 CTH0 MCS51 - układ CCU Philips 27/29 00 01 11 OSC :12 :1/:2:4/:8 TL2 TH2 T2OV T2 T2BO T2MS1,T2MS0 CML0 =? T2P1,T2P0 CMH0 0 1 CM0 T2ER CML1 =? zewn. zerowanie licznika RT2 CMH1 CM1 CML2 =? CMH2 CM2
Ogólna budowa CCU w 515, 515A Siemensa MCS51 - układ CCU Siemens 28/29
Budowa timera 2 w mikrokontrolerach z CCU Siemensa MCS51 - układ CCU Siemens 29/29