domingo, 15 de abril de 2012

Simulación de Circuitos - Proteus

En el desarrollo de mi proyecto PIC (que esta casi terminado), estuve buscando software para simular mi circuito, para poder hacer las pruebas necesarias antes de armarlo físicamente. Al buscar me tope con programas como Oregano, Ktechlab y otros, pero ninguno realmente me funciono correctamente en Ubuntu, por lo que me incliné por buscar alguno para Windows, en lo que encontre Proteus.

Proteus

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, y los módulos VSM y Electra.



El 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. Los diseños realizados en Isis pueden ser simulados en tiempo real, mediante el módulo VSM, asociado directamente con ISIS.

Una de las prestaciones de Proteus, integrada con ISIS, es VSM, el Virtual System Modeling (Sistema Virtual de Modelado), una extensión integrada con ISIS, con la cual se puede simular, en tiempo real, con posibilidad de más rapidez; todas las características de varias familias de microcontroladores, introduciendo nosotros mismos el programa que controlará el microcontrolador y cada una de sus salidas, y a la vez, simulando las tareas que queramos que lleve a cabo con el programa. Se pueden simular circuitos con microcontroladores conectados a distintos dispositivos, como motores, lcd´s, teclados en matriz, etc. Incluye, entre otras, las familias de PIC's PIC10, PIC12, PIC16, PIC18, PIC24 y dsPIC33. ISIS es el corazón del entorno integrado PROTEUS. Combina un entorno de diseño de una potencia excepcional con una enorme capacidad de controlar la apariencia final de los dibujos.

Ejemplo 

La demostración de Proteus no permite guardar los diseños que se hagan, imprimirlos, o diseñar nuestros propios microcontroladores, pero lo que sí es posible es realizar nuestros propios diseños, y correr un determinado programa en ellos, para poder simular su funcionamiento antes de pasarlos a un circuito, ahorrándonos el tener que reprogramar el PIC miles de veces.

Para comenzar a hacer nuestro diseño abrimos el programa, y nos aparecera una ventana con una cuadricula en donde podemos crear nuestro diseño. Para agregar componentes, en la parte de la izquierda es posible buscar el dispositivo que necesitemos, dando click en la letra P:


Esto abrirá una ventana donde podemos buscar el componente que deseemos, por ejemplo escribimos PIC16F628A, y debe mostrar las opciones disponibles. 


Como se puede ver solo aparece uno, que es el que buscamos, ahora damos Ok, y lo colocamos en donde deseemos en la cuadricula de diseño. Al ver el componente podemos notar que no cuenta con los pines 5 y 14, que son los de tierra y corriente respectivamente, esto es porque el programa automáticamente los "conecta" a tierra y corriente, por lo cual no necesitamos.

De esta manera podemos colocar los componentes que deseemos, entonces si buscamos agregar un display, podemos buscarlo de la misma forma y colocarlo en el diseño, acomodándolo a nuestro placer. Lo siguiente es conectarlos, para hacer esto necesitamos tener seleccionado el cursor, entonces damos click a un pin de un componente, y movemos el cursor por donde deseemos que pase el cable, hasta conectarlo a donde deseemos. De esta forma podemos crear un diseño como el siguiente:

(Nota: No incluye resistencias para facilitar el diseño, pero es importante incluirlas al momento de armar el circuito)

Ahora esto se ve muy bien, pero de que nos sirve simplemente tener el diseño?. Con este diseño podemos implementar código que ya tengamos programado en él, para efectivamente simular el circuito antes de armarlo, con algunas limitaciones claro. En mi caso, escribí el programa en MikroBasic, como había mencionado en un post anterior, entonces ahí mismo compile el programa, lo que genera un archivo .asm, que puede ser usado por ISIS de Proteus para correr dicho código en nuestro diseño simulado. Para hacer esto, suponiendo que ya tenemos nuestro archivo .asm, damos click arriba donde dice Source, seleccionamos Add/Remove Source files... y buscamos el archivo .asm. Despúes, asumiendo que el código funcione correctamente con el circuito, podemos simularlo seleccionando el botón de play en la parte inferior izquierda:


Haciendo esto, debería funcionar correctamente la simulación. En mi caso, por el hecho de tener que hacer retardos cada milisegundo para la multiplexación, la simulación daba problemas con el CPU, por lo cual tuve que aumentar el retardo para poder mostrar el contenido de los displays. 

La simulación resulto exitosa, como se puede ver:


Obviamente, estos cambios son para poder visualizarlos en el programa, pero al ver que funciono correctamente, debo ajustar los valores de nuevo para el momento de programarlo en el circuito, donde correrá normalmente.


Referencias:

3 comentarios:

  1. jojojojo probé como seis programas diferentes y no pude hacer funcionar ninguno, gracias n_n

    ResponderEliminar
  2. Van 6 para el lab de integrados.

    ResponderEliminar
  3. Como guardas la simulacion de proteus en un archivo gif??

    ResponderEliminar