Ejemplo: simulación de circuito en GPsim

Ir abajo

Ejemplo: simulación de circuito en GPsim

Mensaje por arcachofo el Vie 19 Dic 2008 - 4:15

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:
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
avatar
arcachofo
Participante Activo
Participante Activo

Mensajes : 91
Fecha de inscripción : 26/11/2008

Volver arriba Ir abajo

Re: Ejemplo: simulación de circuito en GPsim

Mensaje por maigke el Lun 10 Ago 2009 - 21:55

Hola esta muy buena la explicacion pero como cargas un archivo .cof en el gpsim Laughing
avatar
maigke
Asiduo del Foro
Asiduo del Foro

Mensajes : 210
Fecha de inscripción : 12/04/2009
Edad : 40
Localización : Mexico

Volver arriba Ir abajo

Re: Ejemplo: simulación de circuito en GPsim

Mensaje por Pikitin el Lun 10 Ago 2009 - 23:39

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.

Pikitin
veterano
veterano

Mensajes : 623
Fecha de inscripción : 26/11/2008

http://linuxmicros.blogspot.com/

Volver arriba Ir abajo

no encuentro el entorno grafico del Gpsim

Mensaje por pinolicious el Miér 1 Sep 2010 - 13:44

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!

pinolicious
Nuevo Usuario
Nuevo Usuario

Mensajes : 4
Fecha de inscripción : 09/03/2010

Volver arriba Ir abajo

Re: Ejemplo: simulación de circuito en GPsim

Mensaje por maigke el Miér 1 Sep 2010 - 17:31

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
avatar
maigke
Asiduo del Foro
Asiduo del Foro

Mensajes : 210
Fecha de inscripción : 12/04/2009
Edad : 40
Localización : Mexico

Volver arriba Ir abajo

de nuevo molestando

Mensaje por pinolicious el Miér 1 Sep 2010 - 23:14

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

pinolicious
Nuevo Usuario
Nuevo Usuario

Mensajes : 4
Fecha de inscripción : 09/03/2010

Volver arriba Ir abajo

Re: Ejemplo: simulación de circuito en GPsim

Mensaje por Pikitin el Jue 2 Sep 2010 - 10:23

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:
http://pic-linux.forosactivos.net/t359-gpsim-con-gui-en-ubuntu-1004#1793

Pikitin
veterano
veterano

Mensajes : 623
Fecha de inscripción : 26/11/2008

http://linuxmicros.blogspot.com/

Volver arriba Ir abajo

Re: Ejemplo: simulación de circuito en GPsim

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.