0% encontró este documento útil (0 votos)
747 vistas14 páginas

ATMEGA328

El documento describe la arquitectura interna del microcontrolador ATmega328p que se encuentra en la tarjeta Arduino Uno. Explica que tiene 131 instrucciones, 32 registros generales de 8 bits, memoria Flash de 32KB, SRAM de 2KB y EEPROM de 1KB. También detalla sus periféricos como timers, PWM, ADC, comunicación serial y más. Finalmente, compara el ATmega328p con el PIC16F84a en términos de costo y facilidad de uso.

Cargado por

Max Grove
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
747 vistas14 páginas

ATMEGA328

El documento describe la arquitectura interna del microcontrolador ATmega328p que se encuentra en la tarjeta Arduino Uno. Explica que tiene 131 instrucciones, 32 registros generales de 8 bits, memoria Flash de 32KB, SRAM de 2KB y EEPROM de 1KB. También detalla sus periféricos como timers, PWM, ADC, comunicación serial y más. Finalmente, compara el ATmega328p con el PIC16F84a en términos de costo y facilidad de uso.

Cargado por

Max Grove
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Introducción

En los últimos años, la plataforma de desarrollo de Arduino ha crecido


notablemente. Esto se debe a su fácil manejo, contribuciones de
hardware y software e interés de empresas como Intel, Microsoft,
Texas Instruments, etc., en adaptar sus productos a esta plataforma.

Una de las tarjetas más usadas es la Arduino Uno, cuyo


microcontrolador núcleo es el atmega328p. En este artículo
conoceremos sus capacidades internas y arquitectura del
microcontrolador, de gran utilidad a la hora de diseñar sistemas
electrónicos.
1.º. Registros internos
El ATmega328P es un microcontrolador de arquitectura RISC avanzado AVR
de Atmel, de alto desempeño, bajo consumo y optimizado para compiladores
C. La Figura 2 muestra el diagrama en bloques del microcontrolador. Entre
sus principales características podemos encontrar:

- 131 Instrucciones potentes, la mayoría ejecutada en un solo ciclo de reloj.

- Un banco de 32x8 registros de propósito general.

- Hasta 20 MIPS (Millones de instrucciones por segundo) a 20 MHz.

- Un multiplicador hardware on-chip de 2 ciclos.

- Memoria de programa FLASH de 32 KBytes, programable dentro del


sistema.
- Memoria SRAM interna de 2 KBytes.

- Memoria EEPROM de 1 KByte.

- 2 Timers/Contadores de 8 bits.

- 1 Timer/Contador de 16 bits.

- 6 Canales PWM.

- 6 Canales analógicos para el ADC.

- 1 Puerto serial USART.

- 1 Interface serial SPI.

- 1 Interface serial 2-Wire, compatible con I2C.

- 1 Timer watchdog.

- 1 Un comparador analógico on-chip.

- Interrupciones.

- Varios modos de bajo consumo.


2°. Memorias internas
 El microcontrolador ATmega328P tiene
una memoria Flash 32 Kbytes
reprogramable en el propio sistema o
circuito, para el almacenamiento del
programa. Como todas las instrucciones
AVR son de 16 o 32 bits, la memoria
Flash es organiza en 16K x 16. Para la
seguridad del software, la memoria Flash
de programa es divida en 2 espacios:

- La sección de inicialización de carga (Boot


Loader).

- La sección de programa de la aplicación.

El contador de programa (PC) es de 14 bits,


así puede direccionar los 16K de
localizaciones de la memoria de programa.
La Figura 6 muestra el mapa de direcciones
para la memoria F

 La memoria SRAM (Static RAM) es formada por 2303 localizaciones de


memoria. En la parte más baja están: el banco (file) de registros de propósito
general, luego la memoria de entradas/salidas, luego, la memoria de
entradas/salidas extendidas y finalmente SRAM de datos. El banco de
registros es de 32 bytes, la memoria de entrada/salida es de 64 bytes, la
memoria de entrada/salida extendida es de 160 bytes y la SRAM de datos es
de 2048 bytes. La Figura 7 muestra el mapa de memoria para la SRAM. Esta
memoria puede ser direccionada de 5 formas diferentes:
Direccionamiento directo.

- Direccionamiento indirecto con desplazamiento.

- Direccionamiento indirecto.

- Direccionamiento indirecto con pre-decremento.

- Direccionamiento indirecto con post-incremento.

Los 32 registros de propósito general, los 64 registros de entrada/salida, los 160


registros de entrada/salida extendidos y SRAM interna de 2K, son todos
accesibles a través de estos modos de direccionamiento.
El microcontrolador tiene una memoria EEPROM de 1 KBytes. Ella está
organizada como un espacio de memoria separado, la cual puede ser leída o
escrita. La EEPROM permite 100.000 ciclos de escritura/borrado.
3°. Periféricos
SPI - INTERFACE SERIAL DE PERIFERICOS.
La Interface Serial de Periféricos (SPI) permite transferencia de datos síncronas
de alta velocidad, entre el microcontrolador y unidades periféricas. En la Figura
12 podemos ver el diagrama de bloques de la SPI. La interconexión entre el
Maestro y el esclavo es mostrada en la Figura 13. El periférico SPI es de un
solo buffer en el sentido de transmisión y con doble buffer en el sentido de
recepción. Esto significa que bytes a ser transmitidos, no pueden ser escritos al
registro de datos del SPI, antes que el ciclo de desplazamiento entero este
completo. Cuando recibiendo datos, un carácter recibido debe ser leído del
registro de datos SPI, antes que el próximo dato haya sido completamente
desplazado adentro.
COMUNICACION SERIAL - USART (Universal Synchronous
Asynchronous Receiver Transceiver)
La USART es un periférico de comunicación serial altamente flexible. La Figura
14 muestra el diagrama en bloques de la USART de microcontrolador. En la
parte superior, del diagrama de bloques, se encuentra el generador de reloj
(clock), en el medio está el transmisor y en la parte baja está el receptor. Estos
bloques son separados por líneas punteadas o descontinúas en el diagrama en
bloques. Los registros de control son compartidos por todos los bloques.
TWI - INTERFACE SERIAL DE 2 HILOS.
La Figura 15 muestra el protocolo TWI. El protocolo de la TWI (Two-Wire Serial
Interface) permite interconectar hasta 128 diferentes dispositivos, usando
solamente un bus bidireccional de 2 líneas: SDA para datos y SCL para el
clock. El único hardware externo necesario para implementar el bus, es una
única resistencia para cada línea del bus TWI. Todos los dispositivos
conectados al bus tienen individual dirección.

4°. Instrucciones
La importancia de conocer el ciclo de ejecución de instrucciones en un
microcontrolador estriba en que en ocasiones es necesario calcular de forma
precisa el tiempo de ejecución de los bucles para actuar en tiempo real.
Dentro de los microcontroladores, la tendencia es a usar MCUs de 32 bits con
arquitectura ARM. La arquitectura ARM es el conjunto de instrucciones de 32 y
64 bits más ampliamente utilizado en unidades producidas. Concebida
originalmente por Acorn Computers para su uso en ordenadores personales, los
primeros productos basados en ARM eran los Acorn Archimedes, lanzados en
1987.
La relativa simplicidad de los procesadores ARM los hace ideales para
aplicaciones de baja potencia. Como resultado, se han convertido en dominante
en el mercado de la electrónica móvil e integrada, encarnados en
microprocesadores y microcontroladores pequeños, de bajo consumo y
relativamente bajo costo. En 2005, alrededor del 98% de los más de mil
millones de teléfonos móviles vendidos utilizaban al menos un procesador
ARM. Desde 2009, los procesadores ARM son aproximadamente el 90% de
todos los procesadores RISC de 32 bits integrados.
5°. Instrucciones manejadas por el
microcontrolador
Cuando el microcontrolador ejecuta una instrucción que definimos en el sketch,
internamente hace muchas operaciones y cada una de esas operaciones se
ejecuta en un ciclo de reloj. Para el ATmega 328p que tiene una frecuencia de
16 MHz, es decir, cada ciclo tarda 0,0000000625 segundos = 0,0625
microsegundos = 62,5 nanosegundos

6° Distribución de terminales
Incluye 3 puertos, todas las terminales con más de una función alterna.
PB – 8 bits
PC – 7 bits
PD – 8 bits

Puertos de Entrada/Salida
Se requiere de tres registros I/O para el manejo de cada puerto:
 DDRx: Registro que define la dirección del puerto con el apoyo de un buffer
de 3 estados. Las direcciones se pueden configurar de manera
independiente, para cada terminal.
1 – Salida
0 – Entrada
 PORTx: Registro conectado a la terminal del puerto a través del buffer de 3
estados, en PORTx se escribe cuando el puerto está configurado como
salida. Si el puerto es entrada sirve para habilitar un resistor de Pull-Up.
 PINx: Si el puerto es entrada, este registro sirve para hacer lecturas directas
en las terminales. Cuando es salida, al escribir un 1 lógico se conmuta el
valor almacenado.
7° El reset

Comparación del PIC16F84a y ATmega328P


Lo primero que hay que destacar es que son marcas distintas y por lo tanto
funcionan bajo sistemas diferentes. ¿Qué quiero decir con esto? Arduino es una
empresa y marca italiana que se encarga de crear tanto las tarjetas de Arduino
como desarrollar sus proyectos. Si bien Arduino es un sistema de código
abierto la empresa se encarga de comercializar el producto con el nombre
original y el software mediante su página.
Por su parte los microcontroladores pic son un producto de la empresa
Microchip Technology Inc. Que es una compañía estadounidense y se encarga
de comercializar tanto los microcontroladores pic como todos los productos
asociados a ellos, llámese programadores, software de programación y demás.

Más allá de la diferencia de marcas debemos decir que una placa de Arduino y
un microcontrolador pic tienen como principal diferencia que Arduino es una
placa de desarrollo integrada con todos los componentes necesarios para crear
un proyecto electrónico y hacerlo funcionar de una vez.

Un microcontrolador pic es eso solo eso, un microcontrolador sin más. Para


desarrollar un proyecto debes adquirir el resto de los componentes necesarios
para ello, empezando por el programador continuando con los resonadores, los
condensadores y demás componentes necesarios para en principio programar
y luego probar físicamente el proyecto.

Diferencia de costos
Otra de las diferencias importantes entre Arduino y los microcontrladores pic es
el costo. Una placa de Arduino uno tiene un costo que ronda los 20 dólares ya
con todo sus componentes integrados y lista para desarrollar proyectos. Un
microcontrolador pic de gama media (que es lo más cercano al
microcontrolador que usa Arduino, mas adelante te explicare lo de las gamas
media, baja y alta) tiene un costo de alrededor de 15 dolares solo el
microcontrolador, para usarlo en un proyecto tienes que comprar el resto de los
componentes.

REFERENCIAS

ARQUITECTURA MICROCONTROLADOR – APRENDIENDO


ARDUINO
En el texto: (arquitectura microcontrolador – Aprendiendo Arduino,
2020)
Bibliografía: Aprendiendo Arduino. 2020. Arquitectura
Microcontrolador – Aprendiendo Arduino. [online] Available at:
<[Link]
microcontrolador/> [Accessed 17 September 2020].

PÉREZ, A.
Conociendo El Microcontrolador Núcleo (Core) Atmega328p De
Arduino Uno. (MIC019S)
En el texto: (Pérez, 2020)
Bibliografía: Pérez, A., 2020. Conociendo El Microcontrolador
Núcleo (Core) Atmega328p De Arduino Uno. (MIC019S). [online]
[Link]. Available at:
<[Link]
y-dsps/2546-conociendo-el-microcontrolador-nucleo-core-
atmega328p-de-arduino-uno-mic019s> [Accessed 17 September
2020].

También podría gustarte