O microcontrolador ATmega328 da Atmel é utilizado nos Arduinos mais recentes. É um microcontrolador de 8 bits, com arquitetura Harvard modificada. Neste post e nos próximos veremos algumas de suas características.
Um Pouco Sobre a Família
O ATmega328 pertence à família AVR da Atmel. Todos os modelos desta família compartilham uma arquitetura e conjunto de instruções básicas, particularmente os grupos tinyAVR (microcontroladores ATtiny), megAVR (os ATmega) e XMEGA (os Atxmega).
Os primeiros modelos de Arduino usavam o ATmega8 (com 8K de memória Flash), que posteriormente foi substituído pelo ATMega168 (com 16K de Flash e maiores recursos de entrada e saída) e finalmente pelo ATMega328 (com 32K de Flash). A versão DIP destes três modelos compartilham a mesma pinagem (porém o ATMega168 e ATMega328 permitem alguns usos diferentes dos pinos). O Arduino Mega 2560 usa o ATMega2560 com 256K de Flash e uma capacidade muito maior de entrada e saída.
O Diagrama de Blocos
A figura abaixo, extraída do datasheet, mostra os principais blocos do microcontrolador (clique para ampliar).
Reparar as ligações separadas entre a CPU e as memórias Flash e SRam. O uso de vias de dados separadas para programa e dados é uma característica da arquitetura Harvard. Na família AVR as duas vias tem largura de 8 bits e a memória Flash pode ser usada para armazenar dados constantes (daí ser uma arquitetura Harvard modificada). Entretanto, somente instruções armazenadas na Flash podem ser executadas (não é possível executar código que esteja na SRam).
Como outros microcontroladores AVR, o ATMega328 possui ainda uma memória do tipo EEProm, porém esta memória está ligada na via de conexão aos periféricos e portanto não é acessada pelas instruções normais de acesso a memória.
Além da EEProm podem ser vistos as três portas de E/S digital (PORTs B, C e D), os três timers (TCx, dois de 8 bits e um de 16 bits), o conversor A/D, o comparador analógico e as interfaces seriais SPI, TWI (compatível com I2C) e USART. Na terceira parte veremos um pouco mais sobre estes periféricos.
No próximo post vamos examinar a CPU AVR.
Nenhum comentário:
Postar um comentário