Zachodniopomorski Uniwersye Technologiczny WYDZIAŁ ELEKTRYCZNY Kaedra Inżynierii Sysemów, Sygnałów i Elekroniki LABORATORIUM TECHNIKA MIKROPROCESOROWA Obsługa wyjść PWM w mikrokonrolerach Amega16-32 Opracował: mgr inż. Andrzej Biedka 1
Serowanie z wykorzysaniem modulacji szerokości impulsu - PWM (ang. Pulse-widh modulaion) jes obecnie szeroko sosowaną meodą w wielu dziedzinach echniki regulacji. Elemenem regulacyjnym może być klucz pracujący dwusanowo (załącz/wyłącz), dzięki czemu sray w nim są nieznaczne bądź pomijalne. Warunkiem poprawnej regulacji jes zachowanie właściwej relacji okresu kluczowania do sałej czasowej obieku regulowanego. k w = i T i T Rys. 9-1. Przebieg czasowy modulacji PWM Współczesne mikrokonrolery wyposażane są w funkcje sprzęowych generaorów sygnału PWM. Układy e pracują w oparciu o imery mikrokonrolera. Podsawowa konfiguracja przedsawiona jes na rysunku 9-2 i doyczy imerów 8-biowych mikrokonrolera rodziny ATmega, czyli Timera/Licznika0 i Timera/Licznika2. Impulsy zegarowe clk Tn są zliczane w głównym liczniku imera (TCNTn), kóry zlicza je w całym zakresie pojemności dla imera 8-biowego jes o 256 impulsów. San licznika TCNTn jes porównywany z zawarością pomocniczego rejesru OCRn. W chwili zrównania zawarości rejesrów nasępuje wygenerowanie sygnału zgodności przekazywanego do bloku kszałowania sygnału wyjściowego dosępnego na wyprowadzeniu OCn. magisrala danych OCRn Oupu Compare Regiser WGMn COMn fclk Preskaler = WFGn Waveform Generaor OCn pin clk Tn TCNTn Timer Couner Regiser magisrala danych Rys. 9-2. Uproszczony schema blokowy generaora PWM w imerach 0 i 1 mikrokonrolera ATmega 16/32 2
Przebiegi czasowe obrazujące pracę generaora PWM przedsawione są na rysunku 9-3. TCNTn TOP TOP OCRn 1 BOTTOM OCRn 2 OCn (pin) PWM 1 PWM 2 TOP maksymalna zawarość rejesru TCNTn BOTTOM minimalna zawarość rejesru TCNTn Rys. 9-3. Zależność współczynnika wypełnienia PWM od zawarości rejesru OCRn w rybie Fas PWM Generaory PWM mogą pracować w różnych rybach, kóre wybierane są usawieniami rejesrów konfiguracyjnych TCCRn. Najprosszym rybem pracy generaora jes ryb szybki PWM. TCCRn (n numer imera: 0 lub 2) FOC WGMn0 COMn1 COMn0 WGMn1 CSn2 CSn1 CSn0 FOC - wymuszanie sanu wyjścia OCn WGMn1, WGMn0 - wybór rybu pracy generaora PWM. Parz abela 9-1 COMn1, COMn0 - wybór rybu pracy wyjścia OCn. Parz abela 9-2 CSn2 CSn0 - usawienie podziału preskalera. Parz abela 9-3 i 9-4 Tabela 9-1 WGMn1 WGMn0 Opis rybu pracy Warość TOP 0 0 Normalny (Normal) 0xFF 0 1 Symeryczny PWM (PWM, Phase Correc) 0xFF 1 0 CTC OCRn 1 1 Szybki PWM (Fas PWM) 0xFF 3
Tabela 9-2 Tryby pracy wyjścia OCn dla rybu Fas PWM COMn1 COMn0 Opis rybu pracy 0 0 Pin poru 0 1 Niewykorzysany 1 0 1 1 Zeruj san OCn przy zgodności OCRn i TCNTn usaw san OCn przy przepełnieniu TCNTn (BOTTOM) PWM prosy Usaw san OCn przy zgodności OCRn i TCNTn zeruj san OCn przy przepełnieniu TCNTn (BOTTOM) PWM zanegowany Wyboru odpowiedniej warości okresu przebiegu PWM dokonuje się biami CSn2 CSn0 usalającymi sopień podziału preskalera danego imera. Tabela 9-3 CS02 CS01 CS00 Współczynnik podziału preskalera 0 0 0 Brak akowania, imer zarzymany 0 0 1 fclk 0 1 0 fclk/8 0 1 1 fclk/64 1 0 0 fclk/256 1 0 1 fclk/1024 1 1 0 Licznik, zegar T0, zbocze opadające 1 1 1 Licznik, zegar T0, zbocze narasające Tabela 9-4 CS22 CS21 CS20 Współczynnik podziału preskalera 0 0 0 Brak akowania, imer zarzymany 0 0 1 fclk 0 1 0 fclk/8 0 1 1 fclk/32 1 0 0 fclk/64 1 0 1 fclk/128 1 1 0 fclk/256 1 1 1 fclk/1024 ZADANIA: 1. Dla sygnału akującego mikrokonroler równego 16 MHz wyznaczyć zakres okresów sygnału PWM dla imerów 0 i 2. 4
Przebieg ćwiczenia: Uworzyć algorym, napisać program sofwarowego generaora PWM serującego jasnością czerech spośród ośmiu diod LED. Pozosałe czery diody mają być sale załączone. Należy wykorzysać przerwania imerów. Uworzyć algorym i napisać program generaora PWM z wykorzysaniem wyjścia OCn mikrokonrolera. Program powinien cyklicznie zmieniać jasność jednej diody LED. Zmodyfikować powyższy program wprowadzając programowe serowanie czerech sąsiednich diod. Zmodyfikować program z pk. 2 wprowadzając serowanie zespołu diod LED w funkcji obsługi przerwania od wejścia INT0 lub INT1. Sygnałem wyzwalającym przerwania zewnęrzne ma być wyjście OCn. Lieraura: [1] Francuz T. Język C dla mikrokonrolerów AVR. Od podsaw do zaawansowanych aplikacji. Helion, Gliwice, 2011 [2] Baranowski R. Mikrokonrolery AVR ATmega w prakyce. BTC, Warszawa, 2005 [3] Kardaś M. Mikrokonrolery AVR. Język C. Podsawy programowania. Anel, Szczecin, 2011. [4] Wikowski A. Mikrokonrolery AVR. Programowanie w języku C. Przykłady zasosowań, PKJS, Kaowice 2006 [5] Kara kaalogowa mikrokonrolera Amega32 firmy ATMEL. 5