Pic Simulator Ide

download Pic Simulator Ide

of 14

Transcript of Pic Simulator Ide

PIC SIMULATOR IDEEste documento es un intento de explicar el funcionamiento de una de las herramientas de desarrollo ms interesantes para el aficionado a la programacin de PICs. Se trata de un entorno de programacin integrado, que adems de permitir la creacin de programas en lenguaje assembler incorpora un muy completo BASIC, con soporte para dispositivos 1-wire, LCD, RS-232 y muchos ms. Otro aspecto destacable es la inclusin de una gran cantidad de mdulos de E/S que simulan exactamente lo que esta pasando en nuestro programa, incluidos un mdulo LCD, teclado, osciloscopio, displays de 7 segmentos entre otros.

Pantalla principalDebido a que se trata de un software concebido como un entorno, la integracin entre los diferentes mdulos que lo componen es completa y sin problemas. Una vez instalado el programa, el icono que lo representa aparecer en nuestro escritorio, y haciendo doble clic sobre el se abrir la pantalla principal del programa, que al menos hasta la versin sobre la que se desarrolla este tutorial (la 6.65) esta en ingles.

Antes de ver en que consiste cada opcin del men principal, vamos a analizar rpidamente cada seccin de esta pantalla. En la parte superior, y justo debajo de la barra de men tenemos tres cuadros de texto que nos muestran la ruta completa hacia el programa que tenemos cargado en el simulador (Program Location), el microcontrolador que hemos seleccionado para nuestro proyecto (Microcontroller) y la frecuencia de clock elegida (Clock Frequency). 1

Todos estos valores pueden ser cambiados, como veremos en el segundo capitulo, desde la barra de men. El recuadro que esta inmediatamente debajo del anterior nos muestra (cuando estamos corriendo una simulacin de nuestro programa) cual es la instruccin assembler en curso (Last Instruction) y cual ser la siguiente a ejecutar (Next Instruction):

Luego tenemos un cuadro con informacin relativa a la ejecucin del programa, en la que vemos instruccin a instruccin durante todo el tiempo en que estemos corriendo la simulacin, el valor que va tomando el contador de programa (PC o Program Counter), el registro de trabajo (W Register, por "working") y sobre la derecha la cantidad de instrucciones simuladas (Instructions Counter), la cantidad de ciclos de reloj transcurridos (Clock Cycles Counter) y el tiempo de ejecucin que llevara en realidad dicho programa (Real Time Duration). Cabe aclarar, que como en todo simulador, la relacin entre el tiempo real y el tiempo de simulacin varia dependiendo de los recursos de nuestro ordenador, y en general los programas simulados demoran mucho ms tiempo que el real en ejecutarse.

A continuacin, sobre la izquierda, vemos una lista de desplazamiento que contiene el valor de todos los registros especiales con los que cuenta el microcontrolador elegido. Esta lista varia, por supuesto, con cada microcontrolador, y en el momento de correr la simulacin va reflejando instruccin a instruccin el valor de cada timer, puerto, registro de estado, interrupciones, etc. Los valores se muestran en hexadecimal (Hex Value) y en binario (Binary Value). Cada registro se identifica mediante su direccin (Address) y tambin por el nombre con el que figura en la hoja de datos (Name).

2

Por ltimo, y a la derecha del cuadro anterior, tenemos el valor de todos los registros de propsito general (GPRs, o general purpose register). La lista tiene dos columnas, cada una indicando la direccin del registro (Addr.) y su valor en hexadecimal (Hex. Value):

El menLa mayora de las funciones de las que dispone esta herramienta estn agrupadas dentro del men principal de la aplicacin. Es de destacar que todos los mdulos que se pueden invocar desde aqu se abren en ventanas separadas, y pueden ser configuradas (como veremos) para que se siten permanentemente delante de las dems ventanas, de manera que no las perdamos de vista. Este es el men principal:

Como es costumbre en toda aplicacin de windows, la opcin File es la primera del men. Contiene solo dos comandos: Clear Memory (Limpiar memoria) que se encarga de eliminar de la memoria del simulador el programa que estuviese cargado, que puede ser invocada mediante las teclas CTRL+R; y Load Program (Cargar Programa), que nos lleva a un cuadro de dialogo tpico que nos permite seleccionar el archivo HEX que queremos simular. Esta funcin puede invocarse con CTRL+L. Dentro de la segunda opcin, Simulation, tenemos tres opciones que se encargan de manejar la simulacin en curso: Start, Step y Stop. La primera de ellas arranca la simulacin, la segunda se encarga de avanzar una instruccin (solo esta habilitada cuando en Rate hemos seleccionado el modo paso a paso) y la tercera detiene la simulacin. Es muy prctico utilizar F1, F2 y F3 para invocar estas opciones. Rate es el submen que determina el modo de ejecucin de la simulacin, brindando 6 posibilidades:

3

Estas son: Step By Step (paso a paso), Slow (Lenta), Normal (Normal), Fast (Rpida), Extremely Fast (muy rpida) y Ultimate (No Refresh) que es la mas rpida de todas, pero que no actualiza la pantalla principal del simulador. Esta opcin resulta muy til para "adelantar" partes del programa que sabemos que no tienen problemas. Todas pueden ser invocadas con CTRL+F1 a CTRL+F6, tal como se ve en la figura anterior. Tools es el submen encargado de invocar a cada uno de los mdulos que integran el simulador, y que veremos en detalle en captulos siguientes. Tal como se ve en la figura, la mayora de ellos se pueden activar mediante la combinacin de la tecla CTRL y alguna ms.

Desde Options (Opciones) tenemos acceso a un conjunto de alternativas de configuracin. Dedicaremos bastante espacio a cada una de ellas en los captulos correspondientes, pero podemos adelantar que las mas importantes y que debemos revisar en cada proyecto son Select Microcontroler (seleccionar microcontrolador) que nos permite elegir el modelo concreto de PIC a utilizar; Change Clock Frecuency (cambiar frecuencia de clock) y Configuration Bits (bits de configuracin) desde la que se puede elegir la funcin de algunos pines (Reset o I/O, etc), el tipo de oscilador a usar, etc. La ltima opcin de este submen permite cambiar los colores de la interfaz (Change Color Theme).

4

Las herramientasPIC SIMULATOR IDE posee una nutrida caja de herramientas. Estas se encuentran agrupadas en la opcin Tools del men principal, y a continuacin veremos en que consiste cada una de ellas. La primera es el visor de la memoria de programa (Program Memory Viewer), modulo que podemos invocar presionando CTRL-M en cualquier momento. Se lista la memoria completa, cuya extensin depender del microcontrolador que tengamos seleccionado, y se pueden ver tres columnas: direccin (Address), valor en hexadecimal de esa direccin (Hex. Value) y el valor en binario (Binary Value). Al igual que las dems herramientas, existe un check box que permite poner la ventana correspondiente siempre al frente (Always On Top).

La segunde herramienta disponible recibe el nombre de EEPROM Memory Editor, y como su nombre indica, nos permite modificar los valores almacenados en la memoria EEPROM del microcontrolador. El contenido de la EEPROM se lista en 16 columnas numeradas del 0 al 15, y por supuesto, su extensin depende del micro seleccionado. Haciendo click sobre cualquiera de los valores se puede cambiar su contenido, que se encuentra en formato hexadecimal.

Hardware Stack Viewer nos permite conocer el valor de cada uno de los niveles del stack (generalmente llamado pila en espaol). Esto puede resultar til para depurar los programas que tienen muchas subrutinas anidadas o cuando sospechamos que hay desbordamientos del stack. Adems de ver 5

el nivel de stack (Stack Level), el contenido en hexadecimal (Hex Value) y en binario (Binary Value), en la parte inferior de la ventana una etiqueta nos informa de cual es el nivel apuntado en cada paso de la simulacin.

La herramienta Microcontroller View es una de las mas tiles, ya que en una ventana separada (y que como las dems se puede poner en frente de todas) nos muestra un esquema del micro elegido, con el rotulo correspondiente a cada pin, y lo mas importante, el estado en cada momento de la simulacin de cada uno. En caso de ser un pin E/S nos muestra el estado (ON/OFF) que presenta, y si se trata de una referencia de voltaje muestra el valor asignado. Adems, en cada pin hay un botn que permite cambiar el estado presente en el (T, supongo que por "toggle", que significa "cambiar"), y los resultados se toman como entradas para la simulacin.

Existe tambin una vista alternativa del estado de los registros especiales, que pude resultar ms cmoda en algunos casos. Es la correspondiente a la opcin Alternative SFR Viewer, y muestra en columnas la direccin en hexa del registro, el nombre "de pila" del mismo (TMR0, PCL, STATUS, etc), y el valor del mismo, en hexadecimal y en binario. 6

PIC Disassembler es ni mas ni menos que un desensamblador, que nos brinda un texto con el contenido en assembler del programa cargado en la memoria del PIC SIMULATOR IDE. Este listado se genera independientemente del origen del programa, es decir, podemos obtener el cdigo a partir de un archivo ya compilado con cualquier compilador (con extensin .HEX) o a partir de un .HEX generado con el compilador BASIC incluido en el paquete. Se muestra, por cada instruccin, la direccin (Address), el opcode y la instruccin (instruction). Ideal para aprender assembler a partir de instrucciones BASIC, por ejemplo.

El manejador de "puntos de inspeccin" o Breakpoint Manager es una herramienta que permite definir hasta 10 puntos en los que la simulacin se interrumpir (luego podremos reanudar la ejecucin desde ese punto) para analizar con tranquilidad el estado de los registros, los puertos, etc. Hay un par de 7

opciones adicionales, como el botn que permite eliminar todos los breakpoints definidos (Clear All Breakpoints) o mantener siempre en foco el contador de programa (PC o Program Counter). El contenido de la ventana es el cdigo assembler en el mismo formato que comentamos en la herramienta anterior.

Adems de los diez puntos de parada anteriores, se pueden definir cinco puntos especiales, mediante la herramienta Special Breakpoints. La diferencia entre esta y la anterior herramienta (y lo que la hace tan especial) es que en este caso los puntos de inspeccin se fijan mediante una condicin (Break Condition) o por el estado de algn registro (Register Address). Los botones SET y DEL permiten habilitar y deshabilitar individualmente cada una de las condiciones.

La herramienta assembler tendr su capitulo propio, por que es aqu donde se escribe el cdigo en dicho lenguaje para luego compilarlo. 8

Al igual que el editor de assembler, el BASIC tendr varios captulos dedicados a el, ya que estudiaremos cada una de las instrucciones disponibles. Podemos adelantar que se trata de un editor bastante decente, con verificacin de sintaxis y coloreado de palabras reservadas y comentarios, y que la sintaxis del BASIC es compatible en un 90% con otros BASICs mas populares, como PBP o PROTON. Desde aqu podemos compilar y cargar en la memoria del simulador el archivo HEX resultante en un solo paso.

9

Las herramientas siguientes son las que podemos usar como "perifricos" del microcontrolador, para simular las E/S, o analizar su estado. La primera de este grupo es la llamada 8xLED Board que es ni mas ni menos que un grupo de 8 LEDs virtuales, a los que podemos asignar un puerto y un bit dentro de el, de manera que se enciendan o apaguen en tiempo real de acuerdo al estado de dichos pines al ejecutar la simulacin.

El Keypad Matrix es ni mas ni menos que un teclado matricial de 4 filas y cuatro columnas que podemos configurar con total flexibilidad para utilizarlo en nuestros proyectos simulados. Se puede elegir el pin de cada fila y columna, y dinmicamente, durante la simulacin, el estado de cada tecla. En los ejemplos de los captulos dedicados a la programacin usaremos esta herramienta a menudo. 10

El LCD Module es la versin virtual del tpico display LCD con controlador Hitachi que usamos en todos nuestros proyectos. Es posible configurar completamente su funcionamiento, mediante el botn Setup. Al presionarlo, la ventana aumenta su tamao y aparecen una serie de cuadros de seleccin desde donde podremos elegir el numero de filas y columnas del display, el color del mismo, a que puerto estn conectadas las lneas de datos y si son 4 u 8, y donde estn conectadas (puerto y pin) las lneas RS, R/W y E. Tambin se pueden configurar los tiempos de delay del display, para que su simulacin sea lo mas fiel posible a la realidad.

Graphical 128x64 LCD Module es el equivalente de la herramienta anterior, pero para simular LCDs grficos de 128x64 pixeles. Las opciones de configuracin tambin se esconden detrs del botn Setup, y son muy similares a las ya vistas, incorporndose la posibilidad de configurar el puerto y pin de las lneas CS1 y CS2.

11

Mediante las herramientas Hardware UART Simulation Interface, Software UART Simulation Interface y PC's Serial Port Terminal podremos simular una comunicacin va RS-232. Se trata de herramientas muy completas que tendrn su propio capitulo, por lo que momentneamente nos limitamos a mencionarlas.

12

Otras dos herramientas sumamente tiles para comprender que esta haciendo en cada momento el microcontrolador son el osciloscopio (Oscilloscope) de cuatro canales, con posibilidad total de configuracin de cada uno de ellos, y el Signal Generator (generador de seales) tambin de cuatro canales y con posibilidad de generar pulsos de periodo y relacin cclica ajustable. Por supuesto, habr captulos en que haremos uso de ellas.

13

No poda faltar el modulo con los displays LED de 7 segmentos, presentes en una gran cantidad de proyectos. En este caso, la herramienta 7-Segment LED Display Panel nos proporciona 4 dgitos completamente configurables (nuevamente mediante el botn Setup presente en cada uno de ellos), y podemos elegir el pin al que esta conectada cada uno de los segmentos, si son de nodo o ctodo comn, etc.

La ultima herramienta es una til lista con el valor de cada una de las variables presentes en nuestro programa. Recibe el nombre de Watch Variables (ver variables) y es una lista de texto donde en una columna aparece el nombre de la variable en cuestin y en otra su valor. Esta lista se actualiza constantemente durante la simulacin.

14