Uploaded by ilyakashpir2005

Techniki mikroprocesowe z procesorem ATMEGA16 i systemem TIMERY

advertisement
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
Download