Ejemplo: simulación de circuito en GPsim
4 participantes
Página 1 de 1.
Ejemplo: simulación de circuito en GPsim
Este es un ejemplo de como simular un circuito en Gpsim, se trata de comprobar el funcionamiento de los comparadores en un pic16f877a.
Este es un pantallazo del circuito en GPsim
GPsim tiene un entorno gráfico muy básico y no se pueden dibujar los circuitos directamente en modo gráfico, hay que ir seleccionado y conectando componentes en la ventanita de izquierda, es un poco pesado pero es lo que hay... alguien con conocimientos de C++ se anima a mejorar eso???
Lo primero es cargar un archivo.cod o .cof, este archivo se genera al compilar tu proyecto en Piklab o donde lo hayas hecho.
El procedimiento para crear el circuito empieza por cargar una librería de módulos, para eso le damos al botón "Add Library" que está medio escondido, cargamos la librería libgpsim_modules.so , entoces vamos eligiendo componetes dándole a "Add module", aparece una lista y elegimos el que queramos, le damos un nombre y establecemos los valores.
Una vez creado cada componente se puede mover con el ratón y colocar en el sitio que quieras.
Luego hay que crear "nodos",... los pines de los componentes no se conectan directamente unos a otros, sino que se conectan a nodos, para conectar dos cosas, primero creas un nodo y luego conectas cada cosa al nodo.
Cuando se van creando nodos y haciendo conexiones se pueden ver las conexiones hechas dándole a "Trace all", entonces aparecen los "cables" en el dibujo.
Una vez hecho todo podemos guardar ese "circuito" dándole a "Save configuration".
Si abres ese archivo que has guardado (netlist.stc) verás algo como esto:
Si tratas de utilizar ese archivo de nuevo no funcionará... al menos a mí no me funciona, el problema es que los decimales no tienen que ir con comas sino con puntos, eso se soluciona rápido en tu editor de texto con la función reemplazar.
Otro fallo que da es con esos "cm_stimulus_"... esos no los hice yo... se los inventó el solo... hay que borrarlos.
Una vez arregladas esas cositas ese circuito se puede utilizar en otras simulaciones.
Como sugiere el mismo script al principio:
Puedes usar este archivo (netlist.stc) de esta manera:
gpsim -s mycode.cod -c netlist.stc
Si quieres añadir comandos puedes crear otro archivo .stc
y cargar este archivo desde ahí, algo como esto:
# ----------- myproject.stc ---------------
load s mycode.cod
frequency 12000000
load c netlist.stc
# -----------------------------------------
Entonces puedes cargar solamente este nuevo archivo:
gpsim -c myproject.stc
y usar netlist.stc para simular distintos programas en ese circuito.
Una vez que conoces un poco el sistema lo más facil es escribir un script con copia/pega y cambia valores y así puedes crear cualquier circuito con los componentes que trae GPsim, incluyendo:
-Interruptores
-Pulsadores
-Resistencias (en realidad puede comportarse como varias cosas)
-Puertas lógicas
-Led
-display led 7 segmentos
-Lcd 2x20
-Lcd gráfico
-Generador de pulsos
-Encoder
-TTL377
-Usart
-I2C
También se pueden crear nuevos módulos...
Videos de ejmplo:
Con el módulo lcd: https://www.youtube.com/watch?v=qO_jmBfRouU
Con 7 segmentos: https://www.youtube.com/watch?v=URxCh7nsmiU
Este es un pantallazo del circuito en GPsim
GPsim tiene un entorno gráfico muy básico y no se pueden dibujar los circuitos directamente en modo gráfico, hay que ir seleccionado y conectando componentes en la ventanita de izquierda, es un poco pesado pero es lo que hay... alguien con conocimientos de C++ se anima a mejorar eso???
Lo primero es cargar un archivo.cod o .cof, este archivo se genera al compilar tu proyecto en Piklab o donde lo hayas hecho.
El procedimiento para crear el circuito empieza por cargar una librería de módulos, para eso le damos al botón "Add Library" que está medio escondido, cargamos la librería libgpsim_modules.so , entoces vamos eligiendo componetes dándole a "Add module", aparece una lista y elegimos el que queramos, le damos un nombre y establecemos los valores.
Una vez creado cada componente se puede mover con el ratón y colocar en el sitio que quieras.
Luego hay que crear "nodos",... los pines de los componentes no se conectan directamente unos a otros, sino que se conectan a nodos, para conectar dos cosas, primero creas un nodo y luego conectas cada cosa al nodo.
Cuando se van creando nodos y haciendo conexiones se pueden ver las conexiones hechas dándole a "Trace all", entonces aparecen los "cables" en el dibujo.
Una vez hecho todo podemos guardar ese "circuito" dándole a "Save configuration".
Si abres ese archivo que has guardado (netlist.stc) verás algo como esto:
- Código:
# This file was written by gpsim.
# You can use this file for example like this:
# gpsim -s mycode.cod -c netlist.stc
# If you want to add commands, you can create another .stc file
# and load this file from it. Something like this:
# ----------- myproject.stc ---------------
# load s mycode.cod
# frequency 12000000
# load c netlist.stc
# -----------------------------------------
# You can then just load this new file:
# gpsim -c myproject.stc
# and use netlist.stc whenever you save from the breadboard.
#
# Processor position:
# Module libraries:
module library libgpsim_modules.so
# Modules:
p16f877a.CONFIG=$ff
p16f877a.WarnMode=true
p16f877a.SafeMode=true
p16f877a.UnknownMode=true
p16f877a.BreakOnReset=true
p16f877a.BreakOnInvalidRegisterRead=true
p16f877a.BreakOnInvalidRegisterWrite=true
p16f877a.frequency=4000000,000000000
p16f877a.xpos=216,0000000000000
p16f877a.ypos=180,0000000000000
module load led led1
led1.xpos=384,0000000000000
led1.ypos=240,0000000000000
module load led led2
led2.xpos=384,0000000000000
led2.ypos=180,0000000000000
module load switch switch1
switch1.state=false
switch1.Ropen=100000000,0000000
switch1.Rclosed=1,000000000000000
switch1.xpos=60,00000000000000
switch1.ypos=180,0000000000000
module load switch switch2
switch2.state=false
switch2.Ropen=100000000,0000000
switch2.Rclosed=1,000000000000000
switch2.xpos=60,00000000000000
switch2.ypos=288,0000000000000
module load pullup pullup1
pullup1.resistance=1000,000000000000
pullup1.capacitance=0,000000000000000
pullup1.voltage=2,000000000000000
pullup1.xpos=276,0000000000000
pullup1.ypos=84,00000000000000
module load pullup pullup2
pullup2.resistance=1000,000000000000
pullup2.capacitance=0,000000000000000
pullup2.voltage=5,000000000000000
pullup2.xpos=144,0000000000000
pullup2.ypos=60,00000000000000
module load pullup pullup3
pullup3.resistance=1000,000000000000
pullup3.capacitance=0,000000000000000
pullup3.voltage=5,000000000000000
pullup3.xpos=216,0000000000000
pullup3.ypos=480,0000000000000
module load pulldown pulldown1
pulldown1.resistance=100,0000000000000
pulldown1.capacitance=0,000000000000000
pulldown1.voltage=0,000000000000000
pulldown1.xpos=36,00000000000000
pulldown1.ypos=396,0000000000000
# Connections:
node nA2
attach nA2 pullup2.pin porta2 switch1.A cm_stimulus_3
node nA3
attach nA3 pullup3.pin porta3 switch2.A cm_stimulus_4
node nB6
attach nB6 led1.in portb6
node nB7
attach nB7 led2.in portb7
node nGnd
attach nGnd pulldown1.pin switch1.B switch2.B
node nUp
attach nUp pullup1.pin porta0 porta1 cm_stimulus_1 cm_stimulus_2
# End.
Si tratas de utilizar ese archivo de nuevo no funcionará... al menos a mí no me funciona, el problema es que los decimales no tienen que ir con comas sino con puntos, eso se soluciona rápido en tu editor de texto con la función reemplazar.
Otro fallo que da es con esos "cm_stimulus_"... esos no los hice yo... se los inventó el solo... hay que borrarlos.
Una vez arregladas esas cositas ese circuito se puede utilizar en otras simulaciones.
Como sugiere el mismo script al principio:
Puedes usar este archivo (netlist.stc) de esta manera:
gpsim -s mycode.cod -c netlist.stc
Si quieres añadir comandos puedes crear otro archivo .stc
y cargar este archivo desde ahí, algo como esto:
# ----------- myproject.stc ---------------
load s mycode.cod
frequency 12000000
load c netlist.stc
# -----------------------------------------
Entonces puedes cargar solamente este nuevo archivo:
gpsim -c myproject.stc
y usar netlist.stc para simular distintos programas en ese circuito.
Una vez que conoces un poco el sistema lo más facil es escribir un script con copia/pega y cambia valores y así puedes crear cualquier circuito con los componentes que trae GPsim, incluyendo:
-Interruptores
-Pulsadores
-Resistencias (en realidad puede comportarse como varias cosas)
-Puertas lógicas
-Led
-display led 7 segmentos
-Lcd 2x20
-Lcd gráfico
-Generador de pulsos
-Encoder
-TTL377
-Usart
-I2C
También se pueden crear nuevos módulos...
Videos de ejmplo:
Con el módulo lcd: https://www.youtube.com/watch?v=qO_jmBfRouU
Con 7 segmentos: https://www.youtube.com/watch?v=URxCh7nsmiU
arcachofo- Participante Activo
- Mensajes : 91
Fecha de inscripción : 26/11/2008
Re: Ejemplo: simulación de circuito en GPsim
Hola esta muy buena la explicacion pero como cargas un archivo .cof en el gpsim
maigke- Asiduo del Foro
- Mensajes : 210
Fecha de inscripción : 12/04/2009
Edad : 47
Localización : Mexico
Re: Ejemplo: simulación de circuito en GPsim
Pues solo tienes que abrir Gpsim, vas a "File/Open" y eliges el archivo que quieras abrir.
si quieres usarlo en algún script como en elejemplo anterior pues donde ponga "mycode.cod" pones el nombre del archivo.cof que quieras abrir.
Para abrir Gpsim normalmente pues tecleas "gpsim" en una terminal o añades un elemento al menú, lanzador al escritorio o panel o como veas.
Una vez que abras Gpsim puedes abrir el archivo que quieras y crear circuitos (si lo necesitas) pero para los circuitos se acaba antes escribiendo scripts.
Para simular el código y ver los registros y las salidas del pic no necesitas crear ningún circuito ni hacer scripts ni nada, solo abrir el programa, cargar el archivo y darle a run o paso a paso, crear breakpoints y todo eso.
si quieres usarlo en algún script como en elejemplo anterior pues donde ponga "mycode.cod" pones el nombre del archivo.cof que quieras abrir.
Para abrir Gpsim normalmente pues tecleas "gpsim" en una terminal o añades un elemento al menú, lanzador al escritorio o panel o como veas.
Una vez que abras Gpsim puedes abrir el archivo que quieras y crear circuitos (si lo necesitas) pero para los circuitos se acaba antes escribiendo scripts.
Para simular el código y ver los registros y las salidas del pic no necesitas crear ningún circuito ni hacer scripts ni nada, solo abrir el programa, cargar el archivo y darle a run o paso a paso, crear breakpoints y todo eso.
no encuentro el entorno grafico del Gpsim
instalé desde el gestor de aplicaciones Gpsim , Gpsim-doc y Gpsim-dev y no aparece en el menú aplicaciones, intenté abrirlo con Alt+F2 Gpsim y no hace nada, luego abrí una consola y escribí Gpsim y aparece:
gpsim - the GNUPIC simulator
version: Release 0.24.0
type help for help
**gpsim>
--- que puedo hacer para trabajarlo con entorno gráfico, como aparece en muchos tutoriales. que me hace falta o que estoy haciendo mal?
gracias!
gpsim - the GNUPIC simulator
version: Release 0.24.0
type help for help
**gpsim>
--- que puedo hacer para trabajarlo con entorno gráfico, como aparece en muchos tutoriales. que me hace falta o que estoy haciendo mal?
gracias!
pinolicious- Nuevo Usuario
- Mensajes : 4
Fecha de inscripción : 09/03/2010
Re: Ejemplo: simulación de circuito en GPsim
Saludos
Para trabajar en el modo grafico de gpsim, debes primero tener compilado tu programa. Este proceso te genera un archivo de extension .cod el cual, usa gpsim, para simular
Pasos a seguir
Abre una consola
y ve a la ruta donde tienes el archivo .cod
y teclea lo siguiente
gpsim -s miArchivoCompilado.cod
Espero te sea útil esta breve respuesta; me disculpo por no colocar una imagen pero en mi chamba esta restringido el acceso a internet
Saludos desde Mx
Para trabajar en el modo grafico de gpsim, debes primero tener compilado tu programa. Este proceso te genera un archivo de extension .cod el cual, usa gpsim, para simular
Pasos a seguir
Abre una consola
y ve a la ruta donde tienes el archivo .cod
y teclea lo siguiente
gpsim -s miArchivoCompilado.cod
Espero te sea útil esta breve respuesta; me disculpo por no colocar una imagen pero en mi chamba esta restringido el acceso a internet
Saludos desde Mx
maigke- Asiduo del Foro
- Mensajes : 210
Fecha de inscripción : 12/04/2009
Edad : 47
Localización : Mexico
de nuevo molestando
Muchas gracias Maigke
hice como me dijiste y este fue el resultado: arriba viene que se puede compilar con *.cof o con *.cod y yo uso mplab con ccs para compilar y no me compila un .cod
$ gpsim -s Miarchivo.cof
gpsim - the GNUPIC simulator
version: Release 0.24.0
type help for help
**gpsim> Warning, you need to upgrade to gputils-0.13.0 or higher
(Your assembler version is )
p is not a valid processor.
(try 'processor list' to see a list of valid processors.
p is not a valid processor.
(try 'processor list' to see a list of valid processors.
unrecognized processor in the program file
the program file type does not contain processor
you need to specify processor with the processor command
**gpsim>
----- De antemano muchas gracias ayudan a que usuarios novatones como yo nos alejemos mas fácil de windows :p
hice como me dijiste y este fue el resultado: arriba viene que se puede compilar con *.cof o con *.cod y yo uso mplab con ccs para compilar y no me compila un .cod
$ gpsim -s Miarchivo.cof
gpsim - the GNUPIC simulator
version: Release 0.24.0
type help for help
**gpsim> Warning, you need to upgrade to gputils-0.13.0 or higher
(Your assembler version is )
p is not a valid processor.
(try 'processor list' to see a list of valid processors.
p is not a valid processor.
(try 'processor list' to see a list of valid processors.
unrecognized processor in the program file
the program file type does not contain processor
you need to specify processor with the processor command
**gpsim>
----- De antemano muchas gracias ayudan a que usuarios novatones como yo nos alejemos mas fácil de windows :p
pinolicious- Nuevo Usuario
- Mensajes : 4
Fecha de inscripción : 09/03/2010
Re: Ejemplo: simulación de circuito en GPsim
Hola pinolicious.
Hace tiempo que no uso Gpsim, pero me suena que hay algún problema con gpsim en Ubuntu 10.04: alguno de los paquetes que usa gpsim dejaron de distribuirse en Ubuntu 10.04 y entonces la gui no funciona.
El paquete es: libgtkextra-x11-2.0-1
Creo que se puede compilar y tener la gui funcionando, pero también puedes usar gpsim desde piklab o ktechlab.
Googlea un poco con "gpsim ubuntu 10.04" a ver que hay...
Saludos
EDITADO 100/02/2011:
Posible solución al tema de Gpsim sin GUI:
https://pic-linux.forosactivos.net/t359-gpsim-con-gui-en-ubuntu-1004#1793
Hace tiempo que no uso Gpsim, pero me suena que hay algún problema con gpsim en Ubuntu 10.04: alguno de los paquetes que usa gpsim dejaron de distribuirse en Ubuntu 10.04 y entonces la gui no funciona.
El paquete es: libgtkextra-x11-2.0-1
Creo que se puede compilar y tener la gui funcionando, pero también puedes usar gpsim desde piklab o ktechlab.
Googlea un poco con "gpsim ubuntu 10.04" a ver que hay...
Saludos
EDITADO 100/02/2011:
Posible solución al tema de Gpsim sin GUI:
https://pic-linux.forosactivos.net/t359-gpsim-con-gui-en-ubuntu-1004#1793
Temas similares
» USART (PIC-PC) PIC16F87x
» Gpsim: modulos de simulación: display 7 seg., LCD
» No enlaza el pic con el circuito
» No enlaza el pic con el circuito
» Conectando Ktechlab con un circuito real.
» Gpsim: modulos de simulación: display 7 seg., LCD
» No enlaza el pic con el circuito
» No enlaza el pic con el circuito
» Conectando Ktechlab con un circuito real.
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.