Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałDagmara Lisowska Został zmieniony 8 lat temu
1
POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH GRZEGORZ.PITTNER@PUT.POZNAN.PL 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”
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.
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
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
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<<0); //zaneguj stan na pinie PC0 } int main(void) { DDRC=0b11111111; DDRD=0b00000000; TCCR3B &=~ (1<<CS30); //prescaler N=256 TCCR3B &=~ (1<<CS31); //prescaler N=256 TCCR3B |= (1<<CS32); //prescaler N=256 ETIMSK|=(1<<TOIE3); //zezwolenei lokalne TCNT3 = WARTOSC_PRZELADOWANIA; sei(); //zezwolenie globalne while(1) { if(bit_is_clear(PIND, 7)) { PORTC |= (1<<1);} else{ PORTC &= ~(1<<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.
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 << 5) | (1 << 6);//odpowiednie piny jako WY TCCR1A |= (1 << COM1A1)|(1 << COM1B1);//clear OC on compare match: kanał A i B TCCR1A |= (1 << WGM10)|(1 << WGM12);//tryb fast PWM 8 bit TCCR1B |= (1 << CS12);//prescaler N=256 OCR1A = 64; OCR1B = 128; while(1) { }
42
#include unsigned long int t=0; int main(void) { DDRB |= (1 << 5) | (1 << 6); TCCR1A |= (1 << COM1A1)|(1 << COM1B1)|(1 << WGM10)|(1 << WGM12); TCCR1B |= (1 << CS12); while(1) { t++; OCR1A = 128+128*sin(2*3.14* t /1000 ); OCR1B = 128+128*sin(2*3.14* t /1000 + 3.14); delay_ms(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)
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.