ATmega328
ATmega328 je jednočipový mikrořadič z rodiny megaAVR navržený firmou Atmel.


Specifikace
editovatAtmel je 8bitový mikrořadič založený na architektuře AVR RISC, který integruje 32 kiB ISP flash paměti s podporou read-while-write, 1 kB EEPROM, 2 kB SRAM, 23 univerzálních vstupně-výstupních vývodů, 32 univerzálních registrů, tři flexibilní čítače/časovače s porovnávacími režimy, vnitřní a vnější přerušení, programovatelný sériový obvod USART, bajtově orientované 2vodičové sériové rozhraní, sériový port SPI, 6kanálový 10bitový A/D převodník (ve verzích TQFP a QFN/MLF 8kanálový), programovatelný watchdog timer s interním oscilátorem, a pět programovatelných režimů pro úsporu energie. Napájecí napětí může být v rozsahu 1,8 až 5,5 voltů. Výkon procesoru odpovídá 1 MIPS (ze anglického Millions Instructions Per Second) při frekvenci 1MHz.[1]
Klíčové parametry
editovatParameter | Value |
---|---|
Typ CPU | 8-bit AVR |
Výkon | 20 MIPS při 20 MHz[2] |
Paměť flash | 32 kB |
SRAM | 2 kB |
EEPROM | 1 kB |
Počet vývodů | 28 u verze PDIP, 32 u verze TQFP; QFN/MLF má variantu s 28 i 32 vývody |
Maximální frekvence |
20 MHz |
Počet touch channels | 16 |
Hardware QTouch Acquisition | Ne |
Maximální počet vstupně-výstupních vývodů | 23 |
Počet externích přerušení | 2 |
Rozhraní USB | Ne |
Náhrady
editovatMožnou náhradou za ATmega328 je „picoPower“ ATmega328P. Úplný seznam ostatních členů řady megaAVR lze nalézt na webových stránkách Atmel.[3]
Použití
editovatOd roku 2013 se ATmega328 běžně používá v mnoha projektech a autonomních systémech, které vyžadují jednoduché, úsporné a levné mikrořadiče[zdroj?]. K nejrozšířenějším využitím obvodu patří zařízení jednoúčelové průmyslové automatizace, jednoúčelová zařízení (battery management, meteorologické stanice, měřicí zařízení) apod.
Spolehlivost
editovatTesty spolehlivosti ukazují, že očekávaná míra selhání uchovávání dat je mnohem menší než 1 PPM za více než 20 let při teplotě 85 °C nebo 100 let při 25 °C.[4]
Programování
editovatProgramování signál | Jméno pinu | I/O | Funkce |
---|---|---|---|
RDY/BSY | PD1 | O | Vysoká úroveň znamená, že MCU je připraveno pro nový příkaz, jinak je zaneprázdněno. |
OE | PD2 | I | Output Enable (Aktivní při nízké úrovni) |
WR | PD3 | I | Write Impuls (Aktivní při nízké úrovni) |
BS1 | PD4 | I | Výběr bajtu 1 ("0" = nižší bajt, "1" = vyšší bajt) |
XA0 | PD5 | I | XTAL Action bit 0 |
XA1 | PD6 | I | XTAL Action bit 1 |
PAGEL | PD7 | I | Zápis do paměti programu nebo dat (flash a EEPROM) |
PS2 | PC2 | I | Výběr bajtu 2 ("0" = nižší bajt, "1" = vyšší bajt) |
DATA | PC[1:0]:PB[5:0] | I/O | Obousměrná datová sběrnice (je-li Output Enable na nízké úrovni, pak výstup) |
Vstup do programovacího módu se děje nastavením vývodů PAGEL (PD7), XA1 (PD6), XA0 (PD5), BS1 (PD4) na napětí 0 V[2] s následným nastavením RESET na 0 V a vypnutím napájení VCC. Pak je na VCC přivedeno napájení o napětí 4,5 - 5,5 V a po prodlevě 60 µs se vstup RESET nastaví na 11,5 - 12,5 V, přičemž tento stav musí trvat nejméně 310 µs.[2] Pak se nastaví XA1:XA0:BS1:DAT = 100 1000 0000 a pošle se impuls o délce trvání alespoň 150 ns na XTAL1 a impuls na nulu na WR. Tím se zahájí výmaz paměti obvodu, jehož ukončení signalizuje obvod uvedením RDY/BSY (PD1) na vysokou úroveň. Nastavit XA1:XA0:BS1:DAT = 100 0001 0000, přivést impuls na XTAL1, a impuls na WR na nulu je příkaz pro zápis do flash paměti.[2] A tak dále.
Symbol | Kolíky | I/O | Popis |
---|---|---|---|
MOSI | PB3 | I | Vstup sériových dat |
MISO | PB4 | O | Výstup sériových dat |
SCK | PB5 | I | Hodiny pro sériová data |
Sériová data do MCU jsou taktována vzestupnou hranou, data z MCU jsou taktována sestupnou hranou. Při přivedení napájecího napětí na VCC jsou vstupy RESET a SCK nastaveny na nulu. Po prodlevě alespoň 20 ms je třeba poslat sériové instrukce „povolit programování“ 0xAC, 0x53, 0x00, 0x00 na vývod MOSI. MCU opakuje druhý byte (0x53).[2]
Reference
editovatV tomto článku byl použit překlad textu z článku ATmega328 na anglické Wikipedii.
- ↑ ATmega328P [online]. [cit. 2016-07-14]. Dostupné online.
- ↑ a b c d e f g Atmel 8-bit AVR Microcontrollers ATmega328/P Datasheet Complete [online]. [cit. 2016-07-14]. Dostupné online.
- ↑ megaAVR Microcontrollers [online]. Atmel [cit. 2016-07-14]. Dostupné v archivu pořízeném dne 2014-02-14.
- ↑ Atmel 8-bit AVR Microcontrollers ATmega328/P Datasheet Summary [online]. June 2016 [cit. 2016-07-14]. Dostupné online.
Externí odkazy
editovat- Obrázky, zvuky či videa k tématu ATmega328 na Wikimedia Commons
- Dostupné online.