ATmega328 – Wikipédia, a enciclopédia livre
![]() | As referências deste artigo necessitam de formatação. (Dezembro de 2023) |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/0/0c/ATMEGA328P-PU.jpg/250px-ATMEGA328P-PU.jpg)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/31/ATMEL_MEGA328P_AU_1328.jpg/220px-ATMEL_MEGA328P_AU_1328.jpg)
O ATmega328 é um microcontrolador tipo chip único criado pela Atmel na família megaAVR.
Especificações
[editar | editar código-fonte]O Atmel de 8 bits AVR é baseado em RISC, o microcontrolador combina 32 kB ISP flash de memória de leitura-enquanto-grava, 1 kB de EEPROM, 2 kB de SRAM, 23 linhas de I/O de propósito geral, 32 registradores para diversos propósitos, 3 timer/counters flexíveis com comparador de modos, interrupções internas e externas, serial programável USART, 1 interface I²C SPI porta serial, conversor A/D de 6-canais e 10-bits (8-canais nos encapsulamentos TQFP e QFN/MLF), temporizador do watchdog interno programável com oscilador, e 5 modos de economia de energia selecionáveis por software. O dispositivo opera entre 1,8 e 5,5 volts. O dispositivo alcança a taxa de transferência aproximando-se de 1 MIPS por MHz.[1]
Parâmetros-chaves
[editar | editar código-fonte]Parâmetro | Valor |
---|---|
Tipo de CPU | 8-bit AVR |
Desempenho | 20 MIPS às 20 MHz |
Memória Flash | 32 kB |
SRAM | 2 kB |
EEPROM | 1 kB |
Contagem de pinos | 28 pinos PDIP, MLF, 32 pinos TQFP, MLF |
Frequência máxima | 20 MHz |
Número de canais de toque | 16 |
Hardware de Aquisição QTouch | Nenhum |
Máximo de pinos de I/O | 23 |
Interrupções externas | 2 |
InterfaceUSB | Nenhum |
Velocidade USB | – |
Série de alternativas
[editar | editar código-fonte]Uma alternativa comum para o ATmega328 é o "picoPower" ATmega328P. Uma lista abrangente de todos os outros membros da série megaAVR pode ser encontrado no site da Atmel.[2]
Aplicações
[editar | editar código-fonte]A partir de 2013 o ATmega328 é comumente usado em muitos projetos e sistemas autónomos, onde um se precisa de um micro-controlador simples, de baixa potência e baixo custo[carece de fontes ] . Talvez a implementação mais comum do que este chip é no popular Arduino, plataforma de desenvolvimento, nomeadamente nos modelos Arduino Uno e o Arduino Nano.
Programação
[editar | editar código-fonte]![](http://upload.wikimedia.org/wikipedia/commons/thumb/f/f9/ATmega328P_28-PDIP.svg/220px-ATmega328P_28-PDIP.svg.png)
Confiabilidade de qualificação mostra que a retenção de dados projetada tem a taxa de falha muito menor do que 1 PPM para mais de 20 anos a 85 °C ou 100 anos a 25 °C.[3]
Sinal de programação | Nome Do Pino | I/O | Função |
---|---|---|---|
RDY/BSY | PD1 | O | Alto significa que o MCU está pronto para um novo comando, caso contrário ocupado. |
OE | PD2 | I | Habilitação de saída (Ativo em baixo) |
WR | PD3 | I | Pulso de Escrever (Ativo em baixo) |
BS1 | PD4 | I | Seleção de Byte 1 ("0" = Byte baixo, "1" = Byte alto) |
XA0 | PD5 | I | Bit 0 de Ação do CRISTAL |
XA1 | PD6 | I | Bit 1 de Ação do CRISTAL |
PAGEL | PD7 | I | Memória de programa e EEPROM de Dados da Página de Carregamento |
BS2 | PC2 | I | Seleção de Byte 2 ("0" = Byte baixo, "1" = Byte alto) |
DADOS | PC[1:0]:PB[5:0] | I/O | Barramento Bi-direcional de dados (Saída quando o OE é de baixo) |
O modo de programação é iniciado quando PAGEL (PD7), XA1 (PD6), XA0 (PD5), BS1 (PD4) devem ser colocados em zero. pino RESET para 0 V e VCC para 0V. VCC deve ser colocado em 4.5 - 5.5 V. Aguarde 60 µs, e o RESET deve ser colocado em 11.5 - a 12,5 V. Esperar mais de 310 µs. Coloque XA1:XA0:BS1:DADOS = 100 1000 0000, pulso XTAL1 para, pelo menos, 150 ns, dê um pulso no WR para zero. Isso inicia o processo de Apagar o Chip. Aguarde até que RDY/BSY (PD1) ir para o nível alto. XA1:XA0:BS1:DADOS = 100 0001 0000, pulso no XTAL1 , dê um pulso no WR em zero. Este é o comando de gravação na Flash. E assim por diante..
Símbolo | Pinos | I/O | Descrição |
---|---|---|---|
MOSI | PB3 | I | Entrada Serial de Dados |
MISO | PB4 | O | Saída Serial de Dados |
SCK | PB5 | I | Clock Serial |
Serial de Dados para o MCU é cronometrado na borda de subida e de dados a partir do MCU é cronometrado na borda de descida. A alimentação é aplicada ao VCC , enquanto o RESET e SCK são colocados em zero. Espere por pelo menos 20 ms e, em seguida, a instrução de Programação serial será Habilitada 0xAC, 0x53, 0x00, 0x00 será enviado para o MOSI pin. O segundo byte (0x53) será ecoado pelo MCU.
Referências
Ligações externas
[editar | editar código-fonte]- «ATmega328 documents». Atmel