Você está na página 1de 22

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA

MECANICA Y ELECTRICA
UNIDAD AZCAPOTZALCO

INTERFASES Y PERIFERICOS PROGRAMABLES

CURSO BASICO DE AVR ATMEGA 328P

ALUMNO: UGALDE GARCIA RUBEN ANTONIO

GRUPO: 7RM1

PROFESOR: VALDES MARTINEZ RAMON

11 DE SEPTIEMBRE DEL 2018

CURSO DE PIC 16F887 1


MICROCONTROLADOR AVR ATMEGA 328P
GENERALIDADES
1. DESARROLLO E IMPORTANCIA DE LOS MICROCONTROLADORES
Hasta antes de la aparición de los microprocesadores en 1971, la mayor parte de las aplicaciones digitales
electrónicas se basaban en la llamada lógica cableada, es decir, se analizaba y se sintetizaba una función en base
a la lógica de Boole.

Con la aparición de los microprocesadores, todo era descompuesto en una serie de tareas más simples, pues el
microprocesador ejecutaba una serie de pasos o instrucciones para llevar a efecto cada una de las tareas, en
ocasiones solo se cambiaba el programa para obtener otra aplicación.

El microprocesador es el cerebro que ejecuta operaciones de índole aritméticas y lógicas por tanto no maneja
periféricos, tampoco tenía un lugar de almacenamiento, sino que buscaba una instrucción y la ejecutaba; al
conjunto de circuitos de soporte se les llamo sistema mínimo. El sistema mínimo se convirtió en un estándar, la
escala de integración mejoro y posibilito (1976) sintetizar en un solo chip un sistema mínimo, se le llamo SISTEMA
A, era el primer microcontrolador.

MICROCONTROLADOR: Es procesador con su sistema mínimo en un chip (incluye memoria para programa y
datos, periféricos de entrada / salida, conversores de AD y DA, módulos especializados en la transmisión y
recepción de datos).

MICROCONTROLADOR MICROPROCESADOR
Arquitectura cerrada Arquitectura abierta
Cuentan con un RISC Cuentan con más cantidad de instrucciones
Arquitectura Harvard Arquitectura Von Neuman
Especialización en aplicaciones industriales para
resolver problemas específicos
TABLA 1. Comparación entre las diferencias sustanciales entre los microprocesadores y microcontroladores
como:

El aumento progresivo de la escala de integración y las técnicas de fabricación hacen cada vez
microcontroladores más poderosos y rápidos.

Palabras clave
MICROPROCESADORES

 Surgen en 1971
 Antes de su aparición todo circuito se basaba en la lógica cableada que tiene su
origen en el algebra de Boole
 Su aparición propicio la simplificación de los circuitos en tareas mas sencillas
 En el cerebro de operación (no consta de periféricos)
 Algunos de los periféricos en lo que se apoyaba se les llamo sistema mínimo
 Tiene una arquitectura abierta

MICROCONTROLADORES

CURSO DE PIC 16F887 2


 El sistema mínimo se volvió un estándar al poco tiempo
 El sistema mínimo fue sintetizado en un solo chip
 Un sistema mínimo se compone de los siguientes elementos
 Memoria de programa (RAM)
 Periféricos de entrada y salida
 Conversores DA/AD
 Los microprocesadores surgen en 1976 y se trata de un microchip con sistema
mínimo
 Son de arquitectura cerrada
 Cuentan con un set de computadoras con instrucciones reducidas

CURSO DE PIC 16F887 3


CURSO DE PIC 16F887 4
2. METODOLOGÍA DE ESTUDIO
En el presente curso se aprenderán los siguientes puntos de los microcontroladores.

 Entender cómo funciona la arquitectura.


 Comprender y aplicar las instrucciones que tiene el dispositivo.
 Plantear soluciones a diversas aplicaciones.
 Aprender a usar las herramientas de programación y depuración. (ICD)
 Detectar y corregir los errores sintácticos y lógicos.
 Optimizar el programa final

Además, se implementarán circuitos simples pero demostrativos de las bondades y posibilidades de los
microcontroladores, como se muestra en el siguiente diagrama de flujo

1. Todo principia en una idea la cual se ha de plasmar en


diagramas de flujo
2. Se usa un editor de texto para codificar el diagrama de flujo a
través de las instrucciones con que cuenta el
microcontrolador
3. Presentamos ese archivo a un programa ensamblador o un
compilador
4. Se depuran los errores sintácticos que son errores en la
estructura del lenguaje
5. procedemos a usar un software, para simular el programa
verificando que la solución es válida.
5.1. En caso de que la simulación indique errores procedemos a
replantear la solución retomando el punto inicial
6. A continuación, procedemos a grabar el programa
(debidamente compilado) en el microcontrolador
NOTA: En este punto es posible aplicar un emulador o un ICD a fin de
verificar que los resultados elaborados por el simulador son
apropiados, el emulador o ICD a diferencia del simulador trabaja
sobre hardware real.
6.1. En caso de que falle en este punto retomamos el diseño
original
7. Se procede a colocarlo sobre el hardware final que ha de
operar.

Palabras clave
METODOLOGIA DE ESTUDIO

 Entender la función de la arquitectura


 Comprender y aplicar las instrucciones del dispositivo
 Solucionar problemas aplicaciones y algoritmos planteados
 Usar herramientas adicionales

CURSO DE PIC 16F887 5


 Corregir errores
 Optimizar los programas

DIAGRAMA DE FLUJO PARA LA RESOLUCION DE UNA APLICACIÓN O ALGORITMO

 Toda solución comienza con una idea


 La idea se plasma en un diagrama de flujo
 Se usa un editor de texto para codificar instrucciones
 Uso de un programa ensamblador o compilador
 Apoyo de un software para simular el programa
 Si la solución es no es la requerida, volver a replantearse la idea y repetir
desde el inicio los pasos antes establecidos
 Colocarlo en el hardware a operar

CURSO DE PIC 16F887 6


CURSO DE PIC 16F887 7
3. MICROCONTROLADORES AVR ATMEGA 328P
IMAGEN 1. Diagrama comparativo entre el tamaño de
los microcontroladores AVR y sus características

La familia de microcontroladores AVR es muy


numerosa, incluye más de 70 dispositivos que
comparten el núcleo, pero difieren en recursos. En
particular revisaremos el ATMega328, cuyas
características técnicas se resumen a continuación:

 32 KB de memoria flash; con la capacidad de leer-mientras-escribe


 Microcontrolador arquitectura de 8 bits de la familia AVR
 Hasta 23 pines I/O disponibles
 Memoria de programa flash de 32 kB
 SRAM de 2 kB
 EEPROM de datos de 1 kB
 Velocidad max. de la CPU 20 MIPS
 Oscilador externo hasta 20 MHz
 Voltaje de operación 1.8 V a 5.5 V
 ADC de 10 bits y 6 canales
 2 timers/contadores/comparadores de 8 bits
 1 timer/contador/comparador/Captura de 16 bits
 6 canales PWM
 USART Full duplex
 SPI
 TWI Two-wire Serial Interface (2-Wire) (I2C compatible)
 Comparador análogo
 Múltiples fuentes de interrupción
 Oscilador de reloj interno
 Brown-out Reset de valor programable
 Power-on Reset
 Modos de bajo consumo
 Soporta 10,000 ciclos de borrado/escritura en memoria flash
 Soporta 100,000 ciclos de borrado/escritura en memoria EEPROM
 Protección de código programable
 Cumple directivas RoHS
 Encapsulado PDIP de 28 pines

A continuación se muestra un diagrama detallado sobre cada uno de los respectivos puertos que conforman al
AVR ATMEGA 328P

CURSO DE PIC 16F887 8


IMAGEN 2. Estructura externa del AVR ATMEGA 328P con sus PINES correspondientes

CURSO DE PIC 16F887 9


TABLA 2. Funcionamiento de los pines que contiene el AVR ATMEGA 328P

CURSO DE PIC 16F887 10


Palabras clave
5 CARACTERISTICAS DEL AVR ATMEGA 328P

 32 KB de memoria flash; con la capacidad de leer-mientras-escribe


 Microcontrolador arquitectura de 8 bits de la familia AVR
 Hasta 23 pines I/O disponibles
 1 timer/contador/comparador/Captura de 16 bits
 6 canales PWM

4. ARQUITECTURA DEL AVR ATMEGA 328P


Esta sección trata sobre la arquitectura central de AVR en general. La función principal del núcleo de la CPU es
asegurar la ejecución correcta del programa Por lo tanto, la CPU debe poder acceder a las memorias, realizar
cálculos, control de periféricos y manejo de interrupciones

Para maximizar el rendimiento y el paralelismo, el AVR utiliza una arquitectura de Harvard, con recuerdos y
autobuses para programa y datos. Las instrucciones en la memoria del programa se ejecutan con una
canalización de un solo nivel. Mientras se ejecuta una instrucción, la siguiente instrucción se realiza previamente
desde memoria de programa. Este concepto permite que las instrucciones se ejecuten en cada ciclo de reloj.

La memoria es memoria flash reprogramable dentro del sistema. El archivo de registro de acceso rápido contiene
registros de trabajo de propósito general de 32 x 8 bits con un solo reloj tiempo de acceso al ciclo. Esto permite
la operación de Unidad de Lógica Aritmética (ALU) de un solo ciclo. En una ALU típica operación, dos operandos
salen del Archivo de Registro, la operación se ejecuta y el resultado es almacenado de nuevo en el archivo de
registro, en un ciclo de reloj.

CURSO DE PIC 16F887 11


Seis de los 32 registros se pueden utilizar como tres punteros de registro de direcciones indirectas de 16 bits para
Data Space direccionamiento - permitiendo cálculos de direcciones eficientes. Uno de estos indicadores de
direcciones también se puede usar como un puntero de dirección para buscar tablas en la memoria del programa
Flash. Estos registros de funciones adicionales son el registro X, Y y Z de 16 bits, que se describe más adelante en
esta sección.

IMAGEN 2. Sistema de inicialización del AVR ATMEGA 328P

CURSO DE PIC 16F887 12


La ALU admite operaciones aritméticas y lógicas entre registros o entre una constante y una registro. Las
operaciones de registro único también se pueden ejecutar en la ALU. Después de una operación aritmética, en
El registro de estado se actualiza para reflejar información sobre el resultado de la operación. El flujo del
programa es provisto por instrucciones de saltos y llamadas condicionales e incondicionales, capaces de abordar
todo el espacio de direcciones.

La mayoría de las instrucciones de AVR tienen un solo formato de palabra de 16 bits. Cada la dirección de
memoria del programa contiene una instrucción de 16 o 32 bits. El espacio de la memoria Flash de programa se
divide en dos secciones, la sección Programa de arranque y la Aplicación Sección de programa. Ambas secciones
tienen bits de bloqueo dedicados para escritura y protección de lectura / escritura. El SPM La instrucción que
escribe en la sección de memoria Flash de la aplicación debe residir en la sección Programa de inicio.

Durante las interrupciones y las llamadas a la subrutina, el Contador de programa (PC) de la dirección de retorno
se almacena en la Pila. La pila se asigna efectivamente en la SRAM de datos generales, y en consecuencia, el
tamaño de la pila es solo limitado por el tamaño total de SRAM y el uso de la SRAM. Todos los programas de
usuario deben inicializar el SP en el Restablecer rutina (antes de que se ejecuten subrutinas o interrupciones). El
puntero de pila (SP) es de lectura / escritura accesible en el espacio de E / S. Se puede acceder fácilmente a la
SRAM de datos a través de cinco direcciones diferentes modos compatibles en la arquitectura AVR.

Los espacios de memoria en la arquitectura AVR son todos los mapas de memoria lineal y regular. Un módulo de
interrupción flexible tiene sus registros de control en el espacio de E / S con una interrupción global adicional
Habilitar bit en el Registro de estado. Todas las interrupciones tienen un vector de interrupción separado en el
vector de interrupción mesa. Las interrupciones tienen prioridad de acuerdo con su posición de vectores de
interrupción. Cuanto menor sea el Interrumpir la dirección vectorial, mayor será la prioridad.

El espacio de memoria de E / S contiene 64 direcciones para funciones periféricas de CPU como Registros de
control, SPI, y otras funciones de E / S. Se puede acceder directamente a la memoria de E / S o como ubicaciones
de espacio de datos siguiendo los del archivo de registro, 0x20 - 0x5F. Además, este dispositivo tiene espacio
ampliado de E / S de 0x60 - 0xFF en SRAM donde solo se pueden usar las instrucciones ST / STS / STD y LD / LDS
/ LDD.

Palabras clave
 La CPU asegura la correcta ejecución de programas. La CPU tiene acceso a las memorias, realiza cálculos,
controla periféricos y maneja interrupciones.
 El AVR usa una arquitectura Harvard – con memorias y buses separados para instrucciones y datos.
 Para posibilitar la segmentación y maximizar el rendimiento.
 La ALU soporta operaciones aritméticas y lógicas entre registros o entre un registro y una constante.
Aunque también hay operaciones con un solo registro.
 El registro de Estado (Status Register) es actualizado después de una operación aritmética o lógica, para
reflejar información acerca de la operación.

CURSO DE PIC 16F887 13


5. CICLO DE INSTRUCCION
Esta sección describe los conceptos de tiempo de acceso general para la ejecución de instrucciones. La CPU AVR
es impulsado por el reloj de CPU clkCPU, generado directamente a partir de la fuente de reloj seleccionada para
el chip, la división del reloj se usa. La figura a continuación muestra las recuperaciones de instrucciones paralelas
y las ejecuciones de instrucciones habilitado por la arquitectura de Harvard y el concepto de archivo de registro
de acceso rápido. Esta es la canalización básica concepto para obtener hasta 1 MIPS por MHz con los resultados
únicos correspondientes para funciones por costo, funciones por relojes y funciones por unidad de potencia.

IMAGEN 3. Funcionamiento de los pulsos de reloj

La siguiente figura muestra el concepto de sincronización interna para el archivo de registro. En un solo ciclo de
reloj, Se ejecuta la operación ALU utilizando dos operandos de registro, y el resultado se almacena de nuevo en
el destino registro

CURSO DE PIC 16F887 14


Imagen 3. Sincronización interna para el archivo de registro

Palabras clave:
 El flujo de ejecución es secuencial.
 Modificado por saltos condicionales e incondicionales y llamadas a rutinas.
 Las instrucciones son ejecutadas con una segmentación de dos etapas.
 Mientras una instrucción está siendo ejecutada, la siguiente es capturada de la memoria de programa.
 Cada ciclo de reloj concluye una instrucción.
 En realidad, una instrucción tarda dos ciclos de reloj.
 En los saltos también se pierde un ciclo de reloj.
 El rendimiento se aproxima a 1 MIPS por MHz de la frecuencia de trabajo del oscilador.

CURSO DE PIC 16F887 15


CURSO DE PIC 16F887 16
6. ORGANIZACIÓN DE LA MEMORIA EN EL AVR ATMEGA 328P
Visión de conjunto
Esta sección describe los diferentes tipos de memoria en el dispositivo. La arquitectura AVR tiene dos
principales espacios de memoria, memoria de datos y espacio de memoria de programa. Además, el dispositivo
presenta una Memoria EEPROM para almacenamiento de datos. Todos los espacios de memoria son lineales y
regulares

Memoria programable del programa reprogramable en el sistema


El ATmega328 / P contiene 32 KB de memoria flash reprogramable en el sistema en el chip para el programa
almacenamiento. Como todas las instrucciones AVR tienen 16 o 32 bits de ancho, el Flash está organizado Como
16K x 16. Para seguridad del software, el espacio de memoria del programa Flash se divide en dos secciones:
Sección del cargador de arranque y la sección del programa de aplicación en el dispositivo.

La memoria flash tiene una resistencia de al menos 10,000 ciclos de escritura / borrado. El programa ATmega328
/ P El contador (PC) tiene una anchura de 14 bits, por lo que se dirige a las ubicaciones de la memoria de programa
de 16 K. La operación de Boot. La sección de programa y los bits de bloqueo de arranque asociados para la
protección del software se describen en detalle en Boot

Soporte de cargador: auto programación de lectura y escritura. Consulte Programación de memoria para la
descripción en la descarga serial de datos Flash usando los pines SPI. Las tablas constantes se pueden asignar
dentro de todo el espacio de direcciones de memoria del programa, utilizando la Carga. Instrucción de memoria
de programa (LPM). Los diagramas de tiempo para la captación y la ejecución de la instrucción se presentan en
el Tiempo de ejecución de la instrucción.

Imagen 4. Mapa de la memoria de programa para el AVR ATMEGA 328P

CURSO DE PIC 16F887 17


Memoria de datos SRAM

La siguiente figura muestra cómo está organizada la memoria SRAM del dispositivo. El dispositivo es un
microcontrolador complejo con más unidades periféricas que las que se pueden admitir en los 64 lugares
reservados en el código de operación para las instrucciones IN y OUT. Para el espacio de E / S ampliado de 0x60
- 0xFF en SRAM, solo se pueden usar las instrucciones ST / STS / STD y LD / LDS / LDD.

Las ubicaciones inferiores de la memoria de datos 2303 abordan el archivo de registro, la memoria de E / S, la E
/ S extendida memoria y la SRAM de datos internos. Las primeras 32 ubicaciones se dirigen al archivo de registro,
las siguientes 64 ubicar la memoria de E / S estándar, luego 160 ubicaciones de memoria de E / S extendida, y las
siguientes ubicaciones 2K abordar los datos internos SRAM. Los cinco modos de direccionamiento diferentes
para la cubierta de la memoria de datos:

• Directo

- El direccionamiento directo llega a todo el espacio de datos.

• Indirecto con desplazamiento

- El modo Indirecto con desplazamiento alcanza 63 ubicaciones de direcciones desde la dirección base

dado por el registro Y o Z.

• Indirecto

- En el archivo de registro, los registros R26 a R31 presentan los registros de puntero de direccionamiento
indirecto.

• Indirecto con pre decremento

- Los registros de direcciones X, Y y Z están decrementados.

• Indirecto con post incremento

- Los registros de direcciones X, Y y Z se incrementan.

Los 32 registros de trabajo de propósito general, 64 registros de E / S, 160 registros de E / S ampliados y los 2K
Se puede acceder a todos los bytes de SRAM de datos internos en todos estos modos de direccionamiento.

CURSO DE PIC 16F887 18


IMAGEN 5. Mapa de la memoria interna con la SRAM

MEMORIA EEPROM

El ATmega328 / P contiene 1K bytes de memoria EEPROM de datos. Está organizado como datos separados
espacio, en el que se pueden leer y escribir bytes individuales. La EEPROM tiene una resistencia de al menos
100.000 ciclos de escritura / borrado. El acceso entre la EEPROM y la CPU se describe a continuación,
especificando los registros de direcciones EEPROM, el registro de datos EEPROM y el control EEPROM Registro.
Consulte los enlaces relacionados para obtener una descripción detallada de la Programación EEPROM en SPI o
Programación Paralela.

MEMORIA DE ENTRADAS Y SALIDAS

La definición del espacio de E / S del dispositivo se muestra en el Resumen del registro. Todas las E / S y periféricos
del dispositivo se colocan en el espacio de E / S. El acceso a todas las ubicaciones de E / S LD / LDS / LDD y ST /
STS / STD instrucciones, la transferencia de datos entre los 32 de trabajo general registros y el espacio de E / S.
Los registros de E / S dentro del rango de direcciones 0x00-0x1F son directamente accesibles por bit usando las
instrucciones de SBI y CBI. En estos registros, el valor de los bits individuales se puede verificar mediante el uso
de las instrucciones SBIS y SBIC.

Al usar los comandos específicos de E / S IN y OUT, se deben usar las direcciones de E / S 0x00-0x3F. Cuando
direccionando los registros de E / S como espacio de datos usando instrucciones LD y ST, se debe agregar 0x20 a
estas direcciones. El dispositivo es un microcontrolador complejo con más unidades periféricas de las que se
pueden admitir dentro de la ubicación 64 reservada en Opcode para las instrucciones IN y OUT. Para el espacio
de E / S ampliado desde 0x60..0xFF en SRAM, solo se pueden usar las instrucciones ST / STS / STD y LD / LDS /
LDD.

Para compatibilidad con dispositivos futuros, los bits reservados deben escribirse en cero si se accede a ellos. E
/ S reservadas las direcciones de memoria nunca deben escribirse. Algunos de los Indicadores de estado se borran
al escribirles un '1'; esto se describe en las descripciones de la bandera. Tenga en cuenta que, a diferencia de la
mayoría de los AVR, las instrucciones CBI y SBI solo funcionarán en el bit especificado, y por lo tanto, se puede

CURSO DE PIC 16F887 19


usar en registros que contengan dichos Indicadores de estado. Las instrucciones CBI y SBI funcionan con registra
0x00-0x1F solamente. Los registros de control de E / S y periféricos se explican en secciones posteriores.

Palabras clave:
MEMORIA

 Memoria Flash cuyo tamaño varía entre procesadores, p a r a e l ATMega328 es de 32 Kbytes (16 K x 16
bits).
 Soporta hasta 10,000 ciclos de escritura/borrado.
 Se puede dividir en una sección para aplicación y una sección de arranque, donde se puede ubicar un
cargador de auto programación
 Los vectores de interrupción son parte de la memoria de programa e inician en la dirección 0.

REGISTROS I/O

 El espacio para los Registros I/O Extendidos es de 160 localidades; aunque la mayoría están libres.
 Tienen la misma función que los Registros I/O, es decir, se emplean para la configuración y el control
de recursos internos, así como para conocer su estado.
 Los Registros I/O Extendidos son Registros I/O mapeados en SRAM. Únicamente se pueden acceder con
instrucciones de carga (LD) y almacenamiento (ST) (direcciones 0x60 - 0xFF).
 Como un ejemplo, los registros de los Temporizadores son parte de los Registros I/O Extendidos.

CURSO DE PIC 16F887 20


7. HERRAMIENTAS
Para programar es necesario contar con herramientas en hardware y software:

ATMEL STUDIO

 ATMEN STUDIO, es la plataforma de desarrollo integrada (IDP) para desarrollar y depurar todas las
aplicaciones de microcontroladores AVR® y SAM. Atmel Studio le ofrece un entorno sencillo y fácil de
usar para escribir, construir y depurar sus aplicaciones escritas en C / C ++ o código ensamblador.
También se conecta sin problemas a los depuradores, programadores y kits de desarrollo que admiten
dispositivos AVR® y SAM.
 Además, Studio incluye Atmel Gallery, una tienda de aplicaciones en línea que le permite ampliar su
entorno de desarrollo con complementos desarrollados por Microchip, así como herramientas de
terceros y proveedores de software integrados. ATMEL STUDIO también puede importar sin problemas
sus bocetos de Arduino como proyectos de C ++, proporcionando una ruta de transición simple de
Makerspace a Marketplace.

PROTEUS DESIGN SUITE

 Proteus es una compilación de programas de diseño y simulación electrónica, desarrollado por Labcenter
Electronics que consta de los dos programas principales: Ares e Isis. Hablando del programa ISIS,
Intelligent Schematic Input System (Sistema de Enrutado de Esquemas Inteligente) permite diseñar el
plano eléctrico del circuito que se desea realizar con componentes muy variados, desde simples
resistencias, hasta alguno que otro microprocesador o microcontrolador, incluyendo fuentes de
alimentación, generadores de señales y muchos otros componentes con prestaciones diferentes. Este
programa ISIS nos permite dibujar sobre un area de trabajo, un circuito que posteriormente podemos
simular, y verificar para encontrar sus posibles errores.

IMAGEN 6. Interfaz grafica del programa ATMEL STUDIO


Identificado el problema planteamos la solución a través de un algoritmo de allí en un diagrama de flujo, el
diagrama de flujo se puede codificar en cualquier lenguaje de programación de allí que presentamos dos
caminos o en ensamblador o en C. Si todo está sin problemas procedemos a grabar el programa. El MPLAB
genera un archivo HEX que puede ser leído por el NOPPP o el ICD que es el que a su vez graba el programa
dentro del microcontrolador.

CURSO DE PIC 16F887 21


Palabras clave:
ATMEL STUDIO:

 ATMEN STUDIO, es la plataforma de desarrollo integrada (IDP)


 Desarrolla y depurar todas las aplicaciones de microcontroladores AVR® y SAM.
 Atmel Studio ofrece un entorno sencillo y fácil de usar para escribir, construir y depurar aplicaciones
escritas en C / C ++ o código ensamblador

PROTEUS

 Proteus es una compilación de programas de diseño y simulación electrónica


 permite diseñar el plano eléctrico del circuito que se desea realizar con componentes muy variados,
desde simples resistencias, hasta alguno que otro microprocesador o microcontrolador

CURSO DE PIC 16F887 22

Você também pode gostar