Streszczenie Wprowadzenie do mikrokontrolerów AVR i ATmega
Wprowadzenie do mikrokontrolerów AVR i ATmega: Kompletny Przewodnik
Wstęp
AVR to 8-bitowe mikrokontrolery jednoukładowe, pierwotnie firmy Atmel (obecnie Microchip). Seria ATmega jest wśród nich najpopularniejsza i wykorzystywana jest w projektach, edukacji oraz na platformach hobbystycznych, takich jak Arduino UNO (ATmega328P). Niniejszy materiał podsumowuje architekturę, peryferia, programowanie i praktyczne zastosowanie ATmega do samodzielnej nauki.
Definicja: AVR to 8-bitowe mikrokontrolery RISC z architekturą Harwardzką; ATmega to konkretna seria tych MCU, odpowiednia zarówno do nauki, jak i praktycznych projektów.
1. Podstawowe cechy AVR / ATmega
- Architektura RISC: proste instrukcje, większość wykonywana w jednym cyklu zegara
- Architektura Harvardzka: oddzielny dostęp do pamięci programu i pamięci danych
- Niskie zużycie energii, łatwe programowanie i bogata społeczność
Czy wiesz, że Arduino UNO wykorzystuje ATmega328P jako swój główny mikrokontroler (MCU)?
2. Architektura i bloki mikrokontrolera
Główne bloki
- CPU: 8-bitowy rdzeń
- Flash: pamięć programu
- SRAM: tymczasowe dane i stos
- EEPROM: trwałe przechowywanie ustawień
- Porty GPIO: PORTA, PORTB, PORTC, …
- Peryferia: timery/liczniki, ADC, UART, SPI, I²C (TWI), przerwania
Definicja: GPIO to uniwersalne piny wejścia/wyjścia, które można skonfigurować jako wejście lub wyjście.
Jak pomaga architektura harwardzka
- Oddzielne ścieżki dla instrukcji i danych przyspieszają dostęp i umożliwiają jednoczesny odczyt instrukcji i danych.
3. Struktura pamięci (tabela porównawcza)
| Typ pamięci | Przeznaczenie | Charakterystyka |
|---|---|---|
| Flash | Program | Niezapisywalna w trakcie działania (zapis tylko przez programator/bootloader), większa pojemność |
| SRAM | Zmienne | Szybka, ulotna, używana do przechowywania zmiennych ogólnego przeznaczenia i stosu |
| EEPROM | Ustawienia | Trwałe przechowywanie danych nawet po wyłączeniu zasilania, wolniejszy zapis |
Definicja: EEPROM to pamięć odpowiednia do przechowywania konfiguracji, która musi zostać zachowana nawet po odłączeniu zasilania.
4. Porty wejścia/wyjścia i przerwania
- Porty są oznaczane nazwami (PORTA, PORTB, …). Każdy pin można skonfigurować jako wejście lub wyjście.
- Możliwość aktywacji wewnętrznego rezystora podciągającego dla wejść.
- Niektóre piny mogą generować zewnętrzne przerwania w celu natychmiastowej reakcji na zdarzenie.
Praktyczny przykład: konfiguracja diody LED jako wyjścia i przycisku jako wejścia z rezystorem podciągającym
- Konfiguracja pinu jako wyjścia dla diody LED
- Konfiguracja pinu jako wejścia i aktywacja rezystora podciągającego dla przycisku
- Po naciśnięciu przycisku odczytanie stanu i zmiana stanu diody LED
5. Timery, liczniki i PWM
- ATmega zazwyczaj zawiera timery 8-bitowe i 16-bitowe.
- Służą do pomiaru czasu, generowania zdarzeń czasowych oraz sygnałów PWM.
- PWM (modulacja szerokości impulsu) jest wykorzystywana do sterowania silnikami oraz jasnością diod LED.
Praktyczne zastosowanie: sterowanie prędkością silnika prądu stałego za pomocą sygnału PWM na pinie podłączonym do tranzystora mocy.
6. Przetwornik ADC
- Zazwyczaj 10-bitowy przetwornik ADC z wieloma kanałami wejściowymi
- Konwertuje napięcie analogowe na wartość cyfrową
Przykład: pomiar napięcia z potencjometru na kanale przetwornika ADC i następnie regulacja jasności diody LED zgodnie z zmierzoną wartością.
7. Interfejsy komunikacyjne
- UART: komunikacja szeregowa do debugowania oraz komunikacji z komputerem PC
- SPI: szybkie łącze do podłączania czujników, pamięci i urządzeń peryferyjnych
- I²C (TWI): magistrala dla wielu urządzeń ze wspólnymi liniami danych i zegara
Praktyczny przykład: podłączenie czujnika temperatury przez I²C oraz zapis wartości do EEPROM.
Masz już konto? Zaloguj się
ATmega Przegląd
Klíčové pojmy: AVR to 8-bitowe mikrokontrolery RISC z architekturą Harvarda, Seria ATmega jest szeroko stosowana (np. Arduino UNO z ATmega328P), Pamięć Flash przechowuje program, SRAM służy do zmiennych roboczych, a EEPROM do trwałych ustawień, Piny GPIO można konfigurować jako wejście lub wyjście oraz używać wewnętrznych rezystorów pull-up, 8-bitowe i 16-bitowe timery generują sygnał PWM do sterowania silnikami i jasnością diod LED, ADC to zazwyczaj 10-bitowy przetwornik z wieloma kanałami do odczytu sygnałów z czujników analogowych, Komunikacja: UART, SPI, I²C (TWI) do podłączania peryferiów, Programowanie w C/C++ lub Assemblerze; wgrywanie przez ISP lub bootloader, Po resecie program startuje z adresu resetu, Zalety: niska cena i szeroka społeczność; Wady: ograniczona wydajność i pamięć