Está en la página 1de 23

Ttulo: Compilador C CSS y Simulador PROTEUS para Microcontroladores PIC Autor: Eduardo Garca Breijo 2008

MARCOMBO, EDICIONES TCNICAS 2008 MARCOMBO, S.A. Gran Via de les Corts Catalanes 594 08007 Barcelona (Espaa)

Quedan rigurosamente prohibidas, sin la autorizacin escrita de los titulares del copyright, bajo las sanciones establecidas en las leyes, la reproduccin total o parcial de esta obra por cualquier medio o procedimiento, incluidos la reprografa y el tratamiento informtico, as como la distribucin de ejemplares mediante alquiler o prstamo pblicos.

ISBN: 978-84-267-1495-4

Impreso en D.L.:

iv

1. ISIS de PROTEUS VSM

Captulo 1
ISIS de PROTEUS VSM
1.1 Introduccin
El entorno de diseo electrnico PROTEUS VSM de LABCENTER ELECTRONICS (www.labcenter.co.uk) ofrece la posibilidad de simular cdigo microcontrolador de alto y bajo nivel y, simultneamente, con la simulacin en modo mixto de SPICE. Esto permite el diseo tanto a nivel hardware como software y realizar la simulacin en un mismo y nico entorno. Para ello, se suministran tres potentes subentornos como son el ISIS para el diseo grco, VSM (Virtual System Modelling) para la simulacin y el ARES para el diseo de placas (gura 1).

Figura 1. Entorno de trabajo PROTEUS (fuente: Labcenter Electronics)

Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC

1.2 Captura electrnica: entorno grfico ISIS


ISIS es un potente programa de diseo electrnico que permite realizar esquemas que pueden ser simulados en el entorno VSM o pasados a un circuito impreso ya en el entorno ARES. Posee una muy buena coleccin de libreras de modelos tanto para dibujar, simular o para las placas. Adems, permite la creacin de nuevos componentes, su modelizacin para su simulacin e, incluso, la posibilidad de solicitar al fabricante (Labcenter Electronics) que cree un nuevo modelo. Sin entrar profundamente en como utilizar dicho programa (requerira un libro slo para ello), a continuacin se explican las bases para dibujar cualquier circuito electrnico. El programa ISIS posee un entorno de trabajo (gura 2) formado por distintas barras de herramientas y la ventana de trabajo.

Fi Figura 2. El entorno d t b j d l programa ISIS 2 t de trabajo del

Varios de estos mens tambin se pueden utilizar con la ayuda del botn derecho del ratn. Al pulsarlo en cualquier parte del entorno de trabajo aparece un men contextual donde se pueden ir obteniendo los distintos submens de trabajo (gura3).

1. ISIS de PROTEUS VSM

Figura 3 Submens d t b j del b t d 3. S b de trabajo d l botn derecho d l ratn h del t

Para dibujar, lo primero es colocar los distintos componentes en la hoja de trabajo. Para ello, se selecciona el modo componentes (gura 4) y, acto seguido, realizar una pulsacin sobre el botn P de la ventana de componentes y libreras (gura 5).

Fi Figura 4 M d componentes 4. Modo t

Fi Figura 5 B t 5. Boton i k pick

Tras activar el botn P se abre la ventana para la edicin de componentes (gura 6) donde se puede buscar el componente adecuado y comprobar sus caractersticas. Al localizar el componente adecuado se realiza una doble pulsacin en l, de tal forma que aparezca en la ventana de componentes y libreras (gura 7). Se puede realizar esta accin tantas veces como componentes se quieran incorporar al esquema. Una vez nalizado el proceso se puede cerrar la ventana de edicin de componentes.

Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC

Figura 6. Ventana para la edicin de componentes 6

Figura 7. Los componentes aadidos

Para situar un componente en el esquema tan slo debemos seleccionarlo de la lista. Al hacerlo se puede comprobar su orientacin (tal como se representar en el esquema) en la ventana de edicin (gura 8). Si deseamos modicar la rotacin o la reexin del componente podemos acceder a ello a travs de la barra de herramientas correspondiente (gura 9). Hacindolo de esta forma, todos los componentes de la lista tendrn la misma orientacin (si se desea orientar un nico componente deberemos hacerlo una vez ya situado en el esquema).

1. ISIS de PROTEUS VSM

Figura 8 Seleccin y orientacin ra 8. del componente

Figura 9 Barra de rotacin y reflexi 9. reflexin

Ahora slo falta realizar una pulsacin sobre la ventana de trabajo y se colocar el componente. El cursor del ratn se convierte en un lpiz blanco (gura 10). Se pueden colocar varios componentes del mismo tipo simplemente realizando varias pulsaciones. Para terminar de colocar un componente se debe seleccionar otro componente de la lista o pasar a otro modo de trabajo.

Figura 10. C i 0 Cursor en el modo de colocacin i

Es importante activar la herramienta de referencia automtica (Real Time Annotation). De esta forma, los componentes tendrn una referencia distinta y de forma consecutiva; en los circuitos integrados con varios componentes encapsulados tambin se referenciarn segn dicho encapsulado (U1A, U1B, etc.). Esta herramienta se activa o desactiva desde la opcin de men TOOLS Real Time Annotation. Una vez situados los componentes en el rea de trabajo se pueden mover, al pasar por encima del componente el cursor se convierte en una mano (gura 11) y al realizar una pulsacin, el cursor se transforma en una mano con una cruz, indicando que se puede mover el componente (quedan seleccionados al ponerse en rojo) y se puede arrastrar (atencin: si se vuelve a realizar otra pulsacin del botn izquierdo se editan las caractersticas del componente). Tambin se puede cambiar su orientacin utilizando los comandos de rotacin y reexin a travs de una pulsacin del botn derecho del ratn (gura 12) y se pueden eliminar con dos pulsaciones con el botn derecho sobre ellos (o con el botn derecho y el comando Delete Objet).

Figura 11. El cursor en modo de seleccin y mover i

Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC

Figura 12. Men contextual de un componente activado por el botn derecho del ratn xtual

Todas ests acciones se pueden realizar individualmente o de forma colectiva, es decir, se pueden agrupar varios componentes a travs de pulsaciones consecutivas sobre ellos (manteniendo la tecla <Control> pulsada) o dibujando una ventana con el botn izquierdo y arrastrndola sobre los mismos (gura 14).

Fi Figura 13. Los componentes en el 13 L t l rea d t b j de trabajo

Una vez seleccionado el conjunto de componentes (se marcan todos en rojo) debe mos utilizar la herramienta de grupo (gura 15), que tambin aparece tras pulsar el botn derecho. Con esta herramienta se pueden copiar, mover, rotar o eliminar los componentes seleccionados.

1. ISIS de PROTEUS VSM

Figura 14. Seleccin de varios componentes

Figura 15 La herramienta de grupo ura 15.

Para unir los componentes con cables hay que situarse en los extremos de los terminales, el cursor se convierte en un lpiz verde (gura 16). Ahora se pueden ejecutar dos acciones o ir marcando el camino hasta el destino con distintas pulsaciones (gura 17) o realizar, directamente, una pulsacin en el destino y dejar que ISIS realice el camino. Para ello, debe estar activada la herramienta TOOLS Wire Autorouter.

Figura 16. Inicio de cable ra 16

Figura 17. Circuito a mano 17

Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC

Las uniones entre cables se pueden realizar de forma automtica. Para ello, mientras se traza un camino debemos realizar una pulsacin sobre el cable objeto de la unin elctrica (gura 18). Tambin se pueden realizar de forma manual mediante el modo de unin (gura 19); en este modo tan slo hay que ir haciendo pulsaciones sobre los puntos donde deseamos realizar la unin.

Figura 18. Unin elctrica entre c 8 cables

Figura 19. Modo de u 9 unin

Se puede modicar el trazado de los cables. Para ello, se realiza una pulsacin sobre el cable, en ese instante el cursor se convierte en una doble echa (gura 20) y se puede arrastrar el ratn para modicar el cable.

Fi Figura 20 Mover los cables 20. M l bl

Tambin se pueden utilizar buses para las uniones multicable. Los buses permiten conectar varios terminales entre s utilizando un nico elemento (gura 21); en este caso, el cursor se convierte en un lpiz azul (gura 22). Pero para distinguir los distintos cables que forman parte del bus y distribuirlos en la entrada y en la salida se deben etiquetar mediante labels. En el caso de los cables se indicar una etiqueta nica LCD0, LCD1, etc., y al bus una etiqueta conjunta segn el formato LCD[0..3] que indique el nombre y la cantidad de cables que lo forman.

Figura 21. Cableado por bus 21

1. ISIS de PROTEUS VSM

Figura 22. Cursor en modo de trazado de bus

El etiquetado tambin permite unir cables virtualmente. Para ello, tan slo es necesario que los dos cables se llamen igual aunque no estn conectados entre s. Para etiquetar cables o buses se utiliza el modo label (gura 23). Al activar este modo y realizar una pulsacin sobre un cable o bus se abre una ventana donde podemos introducir la etiqueta, adems de seleccionar posicin, orientacin y estilo (gura 24).

Figura 23 Modo labe a 23. label

Figura 24 Ventana de edicin de etiquetas gura 24.

Otro modo de unin virtual es a travs de terminales. Al activar el modo terminal (gura 25) se pueden seleccionar distintos tipos de terminales, entre ellos el utilizado por defecto (default). Al utilizar este terminal en varios componentes y darle el mismo nombre en todos ellos se consigue una unin elctrica.

Fi Figura 25. Modo terminal 25 M d t i l

Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC

Figura 26 Unin elctrica a travs de terminales 26.

Mediante este modo tambin se pueden colocar las masas y alimentaciones del circuito utilizando las opciones Ground y Power (gura 26). De esta forma se puede nalizar el circuito (gura 27).

Figura 27. Circuito cableado 27

Tan slo queda modicar las caractersticas de los componentes que lo requieran, por ejemplo modicando el valor de los componentes pasivos. Para ello, se selecciona un componente realizando una pulsacin con el botn derecho, aparece el men contextual y se selecciona la opcin EDIT PROPERTIES; tambin se puede utilizar el modo edicin (gura 28) en el cual tan slo es necesario hacer una pulsacin con el botn izquierdo sobre el componente; en este modo el cursor se convierte en una echa (gura 29). Al ejecutar esta accin se abre la ventana de edicin donde se pueden cambiar las caractersticas de los componentes (gura 30), por ejemplo la resistencia de 10K a 180 ohm. Tambin se puede editar directamente la referencia o el valor de un componente si la pulsacin se realiza encima de estos elementos.

10

1. ISIS de PROTEUS VSM

Figura 28 Modo edic 28. edicin

Figura 29 C i 29. Cursor en modo edicin d di i

Figura 30. Ventana de edicin de un componente

Con esto quedara nalizado el circuito electrnico (gura 31). Pero en el caso de los sistemas basados en un microcontrolador an quedan por modicar las caractersticas del mismo microcontrolador.

Figura 31. El esquema completo

11

Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC

En el caso de los microcontroladores, la ventana de edicin aporta mucha informacin (gura 32). Tal vez lo ms importante es que permite cargar en el micro controlador el archivo de programa (*.HEX) generado en la compilacin; tambin se puede modicar la frecuencia de reloj (por lo tanto no es necesario el uso de cristales externos en la simulacin), cambiar la palabra de conguracin y otras propiedades avanzadas.

Figura 32. Ventana de edicin de un micro 32

1.3 Depuracin de los sistemas basados en PICmicro


La caracterstica ms importante del PROTEUS VSM es la capacidad de depurar programas fuente de distintos lenguajes de programacin. Adems de aceptar el archivo de programacin Intel Hex (HEX), tambin admite cheros IAR UBROF (D39), ByteCraft COD (COD), Microchip Compatible COF (COF) y Crownhill Proton Plus (BAS). Al utilizar estos archivos se puede abrir una ventana de cdigo fuente llamada SOURCE CODE mediante la cual se puede seguir el programa fuente lnea a lnea de cdigo. Adems permite visualizar elementos internos del PIC como son la memoria de programa, la memoria de datos RAM o la EEPROM, los registros especiales (FSR) y la pila (Stack). Adems, el entorno PROTEUS VSM permite compilar programas fuente en cdigo ensamblador directamente. Para ello, se utiliza el comando SOURCE (gura 33).

12

1. ISIS de PROTEUS VSM

Figura 33 Generador de cdigo de ficheros fuent a 33. fuente

En el caso del compilador CCS C, despus de compilar se generan, entre otros, los archivos *.HEX y *.COF, los cuales se pueden utilizar para trabajar con el entorno PROTEUS VSM. Para ejecutar el programa desde ISIS se debe abrir la ventana de edicin del microcontrolador (gura 32) y en el tem PROGRAM FILE se puede indicar el chero de cdigo fuente utilizado. Adems, en esta ventana se puede indicar la frecuencia de trabajo con la opcin PROCESSOR CLOCK FREQUENCY (debemos observar que para la simulacin no es necesario colocar elementos externos de oscilacin en el PIC, tan slo hacen falta en caso de realizar la placa). En la opcin ADVANCED PROPERTIES podemos habilitar o congurar muchos ms elementos: congurar el wacthdog, habilitar avisos de desbordamiento de pila, accesos no correctos a memoria, etc. Una vez cargado el microcontrolador con el programa fuente, se puede proceder a la simulacin del circuito empleando la barra de simulacin (gura 34). Esta barra se compone de la opcin MARCHA, PASO A PASO, PAUSA y PARADA.

Figura 34. Barra de simulacin

Con la opcin MARCHA la simulacin se inicia (el botn se vuelve verde) y funciona en modo continuo. La simulacin NO es en tiempo real y depender de la carga de trabajo del PC. En la barra de estado se indica la carga de la CPU del PC (a mayor carga menos real ser la simulacin) y el tiempo de ejecucin; este tiempo indica el tiempo que tardara, en la realidad, el circuito en realizar un proceso (por ejemplo esto implica que, dependiendo de la carga de trabajo de la CPU, un tiempo de 1 s en el circuito puede signicar varios minutos de simulacin).

Fi Figura 35 Barra de estado en l simulacin 35. B d t d la i l i

13

Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC

La opcin STOP para totalmente la simulacin mientras que PAUSE la para de forma momentnea permitiendo hacer uso de las herramientas de depuracin. La opcin PASO a PASO permite trabajar en tramos de tiempo predenidos y, adems, permite utilizar las herramientas de depuracin. Esta opcin est ligada a la conguracin de la animacin (gura 36): SYSTEM SET ANIMATION OPTIONS SINGLE STEP TIME donde se puede denir el incremento de tiempo que se desea que pase cada vez que se pulsa esta tecla.

Figura 36. Set animation options

En este cuadro de dilogo tambin se pueden cambiar los siguientes parmetros: FRAMES PER SECOND: numero de veces que la pantalla de ISIS se refresca en un segundo (por defecto 20). TIMESTEP PER FRAME: indica el tiempo de simulacin por cada uno de los frames; lo ideal es que sea el valor inverso del escogido en la opcin FRAMES PER SECOND. ANIMATIONS OPTIONS: permite habilitar la visualizacin de las sondas de tensin y corriente, mostrar los niveles lgicos en los pines, mostrar el nivel de tensin en los cables mediante colores o mostrar la direccin de la corriente en los cables mediante echas. VOLTAGE/CURRENT RANGES: permite determinar el umbral de tensin (V) y corriente para utilizar en la visualizacin de las correspondientes ANIMATIONS OPTIONS. En este punto se puede simular (y animar) un sistema con el PICmicro (gura 37). Lo ms interesante de la simulacin con microcontroladores es la utilizacin de las herramientas de depuracin. Es decir, visualizar mediante ventanas las distintas partes internas del microcontrolador: memoria de programa, memoria de datos, pila, etc. La mayor parte de estas ventanas slo se pueden visualizar durante una PAUSA.

14

1. ISIS de PROTEUS VSM

Fi Figura 37. Una simulacin en marcha 37 U i l i h

Desde el men DEBUG (gura 38) tambin se puede iniciar la simulacin pero pensando en la depuracin. Con la opcin START/RESTAR DEBUGGING se puede iniciar la simulacin pero haciendo una pausa para ver las distintas ventanas de depuracin. Tambin se puede ejecutar el programa directamente con la opcin EXECUTE, EXECUTE WITHOUT BREAKPOINT o EXECUTE FOR SPECIFIED TIME que permite ejecutar directamente un programa, ejecutarlo sin puntos de ruptura (en el caso de tenerlos) y ejecutarlo en un tiempo concreto.

Figura 38. El men DEBUG antes de la simulacin 8 simulac

15

Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC

Desde esta ventana tambin se puede reinicializar la memoria EEPROM del microcontrolador mediante RESET PERSISTENT MODEL DATA. Al producirse una pausa, el men DEBUG se modica (gura 39) mostrando las correspondientes herramientas de depuracin.

Figura 39 El men DEBUG en una pausa ura 39.

Estas herramientas son (gura 40): SIMULATION LOG: Mensajes resultantes de la simulacin. WATCH WINDOWS: Ventana de visualizacin de posiciones de memoria. Permite aadir la que el usuario desea ver. PIC CPU REGISTERS: Muestra los registros FSR del PIC. PIC CPU DATA MEMORY: Muestra la memoria de datos (RAM). PIC CPU EPROM MEMORY: Muestra la memoria de datos (EPROM). PIC CPU PROGRAM MEMORY: Muestra la memoria de programa. PIC CPU STACK: Muestra la pila.

16

1. ISIS de PROTEUS VSM

Fi Figura 40. Ventanas d d 40 V t de depuracin i

La ventana WATCH WINDOW es la ms verstil puesto que se pueden aadir variables y modicar su visualizacin. Al pulsar el botn derecho sobre la ventana se abre un men contextual (gura 41). Con ADD ITEMS (name/address) se aade la variable a visualizar directamente con el nombre predenido (gura 42) en el PIC o, en el caso de variae bles propias del programador, se b pueden visualizar por direccin p (gura 43), donde se le indica el ( nombre, la direccin en hexaden cimal, el tipo de dato (byte, word, c etc.) y el formato de visualizacin e (binario, decimal, etc.). El tipo de ( dato y el formato tambin se pued de cambiar desde DATA TYPE y d D DISPLAY FORMAT.

F Figura 41. Men contextual de W WATCH WINDOWS

17

Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC

Con WATCHPOINT CONDITION se pueden habilitar puntos de ruptura mediante condiciones sobre las distintas variables (gura 44); se indica la variable, la mscara de la condicin (NONE, AND, OR, XOR) y el tipo de condicin (NONE, ON CHANGE, EQUALS, etc.).

Fi Figura 42 Add b Name 42. by N

Figura 43 Add by Address 43.

Figura 44 Puntos de ruptura 44.

Hay una ventana de depuracin que slo se visualiza si se ha incorporado un chero COD o COF al microcontrolador, se trata de la ventana CPU SOURCE CODE (gura 45). Con esta ventana se puede seguir la simulacin lnea a lnea del archivo de cdigo fuente. En esta ventana (tambin en el men DEBUG) estn disponibles unos botones de control (gura 46).

18

1. ISIS de PROTEUS VSM

Figura 45. La ventana CPU Source code 45

Figura 46. simulacin Fig ra 46 Los controles para la sim lacin

Simulacin en modo continuo, no permite ver las ventanas de depuracin. Permite ejecutar una instruccin; si es una subrutina o una funcin la ejecuta directamente. Permite ejecutar una instruccin; si es una subrutina o una funcin entra en ella. Trabaja en modo continuo hasta que encuentra un retorno de cualquier subrutina. Trabaja en modo continuo hasta que se encuentra con un punto de ruptura. Habilita o deshabilita los puntos de ruptura.

19

Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC

Hay una ventana de diagnstico que facilita la depuracin, almacenando los errores, mensajes de diagnstico y avisos producidos durante el proceso de simulacin (gura 47). En la barra de estado (zona inferior del rea de trabajo) se muestra un aviso (gura 48); con una pulsacin en el aviso aparece la ventana de diagnosis.

Figura 47. Mensajes de diagnstico de la simulacin

Se pueden congurar las opciones de esta herramienta desde la opcin DEBUG CONFIGURE DISGNOSTIC (gura 49). En la ventana se muestran los componentes del esquema susceptibles de un diagnstico en la simulacin y las diferentes posibilidades de diagnstico y el tiempo de diagnstico (gura 50).

Fi Figura 48. Mensajes de la herramienta de diagnstico 48 M j d l h i d di i

Figura 49 La configuracin de diagnsti a 49. diagnsticos

20

1. ISIS de PROTEUS VSM

Figura 50. Opciones de configuracin 50

Tras la simulacin aparecen los diferentes resultados del anlisis; en el tem SOURCE aparece indicado el dispositivo fuente del anlisis y tras una pulsacin se puede acceder a l (gura 51).

Figura 51. Resultado del diagnstico

El listado de nodos y patillas se pueden encontrar con la ayuda del DESIGN EXPLORER (a sta opcin podemos acceder a travs de distintas opciones: comando DESIGN, botn derecho, etc.). En su ventana de trabajo se muestran todos los nodos y patillas que forman el circuito (gura 52).

21

Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC

Figura 52. La ventana Design Explorer 52

22