


El ATmega328 es un microcontrolador de un solo chip creado por Atmel dentro de la familia megaAVR (posteriormente, Microchip Technology adquirió Atmel en 2016). Cuenta con un núcleo de procesador RISC de 8 bits con arquitectura Harvard modificada .
Presupuesto
El microcontrolador Atmel de 8 bits basado en AVR RISC combina 32 KB de memoria flash ISP con capacidad de lectura y escritura simultáneas, 1 KB de EEPROM , 2 KB de SRAM , 23 líneas de E/S de propósito general, 32 registros de trabajo de propósito general, 3 temporizadores/ contadores flexibles con modos de comparación, interrupciones internas y externas, USART programable en serie , una interfaz serie de 2 hilos orientada a bytes, puerto serie SPI , convertidor A/D de 6 canales y 10 bits (8 canales en encapsulados TQFP y QFN / MLF ), temporizador de vigilancia programable con oscilador interno y 5 modos de ahorro de energía seleccionables por software. El dispositivo funciona entre 1,8 y 5,5 voltios. El dispositivo alcanza un rendimiento cercano a 1 MIPS /MHz. [ 1 ]
Características
Familia
Una alternativa común al ATmega328 es el ATmega328P "picoPower". En el sitio web de Atmel se puede encontrar una lista completa de todos los demás miembros de la serie megaAVR. [ 3 ]
- ATmega328
- ATmega328P y ATmega328P-AUTOMOTIVO
- ATmega328PB y ATmega328PB-AUTOMOTIVE (superconjunto de ATmega328P): tienen más periféricos UART, I2C y SPI que el ATmega328P.
Aplicaciones
El ATmega328 se utiliza habitualmente en muchos proyectos y sistemas autónomos donde se necesita un microcontrolador sencillo, de bajo consumo y de bajo coste.
Quizás el uso más común de este chip sea en la popular plataforma de desarrollo Arduino , concretamente en los modelos Arduino Uno , Arduino Pro Mini [ 4 ] y Arduino Nano .
Programación

La calificación de confiabilidad muestra que la tasa de fallas de retención de datos proyectada es mucho menor a 1 PPM durante 20 años a 85 °C o 100 años a 25 °C. [ 5 ]
El modo de programación se ingresa cuando PAGEL (PD7), XA1 (PD6), XA0 (PD5), BS1 (PD4) se establece a cero. [ 2 ] Pin RESET a 0 V y V CC a 0 V. V CC se establece a 4.5–5.5 V. Espere 60 μs, y RESET se establece a 11.5–12.5 V. Espere más de 310 μs. [ 2 ] Establezca XA1:XA0:BS1:DATA = 100 1000 0000 , pulso XTAL1 durante al menos 150 ns , pulso WR a cero. Esto inicia el borrado del chip. Espere hasta que RDY/BSY (PD1) pase a alto. XA1:XA0:BS1:DATA = 100 0001 0000 , pulso XTAL1, pulso WR a cero. Este es el comando de escritura de la memoria flash. [ 2 ] Y así sucesivamente.
Los datos seriales que llegan al MCU se reciben en el flanco ascendente y los datos que salen del MCU se reciben en el flanco descendente. Se aplica alimentación a V CC mientras que RESET y SCK se establecen a cero. Espere al menos 20 ms y luego se enviará la instrucción serial de habilitación de programación 0xAC, 0x53, 0x00, 0x00 al pin MOSI. El MCU devolverá el segundo byte (0x53). [ 2 ]
Véase también
Referencias
- ↑ "ATmega328P" . Archivado del original el 22/01/2013 . Consultado el 14/07/2016 .
- 1 2 3 4 5 6 7 "Hoja de datos completa de los microcontroladores AVR de 8 bits Atmel ATmega328/P" (PDF) . Archivado (PDF) del original el 10-12-2018 . Recuperado el 14-07-2016 .
- ↑ "Microcontroladores megaAVR" . Atmel. Archivado del original el 14 de febrero de 2014. Consultado el 14 de julio de 2016 .
- ↑ "Arduino - ArduinoBoardProMini" . www.arduino.cc . Consultado el 8 de diciembre de 2021 .
- ↑ "Resumen de la hoja de datos de los microcontroladores AVR de 8 bits ATmega328/P de Atmel" (PDF) . Junio de 2016. Archivado (PDF) del original el 17 de julio de 2016. Consultado el 14 de julio de 2016 .
Enlaces externos
- Páginas web oficiales
- ATmega328 - Microchip
- ATmega328P - Microchip
- ATmega328PB - Microchip
- Microcontroladores Atmel