1 POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH [email protected] www.zum.put.poznan.pl
2 ZEGAR SYSTEMOWY Do poprawne pracy CPU potrzebuje sygnału prostokątnego taktującego jego pracę Układ taktujący CPU oraz inne peryferia MCU nazywamy „Zegarem Systemowym” bądź „Zegarem Głównym”
3
4 Wybór sygnału dla zegara systemowego odbywa się za pomocą ustawienia tzw. fuse bitów przy pomocy programatora z poziomu IDE (niezależnie od programu) Błędna konfiguracja fuse bitów może uniemożliwić dalszą komunikację z MCU.
5
6
7
8 External RC External Clock Crystal Oscilator Low Frequency Crystal Oscilator Calibrated Internal RC Oscilator Podstawowe parametry: stabilność, częstotliwość, cena
9 Podłączenie Internal RC Oscilator
10 LICZNIKI
11 Układy sprzętowe wyposażone w wewnętrzny rejestr zmieniający wartość o 1 przy odpowiedniej zmianie stanu wejscia sterujacego. Licznik moze słuzyc do: – cyklicznego zgłaszania przerwania, – generowania różnego rodzaju przebiegów sygnałów zewnętrznych – zliczania zdarzeń (sygnałów) zewnętrznych, – odmierzania czasu miedzy zdarzeniami Liczniki w mcu mogą być jedno lub wielo rejestrowe (8, 16 bit itd…)
12 UPROSZCZONY SCHEMAT LICZNIKA REJESTR LICZNIKA PRESCALER ZEGAR SYSTEMOWY GPIO MULTIPLEKSER REJESTRY STERUJĄCE (KIERUNEK, TOP, BOTTOM, ZERUJ, TRYB, STAN) KONTROLER ZDARZENIE TRYB COUNTER TRYB TIMER GPIO TRYB PWM TRYB Z PRZERWANIEM
13
14 SZCZEGÓŁOWY SCHEMAT LICZNIKA
15 PRESCALER Rolą prescalera jest podział częstotliwości sygnału
16 PRESCALER Rejestr: TCCRn ( /A/B) Np..: TCCR0, TCCR1A itd..
17 Rejestry konfiguracyjny licznika 8 bit
18 Rejestry konfiguracyjny licznika 16 bit
19
20 Podstawowe tryby pracy timera/licznika Normal: zlicza w górę od BOTTOM do TOP (2n-1) fOC = fCLK/ (N (2n-BOTTOM)) fOC = fCLK/ (N (2n-RELOAD) CTC: Clear Timer on Compare
21 Rejestry konfiguracyjny licznika 16 bit
22 Rejestr licznika 8 i 16 bit
23 Rejestr porównawczy 8 i 16 bit
24 Rejestr przerwań licznika 8 i 16 bit Extended Timer/Counter Interrupt Mask Register Timer/Counter Interrupt Mask Register
25 Timer/Counter Interrupt Flag Register
26 Obliczenia fOC = fCLK / (N (2n-RELOAD) fOC = fCLK = N = (1, 8, 64, 256, 1024) R =
27 Interpretacja wyników obliczeń 1) Jeśli dla danego N wartość przeładowania R jest: Ujemna? Większa od 2n-1 ? Niecałkowita ? 2) Jeśli dla danych wejściowych istnieje wiele wartość przeładowania spełniających warunek: R C; 0 < R < 2n-1 ? 3) Jeśli dla żadnego N nie ma rozwiązania spełniającego kryteria pkt 1) ale istnieją takie N, że R jest niecałkowite?
28 Przerwanie od przepełnienia licznika #include #define WARTOSC_PRZELADOWANIA 49911 ISR(TIMER3_OVF_vect) { TCNT3 = WARTOSC_PRZELADOWANIA; PORTC ^= (1
29 PWM
30 PWM (ang. Pulse-Width Modulation) – metoda regulacji sygnału prądowego lub napięciowego, o stałej amplitudzie i częstotliwości, polegająca na zmianie wypełnienia sygnału. 5 V 0 V 5 V 0 V 5 V 0 V 15 % 50 % 75 %
31 WARTOŚĆ ŚREDNIA
32 PWM może być wykorzystywany do generowania sygnałów zmiennych
33 Za pomocą PWM można quasi płynnie sterować mocą odbiornika. Warunkiem koniecznym jest aby odbiornik posiadał zdolność do uśredniania mocy czynnej. Częstotliwość sygnału sterującego PWM musi być dobrana odpowiednio do stałej czasowej reakcji odbiornika na sygnał. Sygnał PWM generuje wysokie zakłócenia EMC.
34
35 OC3A: -timer3 -kanał A OC3B: -timer3 -kanał B Na powyższym przykładzie oba wyjścia PWM pracują z tym samym timer’em, a więc będą miały tę samą częstotliwość przebiegu i tryb pracy. Mogą się różnić jedynie wypełnieniem sygnału
36 Wypełnienie PWM duty = (OCnX—BOTTOM)/(TOP-BOTTOM) [%] duty = OCnX/TOP [%] (dla BOTTOM=0)
37 Tryby PWM
38 Tryb fast PWM
39 Tryb z korekcją fazy
40 Różnice między fast PWM, a PWM z korekcją fazy? Częstotliwość? Rozdzielczość? Inne?
41 #include int main(void) { DDRB |= (1
42 #include unsigned long int t=0; int main(void) { DDRB |= (1
43 WATCHDOG
44 Watchdog (licznik nadzorczy) Watchdog jest instalowany w systemach, które działają bez obsługi człowieka. Są standardem w systemach wbudowanych. W większości współczesnych mikrokontrolerów watchdog jest jednym z elementów ich architektury i nie trzeba stosować dodatkowego sprzętu. Watchdog jest elementem sprzętowym działającym niezależnie od oprogramowania. Podstawowym zadaniem układu watchdog jest detekcja „zawieszenie się” programu. Podstawowym działaniem układu watchdog jest wymuszenie resetu programu w sytuacji niepożądanej.
45 Licznik nadzorcy
46 ATmega 128 - watchdog Taktowanie odbywa się poprzez niezależny wbudowany oscylator o częstotliwości pracy ok. 1MHz. Konfigurowanie watchdog’a odbywa się przez rejestr WDTCR.
47 ATmega 128 - watchdog WDTOE - Bit odblokowania wyłączania watchdog’a. Ustawienie tego bitu na 1, tuż przed wpisaniem do WDE wartości 0, pozwala wyłączyć watchdog'a. WDE - Bit włączania watchdog’a. Wpisanie logicznej jedynki do bitu WDE powoduje włączenie watchdog’a, natomiast wpisanie 0 go wyłącza. Aby wyłączyć watchdoga, wcześniej bit WDTOE musi być ustawiony na 1, albo oba te bity trzeba zapisać równocześnie. WDP2 - 0 - Bity preskalera licznika watchdog’a. Za pomocą tych bitów dobierany jest czas, jaki upływa od zerowania watchdog’a do wygenerowania przez niego impulsu resetującego. Czas można dobierać w zakresie od ok. 16ms (stan 000) do ok. 2,2s (stan 111).
48 Pytania? www.zum.put.poznan.pl
49 Dziękuję (lista)