Utilización de las herramientas de simulación del PROTEUS con los

Transcription

Utilización de las herramientas de simulación del PROTEUS con los
ESCUELA POLITECNICA NACIONAL
DEPARTAMENTO DE AUTOMATIZACIÓN Y CONTROL INDUSTRIAL
LABORATORIO DE SISTEMAS MICROPROCESADOS
PRÁCTICA 4:
Utilización de las herramientas de simulación del
PROTEUS con los microcontroladores ATmega164P
OBJETIVO:
Familiarizar al estudiante con las herramientas existentes para la simulación gráfica de Sistemas
Microprocesados con el paquete de software PROTEUS; en este caso, utilizando el ATmega164P.
TEMAS:
MARCO TEÓRICO
Una vez que se ha obtenido la solución al problema planteado, en forma de Código Ejecutable o
Módulo Objeto contenido en el archivo .hex, puede ser comprobada mediante el simulador en
forma de texto (no gráfico), como el que se encuentra incorporado en el ATMEL Studio 6. Las
ventajas para la depuración de programas mediante el uso de este tipo de simulador son
incuestionables, especialmente por la estrecha relación que se muestra en la pantalla con el
Código Simbólico o Módulo Fuente contenido en el archivo .asm sobre el cual el programador
tiene acceso para realizar las modificaciones necesarias hasta obtener la solución al problema.
Los inconvenientes surgen cuando el programa necesita interactuar con elementos y
dispositivos externos al microcontrolador como son los displays, teclados, sensores, actuadores,
etc. Para superar estos inconvenientes, el paso siguiente es construir el sistema físicamente en
un protoboard o en un circuito impreso donde se comprobará el funcionamiento del programa
en el llamado “tiempo real”, una vez que haya sido programado el microcontrolador. Pero, en la
actualidad se dispone de simuladores gráficos que permiten acercarse un poco más al
funcionamiento del programa en tiempo real, como el que se encuentra incorporado en el
paquete de software PROTEUS. Software conocido y utilizado en el laboratorio prerrequisito de
esta materia.
Cabe recordar que el uso de simuladores difiere algo de la implementación con circuitos reales,
ya que los simuladores son programas que tratan de reproducir el comportamiento de los
circuitos reales, sin lograrlo al ciento por ciento.
Utilización del PROTEUS para la simulación de Sistemas Microprocesados
El ingreso a este paquete de software se lo hace primero al módulo ISIS (Intelligent Schematic
Input System), que permite la captura esquemática del diseño; luego se pasa al Proteus VSM
(Virtual System Modelling), donde se realiza la simulación del diseño. Este paquete se completa
con el módulo ARES, que sirve para trasladar el diseño a un circuito impreso.
1
La pantalla de ISIS contiene al Selector de Objetos donde se muestran los elementos y
dispositivos que se utilizan para la construcción del diseño, que se lo realiza en la Ventana de
Edición. En el Selector Objetos también aparecen los generadores e instrumentos virtuales que
se pueden utilizar en la simulación.
Para almacenar el diseño la primera vez se debe usar la opción del menú File->Save Design As y
se recomienda que guarde en la misma carpeta donde se tiene el archivo .hex del proyecto que
se va a comprobar (\......\Debug), para que la incorporación del Módulo Objeto sea fácil y no se
confunda con otras versiones que puedan existir. Las posteriores actualizaciones que se hagan al
diseño se las guarda con la opción del menú File->Save o el icono, que existe para este
propósito.
Figura 1: Inteffaz de ISIS
Una vez creado el circuito del diseño, como el que se indica en la figura 4.2, es necesario
incorporar el Módulo Objeto mediante el despliegue de la Ventana de Propiedades del
ATmega164P, en el que el casillero correspondiente a Program File: que está inicialmente vacío.
Para llenarlo: hacer click en el icono de Abrir Carpeta que se encuentra al lado derecho del
casillero, lo que permite abrir otra ventana donde se muestran todos los archivos .hex de la
carpeta donde está guardado el diseño. A continuación se escoge el archivo y se confirma la
incorporación a las propiedades del microcontrolador. En caso de no encontrar el archivo
deseado, se debe navegar entre las carpetas que tenga el disco hasta hallarlo.
Figura 2: Circuito básico del ATmega164P y ventana de propiedades para definir el archivo que
ejecuta en la simulación
2
Concluida esta etapa, se procede a la simulación mediante el módulo VSM con la activación de la
tecla Play, los resultados de la simulación son apreciados mediante los colores de los puntos que
aparecen sobre cada uno de los terminales del microcontrolador. Durante la simulación se
puede escoger en la opción del menú Debug las ventanas de los registros y memorias que se
desea analizar cuando se pulse la tecla Step o la tecla Pause. En estas ventanas podemos ver el
avance del programa pero nuevamente en forma de texto. Para abandonar la simulación se
activa la tecla Stop.
Para hacer más interactiva la simulación es posible mostrar el avance del programa por alguno
de los Pórticos de Entrada / Salida Paralela; en este caso, se escoge el PÓRTICO A al que se
acopla LEDS o DISPLAYS que incluyen decodificador, como se indican en las figuras 3 y 4.
Figura 3 control de 8 leds por el ATmega164
Figura 4 control de displays con el ATmega164P
También se puede incluir en la simulación instrumentos virtuales como osciloscopios y
analizadores lógicos, estos últimos para el análisis de líneas individuales o como bus, que
permiten apreciar en mejor forma el avance del programa del microcontrolador. Como ejemplo
están los circuitos de las figuras 5, 6 y 7.
Figura 5: Osciloscopio para ver 4 señales del ATmega164P
3
Figura 6: Analizador lógico que captura las 8 señales individuales del ATmega164P
Figura 7: Analizador lógico que captura como bus las 8 señales
Para este último caso es necesario etiquetar el bus y las líneas en el modo de bus para poder
conectar.
TRABAJO PREPARATORIO
1. El siguiente es un programa para implementar un contador ascendente módulo 256 en el
ATMega164P, escribir este programa en el ATMEL Studio 6, ensamblarlo y simularlo hasta que
no tenga errores.
.def
.def
.cseg
.org
lazo:
contador = R16
tempo = R17
; se define R16 como el contador
; este es un registro auxiliar
0x0000
clr
contador
ldi
tempo,0b11111111
out
ddra,tempo
out
porta,contador
; todos los programas inician en 0x0000
; inicio la cuenta en cero
; para definir al Puerto A como salida se debe
; poner 1L en cada uno de los bits del DDRA
; envío del contenido de contador al Puerto A
4
salto:
ldi
dec
brne
inc
tempo,0xf9
tempo
salto
contador
rjmp
lazo
; se inicia una rutina de retardo
; salto se repite 249 veces
; hasta que la bandera Z=1
; incremento del contador en una unidad
; si llega al máximo 255, al incrementar vuelve a 0
; repitir el proceso indefinidamente
2. Preparar las simulaciones en PROTEUS de los circuitos 3 al 7 que se van a probar en el
laboratorio.
3. Dibujar las formas de onda que se observarán en el osciloscopio del circuito 5 y determinar el
valor de los períodos de las señales.
MODO DE TRABAJO
1. Ingrese el programa en el ATMEL Studio 6, y depúrelo hasta que no tenga errores. Luego
proceda a simularlo con simulador incluido en este paquete. Comprobar el tiempo que
permanece cada valor en el Puerto A antes de cambiar al siguiente valor, anotar ese resultado;
para esto, poner al simulador del oscilador en 1 MHz.
2. Con ayuda del instructor pruebe el funcionamiento de los circuitos de las figuras 3 al 7.
Comprobar el dibujo y los valores obtenidos en el trabajo preparatorio.
3. Modificar el programa del proyecto para que el contador sea descendente y comprobar con el
diseño que tiene analizador lógico como bus.
INFORME:
1. Justificar mediante cálculos el tiempo tomado en el numeral 1 de la parte práctica. Presentar sus
cálculos.
2. Modificar el programa para que alternativamente sea un contador ascendente y luego
descendente. Simular el diseño y capturar la pantalla del Analizador Lógico con las 8 señales
individuales, en la que se pueda ver las secuencias ascendente y descendente en forma
alternada. Entregar el listado del programa incluyendo comentarios y justificaciones.
3. Adicionalmente realizar lo que el instructor solicite el instructor.
5