Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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).
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).
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).
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.
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).
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.
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 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).
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.
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.
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.
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.
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.
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).
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.
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).
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
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.
11
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.
12
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.
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).
13
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.
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
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.
15
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.
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
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.
17
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.).
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
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
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.
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).
20
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).
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
22