Temat referata: „Techniki mikroprocesowe z procesorem ATMEGA16 i systemem TIMERY” Ilya Kashpir IMED 4.2/4 26.05.2024 Wprowadzenie Techniki mikroprocesowe stanowią fundament współczesnej elektroniki, umożliwiając realizację złożonych zadań w różnorodnych aplikacjach, od prostych urządzeń domowych po zaawansowane systemy przemysłowe. Mikroprocesory, takie jak ATMEGA16 firmy Atmel, są powszechnie wykorzystywane dzięki swojej wszechstronności, niskiej cenie i bogatemu zestawowi funkcji. Kluczowym elementem w tych mikroprocesorach jest zaawansowany system timerów, który odgrywa fundamentalną rolę w precyzyjnym zarządzaniu czasem i zdarzeniami. Architektura Procesora ATMEGA16 ATMEGA16 to 8-bitowy mikrokontroler oparty na architekturze RISC (Reduced Instruction Set Computing), oferujący wysoką wydajność oraz niski pobór mocy. Jego podstawowe parametry techniczne obejmują: - 16KB pamięci Flash do przechowywania programu - 1KB pamięci SRAM do przechowywania danych operacyjnych - 512B pamięci EEPROM do trwałego przechowywania danych - 32 rejestry robocze, które umożliwiają efektywne przetwarzanie danych - Wbudowane przetworniki analogowo-cyfrowe (A/C), umożliwiające konwersję sygnałów analogowych na cyfrowe - Wiele trybów oszczędzania energii, które pozwalają na zminimalizowanie zużycia energii w trybach uśpienia - Interfejsy komunikacyjne takie jak SPI, I2C, USART, umożliwiające komunikację z innymi urządzeniami i mikrokontrolerami System TIMERY System timerów w ATMEGA16 jest rozbudowanym mechanizmem pozwalającym na realizację różnorodnych funkcji związanych z odmierzaniem czasu, takich jak generowanie precyzyjnych sygnałów PWM (Pulse Width Modulation), odmierzanie czasu w aplikacjach czasu rzeczywistego, liczenie zdarzeń zewnętrznych oraz realizacja funkcji watchdog timer. Timer to fundamentalny element wielu aplikacji, od prostych migaczy LED po skomplikowane systemy sterowania w czasie rzeczywistym. Timery w ATMEGA16 ATMEGA16 zawiera trzy główne timery: 1. Timer/Counter0 (8-bitowy) - Podstawowy timer używany do generowania przerwań z określoną częstotliwością. - Może być używany do generowania sygnałów PWM, sterując jasnością diod LED czy prędkością silników. - Umożliwia odmierzanie krótkich okresów czasu, co jest przydatne w aplikacjach wymagających wysokiej częstotliwości przerwań. 2. 16-bitowy) - Bardziej zaawansowany timer pozwalający na precyzyjne odmierzanie czasu. - Obsługuje tryb PWM z większą precyzją niż Timer/Counter0, co jest istotne w aplikacjach wymagających dokładniejszej kontroli sygnału. - Może pracować w trybie wejściowym, gdzie licznik zwiększa się przy każdym zewnętrznym zdarzeniu, co jest użyteczne w aplikacjach pomiarowych. 3. Timer/Counter2 (8-bitowy) - Podobny do Timer/Counter0, ale z dodatkowymi trybami pracy, takimi jak asynchroniczny tryb z zegarem zewnętrznym. - Idealny do aplikacji wymagających precyzyjnego odmierzania czasu niezależnie od głównego zegara systemu, co może być używane w systemach podtrzymania czasu rzeczywistego. Programowanie Timerów Programowanie timerów w ATMEGA16 polega na ustawieniu odpowiednich rejestrów kontrolnych. Najważniejsze rejestry to: - TCCR0, TCCR1, TCCR2 (Timer/Counter Control Registers): Ustawiają tryb pracy timera, wybierają źródło zegara oraz konfigurują wyjścia PWM. - TCNT0, TCNT1, TCNT2 (Timer/Counter Registers): Przechowują aktualną wartość licznika, co pozwala na monitorowanie czasu lub zdarzeń. -OCR0, OCR1A/B, OCR2 (Output Compare Registers): Służą do generowania sygnałów PWM poprzez określenie punktu, w którym timer generuje przerwanie lub zmienia stan wyjścia. - TIMSK (Timer Interrupt Mask Register): Umożliwia włączanie przerwań timerów, pozwalając na reakcję mikroprocesora na określone zdarzenia czasowe. - TIFR (Timer Interrupt Flag Register): Sygnalizuje wystąpienie przerwań, co jest kluczowe dla obsługi zdarzeń w kodzie programu. Przykłady Aplikacji 1. Generowanie PWM Timery mogą być używane do sterowania silnikami, jasnością diod LED oraz w aplikacjach audio. Poprzez ustawienie odpowiednich wartości w rejestrach OCR, można kontrolować wypełnienie sygnału PWM, co pozwala na precyzyjne sterowanie urządzeniami. Na przykład, sterowanie silnikiem DC z regulacją prędkości może być zrealizowane poprzez zmiany wypełnienia sygnału PWM. 2. Odmierzanie Czasu Timer może być skonfigurowany do generowania przerwań w regularnych odstępach czasu. Na przykład, ustawienie timera do generowania przerwania co 1 ms pozwala na realizację funkcji zegara systemowego, co jest kluczowe w aplikacjach czasu rzeczywistego. Taka funkcjonalność jest niezbędna w systemach wbudowanych, gdzie precyzyjne odmierzanie czasu jest kluczowe dla synchronizacji działań. 3. Watchdog Timer Watchdog timer to specjalny timer, który resetuje mikroprocesor w przypadku, gdy program przestaje działać poprawnie. Jest to niezbędne do zapobiegania zacięciom systemu i zapewnienia niezawodności w aplikacjach krytycznych. Watchdog timer może być skonfigurowany tak, aby regularnie resetować mikroprocesor, chyba że program wykona określone działanie, co zapewnia, że system nie zawiesi się. Wnioski System timerów w procesorze ATMEGA16 jest niezwykle wszechstronny i pozwala na realizację wielu zaawansowanych funkcji mikroprocesorowych. Znajomość jego działania i umiejętność programowania są kluczowe dla każdego inżyniera zajmującego się elektroniką i systemami wbudowanymi. Dzięki timerom, możliwe jest precyzyjne sterowanie czasem, generowanie sygnałów PWM oraz realizacja funkcji krytycznych dla stabilności systemu. Timery są fundamentem wielu aplikacji, a ich zrozumienie otwiera drzwi do realizacji zaawansowanych projektów mikroprocesorowych. Dodatkowe zasoby - Dokumentacja techniczna ATMEGA16: https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-8154-8-bit-AVRATmega16A_Datasheet.pdf -Kurs programowania AVR: Timery: https://www.electronics-tutorial.net/microcontrollers/avrmicrocontrollers/atmega-timers - Przykłady kodu w C dla ATMEGA16: https://www.electronicwings.com/avratmega/atmega16-timer Bibliografia 1.Dokumentacja techniczna ATMEGA16 - Atmel Corporation 2. Mikrokontrolery AVR w praktyce - Tomasz Francuz 3. Podstawy systemów wbudowanych - Janusz Szajna