Tutorial de gEDA

Imagen/borrador-avatar.png

Esta sección es un esbozo en construcción. Se aprecian tus aportes y paciencia ;)

Introducción

Este documento es uno de los resultados del trabajo que se realiza en el grupo de estudio electronix, describe en forma general gEDA y muestra como usar algunas herramientas a través de ejemplos y no pretende ser un reemplazo a la documentación oficial.

gEDA es una suite de aplicaciones de software libre EDA (Electronic Design Automation) usada para diseño de circuitos eléctricos, captura esquemática, simulación, creación de modelos (prototyping) y producción.

Vale la pena nombrar algunas características que hacen interesante a gEDA, alrededor del desarrollo de la suite hay bastante gente que esta publicando versiones constantemente y la comunidad de usuarios es amplia, por lo cual se puede obtener bastante ayuda al iniciar con alguna de las aplicaciones de este paquete de software; en varios puntos de este documento iremos nombrando algunas más.

¿Qué es gEDA?

gEDA es una suite de aplicaciones de software libre EDA (Electronic Design Automation) usada para diseño de circuitos eléctricos, captura esquemática, simulación, creación de modelos (prototyping) y producción.

gEDA incluye aplicaciones de software para varios propósitos en el diseño de circuitos eléctricos, entre las que se encuentran un administrador de proyectos, un capturador esquemático, un administrador de atributos, un generador de netlist capaz de crear hasta 20 formatos diferentes, simulación análoga y digital, una herramienta para el diseño de circuitos impresos (PCB), simuladores de circuitos análogos y digitales, compiladores/simuladores para el lenguaje de descripción de hardware Verilog HDL, visualizadores de formas de onda, generador de lista de materiales (BOM - Bill Of Materials) y algunas otras utilidades.

Herramientas que proporciona gEDA

Para entender como están integradas las aplicaciones en la suite gEDA debemos tener claro que gEDA no funciona como un entorno integrado de desarrollo, en una sola ventana, gEDA esta diseñada con la tradición de las aplicaciones de los sistemas operativos tipo UNIX, cada una hace una tarea en especifico y la hace bien. Esto es una de las ventajas al trabajar con gEDA porque en cualquier momento del proceso podemos hacer un alto y mirar que esta sucediendo, además los archivos usados en gEDA son texto plano lo que nos permite tener aun más control sobre el diseño que estemos realizando.

gEDA/gaf

gaf es una colección de herramientas en la que se incluyen un instalador gráfico, un administrador de proyectos, un capturador esquemático, una librería de símbolos, un editor de atributos, un generador de netlist, un probador de símbolos, algunas otras utilidades que complementan las anteriores, un paquete de documentación de las aplicaciones y otro de ejemplos de esquemáticos y PCB's.

gaf es el acrónimo de "gschem and friends".

Administrador de proyectos

geda es el administrador de proyectos gráfico, por comodidad en la lectura de este documento de ahora en adelante me referiré con la palabra gEDA (g en minúscula y EDA en mayúscula) a la suite en general y con geda al administrador de proyectos gráfico.

Por medio de esta herramienta es posible organizar los archivos y llamar algunas otras herramientas. En un principio el administrador de proyectos va a ser útil para ubicarse en la forma como se trabaje con gEDA.

Para los que están usando por primera vez geda la interfaz puede parecer un poco confusa, pero esta aplicación es lo más parecido a la integración de las aplicaciones de gEDA en una sola ventana.

Capturador esquemático

gschem es el programa de captura esquemática de la suite, por medio de él podemos introducir componentes gráficos para luego realizar distintas operaciones sobre el archivo que el capturador genera. Al referirnos a captura esquemática hablamos del diseño y dibujo de circuitos usando un computador. Así por medio de dibujos se representa el funcionamiento de cierto componente o compuerta.

gEDA cuenta con una librería de símbolos con mas de 1400 símbolos, todos bajo GPL, que hace que gschem sea muy poderoso.

Editor de atributos

gattrib es el editor de atributos de la suite gEDA. Su función radica en crear, a partir de los archivos esquemáticos (.sch), la lista de componentes del diseño. Así es posible adicionar, modificar o eliminar los atributos de los componentes sin tener que estar en el capturador esquemático, para luego guardar esas modificaciones y todo esto sin tener que estar en el capturador esquemático.

Por lo tanto su utilidad se encuentra cuando se necesita cambiar los atributos de muchos componentes a la vez ya que evita la molestia de cambiar atributos componente a componente.

Generador de netlist

gnetlist es un programa que genera los 'netlist'(forma como se encuentran conectados los componentes dentro de una estructura y las señales que propicia esa interconexión) tomando como argumentos el archivo del capturador esquemático (.sch) y los archivos de los símbolos empleados (.sym). Actualmente el programa puede generar netlist en formatos como spice, verilog o VHDL entre otros.

Simuladores

gnucap

Gnucap es un simulador de circuitos de propósito general, puede realizar análisis no lineal en CD y transitorio, análisis de Fourier y análisis CA. Aunque soporta modelos de spice no esta basado en spice.

GNUCAP es acrónimo de GNU Circuit Analysis Package

El sitio oficial:

gnucap en geda:

ngspice

Simulador de circuitos basado en los simuladores de código abierto Spice3f5, Cider1b1 y Xspice.

Icarus

Compilador para el lenguaje de descripción de hardware Verilog.

GSpiceUI

Frontend gráfico para gnucap y ngspice.

Visores de forma de onda

Gtkwave

Es un visor de formas de onda "digitales". Formatos de forma de onda soportados:

gwave

Visor de formas de onda "análogas".

Puede leer archivos bianrios o ascii producidos por HSpice de análisis en el tiempo, AC, archivos "raw" escritos por Spice2, Spice3, o ngspice, y archivos de análisis en el tiempo de el simulador CAzM.

Instalación

Compile el paquete guile-1.6.7-sdb.tar.gz que viene en el iso. Si usa debian instale los siguientes paquetes:

luego compile guile-gtk-0.40.tar.gz que viene también en el iso, instale la ultima versión de gwave, actualmente gwave-20051222

Usar la version 20060606 de la página de descargas de gEDA http://www.geda.seul.org/download.html

En debian instalar los siguientes paquetes:

Y lo de costumbre ./configure; make; make install

Printed Circuit Board

PCB

Editor de PCB.

gerbv

Visor de archivos Gerber.

Otros

Flujo de diseño con gEDA

http://www.jcoppens.com/soft/howto/geda-spice/img/block.png

Ejemplo

Rectificador de media onda

rect_mo.png

Este es el esquema del circuito de un rectificador de media onda que vamos a simular y que he denominado rect_mo, explicaré desde cómo poner los componentes en el capturador esquemático hasta la visualización de la simulación.

Empezamos con gschem para crear el circuito. gschem se puede usar desde los menús o con atajos de teclado. Para acceder a la lista de elementos presionamos la tecla i, seleccionamos el elemento y lo arrastramos hasta la ventana principal (esquemática), para aumentar el tamaño con z, para disminuirlo con shift-z, y para mostrar todo el esquema ve; rotar elementos er y mover elementos m.

El circuito consta de una fuente sinusoidal, que encontramos en la librería spice como vsin-1.sym, que tiene como valores nivel_dc (offset), amplitud, y frecuencia; un diodo común que encontramos en la librería diode como diode-1.sym y le asignamos el valor de un modelo de diodo que se añadirá más adelante (value=1N4004); una resistencia de carga de la librería analog como resistor-1.sym y una referencia a tierra gnd-1.sym (el simbolo ground.sym es diferente de gnd-1.sym y al usarlo gnetlist no lo interpreta con el fin deseado) que se encuentra en la librería power. Ahora para añadir el modelo del diodo, añadimos al circuito el componente gnucap-model-1.sym que encontramos en la librería spice, y definimos los valores de Model name y File como 1N4004 y 1N4004.mod respectivamente, donde File es el nombre del archivo del modelo de spice que definimos más adelante, y 1N4004 es el valor que le dimos al diodo. La etiqueta del gnucap-model-1.sym puede llevar cualquier nombre (por defecto A1).

Decargamos, creamos o modificamos el modelo del diodo, para D1, tenemos un modelo de un Diodo 1N4004, podemos crear un archivo y añadir las siguientes líneas correspondientes al modelo, y guardar el archivo como 1N4004.mod:

*SRC=1N4004;DI_1N4004;Diodes;Si; _fcksavedurl="1N4004;DI_1N4004;Diodes;Si;" _fcksavedurl="1N4004;DI_1N4004;Diodes;Si;"  400V  1.00A  3.00us   Diodes, Inc. diode
.MODEL 1N4004 D  ( IS=76.9p RS=42.0m BV=400 IBV=5.00u
+ CJO=39.8p  M=0.333 N=1.45 TT=4.32u )

Generamos el archivo de conexiones "netlist" correspondiente al circuito así:

gnetlist -v -s -g spice-sdb -o rect_mo.net rect_mo.sch

Accedemos a gnucap y verificamos que todo esté bien con el comando list:

$ gnucap rect_mo.net
gnucap> list
*vvvvvvvv  Included SPICE model from 1N4004.mod vvvvvvvv
*SRC=1N4004;DI_1N4004;Diodes;Si;  400V  1.00A  3.00us   Diodes, Inc. diode
.model  1N4004  d  (  tnom= 27.  is= 76.9p  rs= 0.042  n= 1.45  tt= 4.32u  cjo= 39.8p  pb= 1.  mj= 0.333  egap= 1.11  xti= 3.  fc= 0.5  bv= 400.  ibv= 5.u)
*+()
*^^^^^^^^  End of included SPICE model from 1N4004.mod ^^^^^^^^
*
*==============  Begin SPICE netlist of main design ============
D1  2  1  1N4004  area= 1.
R1  1  0  10.K
V1  2  0  SIN  offset= 0.  amplitude= 120.  frequency= 60.  delay= 0.  damping= 0.
.END

Definimos los parámetros de la simulación y simulamos guardando los datos en un archivo con los siguientes comandos:

gnucap> print tran V(V1) V(R1) I(D1)
gnucap> tran 0 50m 600n > sim_rect_mo.dat

donde print tran V(V1) V(R1) I(D1), indica al simulador que queremos hacer un análisis en DC para obtener las señales de la tensión de la fuente (V1), tensión en la carga (R1) y el flujo de corriente en el diodo D1; y la línea tran 0 50m 600n > sim_rect_mo.dat le indica al simulador de gnucap, que el tiempo de simulación será de 0 segundos a 50 milisegundos con incrementos de 600 nanosegundos en el muestreo de la señal, y que los datos obtenidos de la simulación, serán guardados en el archivo sim_rect_mo.dat. Luego de almacenar los datos de la simulación en un archivo, podemos salir de la aplicación gnucap con el comando exit.

Para visualizar los resultados de la simulación, podemos hacer uso de gwave pasándole como parámetro el nombre del archivo. gwave abrirá 2 ventanas, una de ellas contiene las señales que definimos en los parámetros de la simulación, y la otra contiene por defecto dos paneles gráficos, para observar las señales obtenidas, debemos arrastrar los botones de la ventana que contiene las señales, hasta los paneles gráficos de la segunda ventana, en caso de que necesitemos más de 2 paneles gráficos para visualizar las señales obtenidas, seleccionamos Add Panel del menú View de la ventana de paneles gráficos, como es el caso de ésta simulación.

$ gwave sim_rect_mo.dat

sim_rect_mo.png

gschem -> gsch2pcb -> PCB

Este tutorial trata del proceso que va desde la captura del circuito impreso usando gschem hasta la creación de los archivos Gerber usando PCB, para lo cual utilizaremos gsch2pcb como interfase entre estos dos programas. Esta parte del tutorial es funcional, por lo que se propone generar resultados lo más rápido posible y no pretende ser una referencia completa a gschem o PCB, lo que si pretende es mostrar con un ejemplo simple los pasos que se deben seguir.

Ejemplo Simple

Vamos a generar un diseño, lo más fácil y rápido posible, desde su diagrama esquemático hasta tu placa de circuito impreso, que nos sirva para ver algunos aspectos avanzados. Se trata del mismo ejemplo que puedes encontrar en la página oficial http://geda.seul.org/wiki/geda:gsch2pcb_tutorial , que hemos intentado traducir convenientemente, añadiendo algunas cosas y quitando otras.

Creación del archivo del Proyecto

En general cuando uno realiza un proyecto, este consta de un circuito con muchos sub-circuitos, por ejemplo (es sólo para aclarar el contexto) si nuestro proyecto es una placa madre esta trae el "circuito de refresco de la ram" que es independiente del "circuito del bus de datos", o del "circuito de la tarjeta gráfica" (en el caso de que sea integrada), todos estos susb-circuitos de nuestro proyecto se podrían conectan entre sí, pero es innecesario que para su estudio se muestren en un mismo diagrama esquemático, por esta razón se acostumbra a "dividir para reinar" y realizamos un diagrama esquemático por cada uno de estos circuitos, el arte consiste en saber dividir bien, lo que en algunos casos puede resultar evidente, pero en otros no. Nuestro proyecto va consistir de dos sub-circuitos, por eso creamos un archivo que contenga las siguientes líneas:

schematics one.sch two.sch
output-name board

y nombramos este archivo, para este ejemplo le llamaremos proyectoX. Resulta autoexplicativo que en los archivos one.sch y two.sch codificaremos los disgrámas esquemáticos de nustros sub-circuitos, y que el archivo board contendrá el resultado de nuestro proyecto, esta es la forma de juntar los distintos diagramas esquemáticos de un mismo proyecto.

Ahora bien, como maña personal, lo anterior lo realizo con el comando nano que no es más ni menos que un buen editor para el terminal, y lo haría así: primero ejecutaría en un terminal (el signo $ significa en notacion linux, que lo que viene a continuación es un comando y ojo que no hay que escribir el signo $)

$ nano proyectoX

, luego escribiría su contenido y apretaría Ctrl+o, Intro para guardar el archivo, y luego Ctrl+x para salir de nano.


ProyectoTale/Tutoriales/geda (last edited 2008-04-20 14:39:20 by localhost)