Documente Academic
Documente Profesional
Documente Cultură
Facultad de Ingeniería
Escuela de Ingeniería Eléctrica
Por:
Por:
_________________________________
Ph.D. Jorge Arturo Romero Chacón
Profesor Guía
_________________________________ _________________________________
Ing. José Miguel Páez Jiménez Ing. Luis Felipe Córdoba Morales
Profesor lector Profesor lector
ii
DEDICATORIA
que aunque la distancia nos puede separar de los que más queremos, el amor nos une en el
A mi padre, por brindarme todo su apoyo, amor y comprensión en estos años, y por
motivándome a mantener siempre una actitud positiva ante cualquier problema y no ser
conformista con el mundo que nos rodea, buscando siempre la innovación y la felicidad.
A mi hermano, por ser mi principal motivo para dar un buen ejemplo y por hacerme
sentir tan orgulloso desde ahora al ver el hombre bueno en que se está convirtiendo y el
A mi tía Sandra y mi abuela Virgita, por tratarme como un hijo más y sacrificarse
tanto por mí, buscando alcanzar la meta no encomendada de hacerme sentir más cerca de
A mi novia, por ayudarme a crecer como persona y apoyarme siempre con sus
iii
RECONOCIMIENTOS
A Don Jorge Romero por darme la oportunidad de realizar este proyecto, además de
A los ingenieros Don José Miguel Páez y Don Luis Felipe Córdoba por apoyarme
iv
ÍNDICE GENERAL
ÍNDICE GENERAL......................................................................................... v
2.1.1 Descripción................................................................................................................... 5
2.2 Herramientas......................................................................................................... 6
2.3.1 Descripción................................................................................................................. 11
v
CAPÍTULO 3: Instalación de paquetes ....................................................... 13
vi
8.2 Recomendaciones ................................................................................................ 90
BIBLIOGRAFÍA ............................................................................................ 91
vi
i
ÍNDICE DE FIGURAS
motor gnucap....................................................................................................................... 10
ii
Figura 4.1. Acceso a gschem. ............................................................................................. 25
ix
Figura 4.21. Configuración de resistencia en Oregano. .................................................. 45
Figura 5.1. Secuencia de formatos y archivos para obtener símbolo en gEDA. ........... 50
Figura 6.4. Respuesta pasabajos y pasabandas para un filtro del MAX274.[3] ............. 64
x
Figura 6.6. Modelo para subcircuito RY. .......................................................................... 65
Figura 6.14. Respuesta en frecuencia esperada de la aplicación típica del MAX274. [3]
.............................................................................................................................................. 71
Figura 6.15. Configuración para probar los filtros individualmente. [3] ........................ 72
Figura 6.16. Respuesta en frecuencia obtenida del “Test Circuit A” del MAX274. ..... 73
Figura 6.24. MF10 como filtro pasabajos de segundo orden, fc=1khz. ......................... 82
xi
Figura 6.25. Configuración utilizada para probar MF10. [4] .......................................... 82
Figura 6.27. Resultado de simulación del MF10 como filtro de segundo orden. .......... 84
Figura 6.28. Respuesta normalizada para varios filtros de segundo orden en función
de Q. [4].................................................................................................................................. 84
xi
i
ÍNDICE DE TABLAS
xi
ii
RESUMEN
Este proyecto pretende servir como una guía de instalación y puesta a punto de
esto con la finalidad de brindar una alternativa a las tradicionales herramientas privativas
que suelen estar fuera del alcance de la mayoría de estudiantes y usuarios en general debido
a sus elevados precios. Esto se logró desarrollando dicha guía para los programas Oregano
Además se desarrolló una guía de uso de dichos paquetes donde se aprende a dibujar y
asignación de sus respectivos modelos para lograr una simulación exitosa. Además se hizo
una breve comparación de dichas herramientas libres con la aplicación TINA que se utiliza
último punto se probaron los programas de código abierto simulando en ellos dos modelos
originales para los filtros integrados MF10 y MAX274. Como resultado todo este proyecto
determinó que las herramientas de código abierto poseen un gran potencial, principalmente
para el diseño y simulación de circuitos electrónicos, además de otras opciones que posee,
alcanzando el mismo nivel en algunos aspectos que aplicaciones privativas como TINA.
xi
v
CAPÍTULO 1: Introducción
electrónicos entraña gastos muy elevados en el pago de licencias para poder utilizar dichas
herramientas.
En el caso de las personas que no pueden asumir este tipo de gastos, deben recurrir
ocasiones los lleva a violar los derechos de autor al conseguir versiones completas de los
código abierto capaces de sustituir los programas que normalmente se utilizan y que no son
libres ni gratuitos.
investigación que tuviera como objetivo principal el identificar, configurar y probar las
del proyecto era utilizar herramientas de código abierto, fue lógico pensar en utilizar un
1
sistema operativo que se rigiera bajo la licencia de software libre, obteniendo una
alternativa totalmente libre y gratuita para cualquier persona con acceso a una computadora
Una vez que se tomó todo esto en cuenta, se pudo pensar en objetivos más
suite integral que permita tanto la simulación y diseño de circuitos electrónicos. Además, se
funcionamiento. Para lograr esto se pensó en simular tres circuitos integrados poco usados
en la suite creada, de los cuales al menos un circuito integrado sea modelado por primera
vez.
detallara los pasos a seguir para la instalación y puesta a punto de la suite integrada,
incluyendo todos los requisitos de los distintos paquetes a ser instalados así como varios
ejemplos del uso de la suite. Además, se incluyó el procedimiento utilizado para poder
modelar nuevos dispositivos que fueran compatibles con las herramientas de código abierto
utilizadas.
2
1.1 Objetivos
Identificar, configurar y probar las herramientas de código abierto usadas para el diseño
circuitos electrónicos.
Configurar las herramientas anteriores de tal forma que constituyan una suite integrada.
Probar la suite integrada con la simulación de tres circuitos integrados poco usados, con
Escribir una guía de usuario para la instalación y puesta a punto de la suite integrada,
1.2 Metodología
elegir para la elaboración del proyecto debían ser lo más completas posibles, es decir, que
3
Posterior a esto se procedió a realizar la instalación de los diferentes paquetes y sus
que se pudo conocer las ventajas y limitantes de dichos paquetes como herramientas para la
simulación y diseño de circuitos electrónicos. Una vez que se aprendieron a utilizar los
Una vez que se logró utilizar los modelos de PSpice correctamente en las
poco comunes como lo son el MF10 que consiste en un filtro capacitor conmutado y el
MAX274 que es un filtro analógico integrado. Se probaron en circuitos con alguna función
en específico y se compararon con los datos que brindan los fabricantes para verificar su
4
CAPÍTULO 2: Herramientas libres disponibles
2.1.1 Descripción
El proyecto gEDA nació con el fin de crear una suite completa bajo la licencia GPL
automatización de diseño electrónico. Estas herramientas sirven para distintas tareas, ya sea
ya que este proyecto es más como una confederación de programas que se complementan
La ventaja de que gEDA sea una suite y no una aplicación única es que le permite al
usuario poder escoger la aplicación que más desee utilizar para cada tarea, de manera que
se brinda una libertad que no se tiene en las aplicaciones tradicionales. Gracias a esta
de gEDA por otra que prefiera más, convirtiendo a gEDA en una aplicación muy versátil. O
igualmente, los encargados del mantenimiento del proyecto gEDA pueden fácilmente
además de generar cierta confusión en usuarios que intentan usar la suite por primera vez.
5
En general, las herramientas que componen el proyecto gEDA son las siguientes:
2.2 Herramientas
Las herramientas presentadas a continuación son las más básicas y necesarias para
poder llevar a cabo las tareas más comunes en el diseño de circuitos electrónicos.
2.2.1 gschem
utiliza para facilitar de manera gráfica el trabajo con esquemáticos de circuitos, símbolos de
6
El formato de los esquemáticos usados en gschem es .sch y el formato para los
pero de igual forma se puede ampliar agregando símbolos creados por el usuario de la
forma que se explicará más adelante en este mismo documento. Vale la pena aclarar que los
manera inmediata es con los archivos que modelan dichos dispositivos. Estos archivos se
7
pueden crear o también se pueden descargar de las páginas de los fabricantes. El
procedimiento para realizar los modelos y adjuntarlos a los símbolos se explicará más
adelante.
hechos en gschem o cualquier otro paquete que genere archivos en formato .sch
(esquemático), .ckt (circuito), .cir (circuito) y .net (netlist). Se vuelve una herramienta muy
Esta herramienta se vuelve muy versátil al poder utilizar dos motores de simulación
distintos, donde ngspice es un motor basado en el motor de simulación original que utilizó
simulación que ngspice. Entre las opciones que posee gnucap y que ngspice no tiene
corriente eléctrica, potencia eléctrica y resistencia eléctrica en cada dispositivo y nodo del
circuito. Además de poder simular para los modos de Fourier y Quiescent, y presentando la
Otra característica que posee el programa gspiceui es que facilita una ventana donde
muestra todos los pasos que se van ejecutando y que normalmente se tendrían que hacer
simulación. Además, en esta misma ventana se pueden visualizar y modificar los archivos
que se van generando (.cir, .ckt, .sch y .net), además del archivo original que se utilizó para
modificaciones consideradas a último momento. Y por último, se cuenta con un botón que
9
Figura 2.3. Gwave graficando la simulación de un LM555 en modo astable usando el motor gnucap.
astable. En el lado derecho de la figura se puede observar donde se encuentran todas las
paneles donde se graficarán los resultados. Lo único que se tiene que hacer para graficar
dichas variables es arrastrarlas de la ventana derecha hacia los paneles del lado izquierdo.
En el caso de la Figura 2.3 se puede observar que se cuenta con dos paneles disponibles
para agregar variables, pero también se puede aumentar o disminuir esta cantidad de
paneles.
10
2.3 Oregano
2.3.1 Descripción
electrónicos (Figura 2.4), a diferencia de gEDA que consiste en una suite de aplicaciones
para llevar a cabo las mismas tareas. Cuenta con una interfaz amigable para el diseño y
descripción del circuito a simular. Provee una amplia librería de símbolos incluyendo
sdfssafsafsdf
11
componentes lineales, CMOS, TTL, amplificadores operacionales y mucho más.
describen dichos dispositivos utilizan formato .model y los esquemáticos guardados por
Además permite simular los circuitos dibujados siempre y cuando se cuente con el
análisis de Fourier. Puede elegir entre varias opciones de simulación, generar y editar el
listado de nodos (netlist) y utilizar de puntas de prueba. Oregano soporta como motores de
Al observar la Figura 2.4 y 2.5 se puede notar que Oregano realmente posee lo
necesario para poder crear esquemáticos y simularlos, sin caer en una innecesaria
12
CAPÍTULO 3: Instalación de paquetes
(cuyo nombre código es Jaunty Jackalope) usando una cuenta de usuario con privilegios de
administrador. Dicha distribución estaba recién instalada a la hora de instalar la suite gEDA
y Oregano para poder garantizar que se tomaran en cuenta todas las dependencias de dichos
Se diseñó esta guía con la intención de que sea útil y clara para personas que no se
14
2) Una vez dentro del Gestor de paquetes Synaptic dar clic en el botón “Buscar”. Este se
15
4) Buscar entre los resultados de búsqueda el paquete “geda” y marcarlo para instalar
dando clic derecho sobre el paquete, tal como se muestra en la Figura 3.5.
5) Seguidamente se mostrará una ventana que avisa que es necesario instalar otros
paquetes requeridos por el paquete gEDA. Estos paquetes son llamados “dependencias”
y son necesarios para el buen funcionamiento del programa, así que se debe dar clic en
16
Figura 3.6. Marcar paquetes requeridos por gEDA.
6) Repetir los pasos del 2 al 5 para el paquete “gspiceui” (GNU Spice GUI).
7) Para que la instalación se haga efectiva dar clic en el botón “Aplicar” del Gestor de
17
8) Una última ventana de confirmación aparece (Figura 3.8), dar clic en “Aplicar”.
18
10) Seguidamente los paquetes descargados se instalarán automáticamente como se observa
en la Figura 3.10.
19
3.2 Instalación de Oregano
Al igual que con la suite gEDA, la instalación del programa Oregano implica la
instalación del motor de simulación gnucap. Ver sección 3.3 para la instalación de ngspice.
2) Una vez dentro del Gestor de paquetes Synaptic dar clic en el botón “Buscar”. Este se
4) Buscar entre los resultados de búsqueda el paquete “oregano” y marcarlo para instalar
dando clic derecho sobre el paquete, tal como se hizo con el paquete “geda” en la
Figura 3.5.
5) Seguidamente se mostrará una ventana que avisa que es necesario instalar las
dependencias requeridas por el paquete Oregano, así que se debe dar clic en “Marcar”
6) Para que la instalación se haga efectiva dar clic en el botón “Aplicar” del Gestor de
7) Una última ventana de confirmación aparece (Figura 3.8), dar clic en “Aplicar”.
20
9) Seguidamente los paquetes descargados se instalarán automáticamente como se observa
en la Figura 3.10.
Synaptic. Por lo que es necesario descargar su código fuente desde la página en internet
igual que las demás, precisa de tener acceso a una cuenta con privilegios de administrador.
Para este caso específico el nombre usuario de la cuenta que se usó fue “usuario”, por lo
“Escritorio” es “/home/usuario/Escritorio”.
“.tar.gz” y descargarlo en el Escritorio de Ubuntu (en este caso el nombre del archivo
descargado es “ng-spice-rework-19.tar.gz”).
21
a. Este se encuentra ubicado en “Sistema >> Administración >> Gestor de
4) Repetir los pasos del 2 al 5 del procedimiento de instalación de Oregano para los
6) Luego acceder al programa “Terminal” por medio de “Aplicaciones >> Accesorios >>
22
7) Una vez dentro de la Terminal (Figura 3.13), digitar “cd /home/usuario/Escritorio”.
8) Luego digitar “tar -xvzf ng-spice-rework-19.tar.gz” y esperar unos segundos hasta que
11) Digitar “./configure” y esperar. Si por algún motivo apareciera un mensaje diciendo
23
b. Borrar la carpeta que se creó en el Escritorio al realizar el paso 8.
entrada de comandos.
12) Digitar “make” y esperar varios minutos. Aguardar pacientemente, ya que este paso
Con esto quedará instalado el motor de simulación ngspice y se podrá utilizar tanto
24
CAPÍTULO 4: Guía de uso de aplicaciones
El uso de la suite gEDA podría dividirse en dos etapas básicas: el dibujo del
(gspiceui). A continuación se describe el uso básico de estas dos aplicaciones para poder
>> Electrónica >> gEDA Schematic Editor” como lo muestra la Figura 4.1.
disponible en gschem.
26
Donde la numeración de la Figura 4.3 corresponde a lo siguiente:
1. Archivo nuevo.
2. Abrir archivo.
3. Guardar.
4. Deshacer.
5. Rehacer.
6. Ir a la librería de componentes.
7. Agregar cables.
8. Agregar buses.
9. Agregar texto.
modelos, por lo que estos símbolos solo sirven para dibujar los esquemáticos. Para poder
simular los esquemáticos es necesario que cada componente tenga asignado un modelo que
próximo capítulo.
28
En la Figura 4.5 se observa un esquemático sin cablear. En este caso solo es
cuestión de dar clic en el sétimo botón de la Figura 4.3 para poder realizar el cableado
necesario.
cada uno de ellos debe tener un nombre distinto y un valor asignado. Por lo que se debe dar
doble clic sobre cada componente. En la Figura 4.6 se puede apreciar la ventana que se abre
modificar los ya existentes. Además se puede escoger si se hace visible el nombre o el valor
29
En el caso de la fuente solo se modifica el atributo “refdes”, de manera que se
reemplaza “V?” por “V1”. Este atributo lo utiliza el motor de simulación para diferenciar
los distintos componentes del esquemático. Pero en el caso de gEDA es muy importante
que el este atributo empiece siempre con determinada letra que se puede deducir de la
Tabla 4.1.
Resistencia R
Capacitor C
Inductor L
Diodo D
Subcircuito (.SUBCKT) X
contraseña de usuario.
3. Una vez en el editor de textos, dar clic en el botón “Buscar” como en la Figura 4.7.
líneas que contienen la palabra “auto-uref” borrando el símbolo “;” (punto y coma) del
31
7. Cerrar la Terminal.
Para que estos cambios hagan efecto solo se debe cerrar gschem y volverlo a abrir.
este atributo es el encargado de asignar el valor de ohmios para las resistencias, faradios
para los capacitores y henrios para los inductores. Suponiendo que a las resistencias de la
Figura 4.5 se les quiera asignar un valor de 1kΩ, lo que se debe hacer es dar doble clic
sobre cada resistencia y dentro de la sección “Add Attribute” buscar el atributo “value”,
asignarle el valor de “1k” y dar clic en el botón “Add” como en la Figura 4.9. Si no se
desea hacer visible el nombre o el valor del atributo agregado, solo es cuestión de
32
desmarcar la casilla correspondiente a “N” o “V” en esta misma ventana. La casilla “Vis?”
debe estar marcada para que se haga visible el atributo en el esquemático, aunque el hecho
Es importante hacer referencia a los prefijos que pueden ser usados en el atributo
minúscula.
También es posible usar la notación “XeY” que sería equivalente a decir “𝑋 𝑥 10𝑌 ”,
en caso de que se considere más conveniente. Por lo que el valor de 1kΩ se puede expresar
33
Tabla 4.2. Lista de prefijos válidos para “value”
Una vez que el esquemático tiene asignado todos los atributos para cada uno de los
componentes se debe guardar el esquemático en formato “.sch” para luego continuar con la
punto, ya que desde gspiceui se deben definir todos los parámetros de la fuente de una
34
forma más sencilla y amigable. En caso de existir más de una fuente en el esquemático sí se
debe prestar atención al atributo “value” de las fuentes. Pero de igual forma, una de las
fuentes va a ser definida desde gspiceui, así que solo es necesario especificar las demás
Ubuntu, así que la forma más rápida para acceder a gspiceui es por medio de la
combinación de teclas “Alt + F2”. Al presionar estas teclas al mismo tiempo se abrirá una
Figura 4.12.
35
Figura 4.12. Interfaz de gspiceui.
Para escoger el motor de simulación a utilizar se debe dar clic en “Settings”. Ahí se
abrirá un menú desplegable como el de la Figura 4.13 y se podrá escoger entre gnucap y
ngspice.
numeración corresponde a:
36
2. Abrir esquemáticos en formato .sch.
3. Recargar archivo.
4. Cerrar archivo.
5. Crear simulación.
6. Correr simulación.
7. Detener simulación.
8. Editar esquemático.
que se debe dar clic en el segundo botón de la Figura 4.14 y buscar el archivo previamente
Una vez cargado el archivo, se puede observar que el cuadro de diálogo ubicado en
37
Se deben marcar todos los nodos y componentes que sean de interés para
simulación. Esto se hace dando clic en el nombre de los nodos y componentes en las
componente marcado. Es decir, se deben marcar todas las casillas deseadas de la sección
resistencia eléctrica.
fuente será configurada con gspiceui. En caso de haber más de una fuente se debe elegir
mencionar que esta fuente puede ser configurada como CA o CD, inclusive se puede
configurar como una señal de reloj, independientemente del tipo de fuente que era en el
inicio y final de la simulación, así como el tamaño del incremento del tiempo. Para este
caso se definió un tiempo inicial en cero segundos y un tiempo final en 3 segundos, con un
incremento de 10 milisegundos.
Teniendo todo esto listo se puede proceder a crear el archivo de simulación dando
Una vez creado el archivo de simulación se puede correr dicho archivo dando clic
ventanas como las de la Figura 4.16. La ventana de la derecha muestra todas las variables
que pueden ser graficadas. Solo es cuestión de arrastrar dichas variables con el mouse hacia
los paneles de la ventana izquierda. Cada panel muestra las variables que se le sean
asignadas y es posible crear más paneles dando clic derecho sobre alguno de ellos. También
es posible cambiar el color de las variables graficadas dando clic derecho sobre sus
39
nombres en el panel que se les asignó. Además es posible cambiar la escala del gráfico a
En la Figura 4.17 se puede observar una propuesta de cómo presentar los resultados
de simulación del esquemático simulado previamente. En este caso se puede apreciar que se
agregaron nuevos paneles y que se cambiaron los colores de las variables graficadas.
Es importante aclarar que a veces puede ocurrir que la gráfica para la variable de
sdfsdfsdfsdfdsf
40
Figura 4.17. Representación gráfica de simulación.
“invertida”. Esto se debe a que el simulador usa una convención donde siempre va a tomar
como positivo uno de los nodos del dispositivo (usualmente el izquierdo en resistencias,
dentro del esquemático a veces puede quedar “invertido” con respecto a la convención del
simulador, así que se debe colocar dicho dispositivo en la posición correcta invirtiendo la
conexión de las terminales, usando las herramientas para rotar el símbolo. Este detalle no
41
4.2 Uso de Oregano
A diferencia de la suite gEDA, en Oregano se pueden realizar las dos etapas básicas
del diseño de un circuito electrónico: dibujo del esquemático y simulación del mismo.
Una vez dentro de Oregano se puede apreciar que tiene un aspecto muy similar a
42
Figura 4.19. Interfaz gráfica de Oregano.
En la Figura 4.19 se puede notar que se cuenta con fácil acceso a la biblioteca de
símbolos. Al igual que con gEDA, es importante recordar que esta librería es de símbolos y
no de modelos, por lo que estos símbolos solo sirven para dibujar los esquemáticos. Para
poder simular los esquemáticos es necesario que cada componente tenga asignado un
modelo que lo describa. Solamente los componentes más básicos (fuentes, resistencias,
para agregar más símbolos a la librería y asignarle modelos a los símbolos se desarrollará
en el próximo capítulo.
Para realizar el mismo esquemático que se utilizó con gEDA, se procede a buscar
una fuente CA, dos resistencias y un nodo de referencia (tierra). En este caso la fuente sí
43
debe estar debidamente configurada desde el esquemático ya que los esquemáticos creados
con Oregano no se pueden usar en gspiceui, además se pueden realizar las simulaciones
Para configurar la fuente correctamente solo basta con hacer doble clic sobre ella y
llenar los espacios correspondientes a cada variable de la fuente, tal como se muestra en la
Figura 4.20.
En el caso de Oregano no hace falta respetar las letras iniciales de la Tabla 4.1 para
el atributo “refdes”, ya que Oregano se encarga de asignar dicha letra inicial. Esto se puede
“interno” que Oregano usa para crear la lista de nodos es “V_@refdes” por lo que
44
automáticamente la fuente ya posee la letra inicial “V” que la identifica como fuente
Luego para configurar las resistencias se debe hacer doble clic en cada una de ellas
Al igual que con gEDA se pueden usar los prefijos de la Tabla 4.2 o la
45
En la Figura 4.22 se puede apreciar la barra de herramientas disponible en Oregano,
y la numeración corresponde a:
1. Esquemático nuevo.
2. Abrir esquemático.
3. Guardar esquemático.
4. Cortar.
5. Copiar.
6. Pegar.
7. Modo selección.
8. Ingresar texto.
9. Dibujar cable.
las puntas de prueba usando la barra de herramientas, quedando como resultado la Figura
4.23.
46
Figura 4.23. Esquemático en Oregano.
Para elegir el motor de simulación se puede acceder a través del menú en: “Editar
>> Preferencias”.
tiempo. Además, Oregano posee la ventaja de poder realizar distintas pruebas al mismo
tiempo: Análisis en el tiempo, Fourier, CD y CA, a diferencia de gEDA que solo puede
47
Figura 4.24. Elección de motor de simulación.
48
Figura 4.26. Resultado de simulación en Oregano.
En dicha ventana se pueden marcar todas las variables que se deseen graficar. Estas
las puntas de prueba. Si se desea saber el número de cada nodo se puede ir a la ventana
principal (Figura 4.23) y seleccionar en el menú “Ver >> Etiquetas de los nodos”.
49
CAPÍTULO 5: Creación de símbolos y asignación de modelos
Los símbolos en gEDA usan formato “.sym”. Para llegar a esto se debe seguir la
siguiente secuencia de formatos y archivos. Parte del proceso requiere la utilización de una
instalación se puede hacer por medio del Gestor de paquetes Synaptic, tal como se hizo al
50
instalar la suite gEDA y Oregano. O si se desea, la instalación se puede llevar a cabo desde
tragesym. Por lo tanto se puede empezar a crear un símbolo utilizando el procedimiento que
se muestra a continuación:
1. Abrir la Terminal.
del componente que se quiere crear. Para este caso se creará un símbolo para el
sección “geda_attr” deben modificarse como mínimo las celdas que están al lado de
51
Figura 5.2. Sección geda_attr antes y después de modificar.
5. La sección “pins” debe quedar como la Figura 5.3. En la columna “#pinnr” deben
escribirse todos los números de pin que posee el componente, en el mismo orden que
ser usado como entrada (i), salida (o), entrada/salida (io), reloj (clk), entre otros. Pero
luego de realizar varias pruebas se consideró que usar el tipo “io” garantizaba siempre
un buen funcionamiento. De igual forma para “style”, existen varios tipos que se
pueden usar pero el que es más “universal” viene siendo “line”. En la columna “posit”
simplemente se debe especificar la posición del pin: izquierda (l), derecha (r), arriba (t)
se le desee dar a cada pin, en este caso se usaron los nombres que da el fabricante.
52
Figura 5.3. Sección pins después de modificar.
8. Abrir la Terminal.
53
11. Abrir el esquemático y hacer los retoques necesarios como reordenar pines y acomodar
lo que se desee.
12. Una vez realizados los cambios se debe hacer una copia de MAX274.sch y renombrarla
como MAX274.sym.
Ahora se necesita contar con un modelo en formato “.CIR”. El cual debe contar con
una estructura como el de la Figura 5.5, donde se empiece con “.SUBCKT” y se finalice
corresponden a los pines del componente a modelar. Este orden de pines debe coincidir con
54
Figura 5.5. Estructura básica de un modelo.
Una vez que se cuente con este archivo se debe copiar a la dirección
MAX274.CIR al símbolo MAX274.sym. Por lo tanto, cada vez que se agregue el símbolo
MAX274 al esquemático como en la Figura 5.6, se deben modificar sus atributos como en
la Figura 5.7, de manera que se agreguen los atributos “model” y “model-name” con el
mismo nombre que usa el modelo, en este caso “MAX274”. Además, se debe agregar el
“/usr/share/gEDA/sym/local/MAX274.CIR”.
55
Figura 5.6. Símbolo del MAX274 en gschem.
56
5.2 Creación de símbolos y asignación de modelos en Oregano
Estas librerías son capaces de describir varios símbolos al mismo tiempo y su estructura
<ogo:library>
<ogo:name>Nombre_Libreria</ogo:name>
<ogo:symbols>
<ogo:symbol>
<ogo:name>Nombre_Símbolo</ogo:name>
<ogo:objects>
<ogo:line>(X1 Y1)(X2 Y2)(X3 Y3)(X4 Y4)(X1 Y1)</ogo:line>
<ogo:line>(X5 Y5)(X6 Y6)</ogo:line>
<ogo:line>(X7 Y7)(X8 Y8)</ogo:line>
</ogo:objects>
<ogo:connections>
<ogo:connection>(X5 Y5 NUM_PIN1)</ogo:connection>
<ogo:connection>(X8 Y8 NUM_PIN2)</ogo:connection>
</ogo:connections>
</ogo:symbol>
<ogo:symbol>
.
.
.
</ogo:symbol>
.
.
.
</ogo:symbols>
<ogo:parts>
<ogo:part>
<ogo:name>Nombre_Modelo</ogo:name>
<ogo:symbol>Nombre_Símbolo</ogo:symbol>
<ogo:labels>
<ogo:label>
<ogo:name>Reference designator</ogo:name>
<ogo:text>@refdes</ogo:text>
<ogo:position>(X9 Y9)</ogo:position>
<ogo:modify>yes</ogo:modify>
</ogo:label>
<ogo:label>
<ogo:name>NUM_PIN1</ogo:name>
<ogo:text>NUM_PIN1</ogo:text>
<ogo:position>(X10 Y10)</ogo:position>
<ogo:modify>no</ogo:modify>
</ogo:label>
57
<ogo:label>
<ogo:text>NOMBRE_PIN1</ogo:text>
<ogo:position>(X11 Y11)</ogo:position>
<ogo:modify>no</ogo:modify>
</ogo:label>
<ogo:label>
<ogo:name>NUM_PIN2</ogo:name>
<ogo:text>NUM_PIN2</ogo:text>
<ogo:position>(X12 Y12)</ogo:position>
<ogo:modify>no</ogo:modify>
</ogo:label>
<ogo:label>
<ogo:text>NOMBRE_PIN2</ogo:text>
<ogo:position>(X13 Y13)</ogo:position>
<ogo:modify>no</ogo:modify>
</ogo:label>
<ogo:label>
<ogo:name>Model</ogo:name>
<ogo:text>@model</ogo:text>
<ogo:position>(X14 Y14)</ogo:position>
<ogo:modify>no</ogo:modify>
</ogo:label>
</ogo:labels>
<ogo:properties>
<ogo:property>
<ogo:name>Refdes</ogo:name>
<ogo:value>X</ogo:value>
</ogo:property>
<ogo:property>
<ogo:name>Template</ogo:name>
<ogo:value>X_@refdes %NUM_PIN1 %NUM_PIN2 @model</ogo:value>
</ogo:property>
<ogo:property>
<ogo:name>Model</ogo:name>
<ogo:value>Nombre_Modelo</ogo:value>
</ogo:property>
</ogo:properties>
</ogo:part>
<ogo:part>
.
.
.
</ogo:part>
.
.
.
</ogo:parts>
</ogo:library>
58
Los números de los pines deben mantener siempre la misma secuencia en todo el
5.5).
Además, al observar detenidamente las Figuras 5.8 y 5.9 se puede notar que la
primera parte del archivo lo que hace es definir la forma del símbolo definiendo varias
apreciar que la forma de este es una figura cerrada, que inicia y termina en la coordenada
de manera que el mismo símbolo se puede usar en varios modelos. Esto es útil en casos
como amplificadores operacionales donde varios modelos distintos podrían usar un mismo
ya que las Figuras 5.8 y 5.9 representan la forma de una librería con un solo símbolo, y
dicho símbolo con solamente dos pines. Por lo tanto, un símbolo con un número
considerado de pines se vuelve algo muy complicado, volviendo a Oregano casi obsoleto
“/usr/share/oregano/libraries” para poder utilizarse por Oregano, por medio del comando
tener la estructura de la Figura 5.5. Para copiar el modelo se debe ejecutar el siguiente
/usr/share/oregano/models”.
60
CAPÍTULO 6: Diseño de modelos
idénticos de segundo orden, que al colocarse en cascada pueden obtener un filtro activo de
orden ocho. Es capaz de trabajar como pasabajos y pasabandas con respuestas tipo
Butterworth, Chebyshev, Bessel, entre otros. Al ser un filtro de tiempo continuo no necesita
una señal de reloj, ni va a sufrir del ruido que este agrega a la señal de salida.
puede destacar que todos los elementos son conocidos. Además se puede apreciar que las
61
Figura 6.2. Esquemático del filtro usado en el MAX274. [3]
Cada filtro del MAX274 solo requiere de cuatro resistencias para funcionar como
6.3.
62
Dicha configuración obedece a las siguientes ecuaciones:
𝟏
𝑭𝒐 𝑯𝒛 = (𝟐 × 𝟏𝟎𝟗 ) (6.1-1)
𝑹𝟐 𝑹𝟒 + 𝟓𝑲𝛀
𝟏 𝑹𝒀 (6.1-2)
𝑸= (𝑹𝟑 )
𝑹𝟐 𝑹𝟒 + 𝟓𝑲𝛀 𝑹𝑿
𝑹𝟑
𝑯𝑶𝑩𝑷 = (6.1-3)
𝑹𝟏 𝒇=𝒇
𝒐
𝑹𝟐 𝑹𝑿
𝑯𝑶𝑳𝑷 = (6.1-4)
𝑹𝟏 𝑹𝒀 𝒇=𝟎
Como complemento a estas ecuaciones se tiene la Figura 6.4 que describe la forma
Con esta información se procedió a realizar el diseño del modelo del MAX274.
De manera que era necesario crear un bloque o varios que relacionaran el pin FC
con RX y RY de manera que variara sus resistencias de acuerdo a la Figura 6.2. Así que se
decidió utilizar interruptores controlados por voltaje para simular las resistencias, ya que
63
Figura 6.4. Respuesta pasabajos y pasabandas para un filtro del MAX274. [3]
aumenta cuando el pin FC es conectado a un nivel de tensión eléctrica mayor, por lo tanto
resistencia equivalente en las terminales (RX) y así lograr el efecto deseado. El modelo del
64
Figura 6.5. Modelo para subcircuito RX.
Luego se realizó algo similar para RY, solo que en este caso la resistencia debía
disminuir conforme aumentaba el nivel de tensión eléctrica en FC, por lo que se usaron
Teniendo las resistencias RX y RY listas solo hace falta definir el modelo para los
amplificadores operacionales. Por lo que se procedió a sustituir las ecuaciones 6.1-1, 6.1-2,
65
y 6.1-4 en la ecuación G(s) de la Figura 6.4 para obtener la función de transferencia de un
filtro del MAX274 cuando trabaja como pasabajos. Todo esto teniendo que:
1 (6.1-5)
2 × 109 ≈
2𝜋𝐶
Donde C=79,575pF.
𝑅2 𝑅3 𝑅𝑋
𝐺 𝑠 = 2
(6.1-5)
𝑅1 𝑅2 𝑅3 𝑅4 +5𝐾Ω 𝑅𝑌 (𝑠𝐶) +𝑅1 𝑅2 𝑅4 +5𝐾Ω 𝑅𝑋 𝑠𝐶 +𝑅1 𝑅3 𝑅𝑌
Figura 6.3 se logró determinar la siguiente función de transferencia para el filtro en modo
pasabajos:
66
𝑅2 𝑅3 𝑅𝑋
𝐺 𝑠 = 𝑅1 𝑅2 𝑅3 𝑅4 +5𝐾Ω 𝑅𝑌 𝑠𝐶 2 +𝑅1 𝑅2 𝑅4 +5𝐾Ω 𝑅𝑋 𝑠𝐶 +𝑅1 𝑅3 𝑅𝑌 +
(6.1-6)
+𝐴(𝑠)−1 5𝑅1 𝑅2 𝑅3 𝑅4 +5𝐾Ω 𝑅𝑌 (𝑠𝐶)2 +… +𝐴(𝑠)−2 9𝑅1 𝑅2 𝑅3 … +𝐴(𝑠)−3 𝑅1 𝑅2 …
entonces las ecuaciones 6.1-5 y 6.1-6 se igualarían. Por lo tanto es necesario utilizar un
modelo de amplificador operacional lo más cercano al ideal, donde la ganancia A(s) sea de
la forma A(s)=K donde K es una constante que tiende a infinito. El subcircuito para el
Una vez que se tuvo todo listo se procedió a escribir el modelo para el filtro
67
.SUBCKT MAX274 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
* | | | | | | | | | | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | | | | | | | | | LPOD
* | | | | | | | | | | | | | | | | | | | | | | IND
* | | | | | | | | | | | | | | | | | | | | | BPID
* | | | | | | | | | | | | | | | | | | | | BPOD
* | | | | | | | | | | | | | | | | | | | GND
* | | | | | | | | | | | | | | | | | | LPID
* | | | | | | | | | | | | | | | | | LPIC
* | | | | | | | | | | | | | | | | V-
* | | | | | | | | | | | | | | | BPOC
* | | | | | | | | | | | | | | BPIC
* | | | | | | | | | | | | | INC
* | | | | | | | | | | | | LPOC
* | | | | | | | | | | | LPOB
* | | | | | | | | | | INB
* | | | | | | | | | BPIB
* | | | | | | | | BPOB
* | | | | | | | FC
* | | | | | | LPIB
* | | | | | LPIA
* | | | | V+
* | | | BPOA
* | | BPIA
* | INA
* LPOA
XFILTROA 1 2 3 4 6 5 20 17 8 FILTRO
XFILTROB 12 11 10 9 7 5 20 17 8 FILTRO
XFILTROC 13 14 15 16 18 5 20 17 8 FILTRO
XFILTROD 24 23 22 21 19 5 20 17 8 FILTRO
.ENDS MAX274
***************************************************************
.SUBCKT FILTRO 1 2 3 4 5 6 7 8 9
* | | | | | | | | |
* | | | | | | | | FC
* | | | | | | | V-
* | | | | | | GND
* | | | | | V+
* | | | | LPI
* | | | BPO
* | | BPI
* | IN
* LPO
R5FIL 12 11 50k
X4FIL 0 13 1 OPAMP
X3FIL 0 11 4 OPAMP
X2FIL 0 3 12 OPAMP
X1FIL 0 2 10 OPAMP
C2FIL 13 1 79.575p
C1FIL 3 12 79.575p
R7FIL 5 13 5k
R6FIL 11 4 50k
RELLENO 8 0 1K
XRX 6 9 10 2 RX
XRY 6 7 9 10 3 RY
.ENDS FILTRO
***********************************************
*** RESISTENCIA RX VARIABLE PARA MAX274 ***
.SUBCKT RX 1 2 3 4
* | | | |
* | | | N-
* | | N+
* | FC
* V+
S1RX 3 5 1 2 SWITCHRX ON
R1RX 5 4 13K
.MODEL SWITCHRX SW (ROFF=39K RON=1E-200 VT=1)
.ENDS RX
***********************************************
S1RY 4 5 1 3 SWITCHRY1 ON
S2RY 4 5 2 3 SWITCHRY2 ON
.MODEL SWITCHRY1 SW (ROFF=16.250K RON=1E200 VT=1)
.MODEL SWITCHRY2 SW (ROFF=81.250K RON=1E200 VT=1)
R1RY 4 5 325K
.ENDS RY
***********************************************
.SUBCKT OPAMP 1 2 3
* | | |
* + - OUT
E1 3 0 1 2 1E50
R1 1 2 1E50
.ENDS OPAMP
.ENDS
filtro de orden 8 con frecuencia de corte en 10KHz. Además, coincide con la respuesta
70
Figura 6.13. Respuesta en frecuencia de la aplicación típica del MAX274.
Figura 6.14. Respuesta en frecuencia esperada de la aplicación típica del MAX274. [3]
71
De igual forma se hicieron pruebas simulando individualmente cada filtro del
MAX274 usando la configuración de la Figura 6.15, obtenida de las hojas del fabricante,
usando los parámetros del “Test Circuit A” que ahí mismo se observan.
72
Figura 6.16. Respuesta en frecuencia obtenida del “Test Circuit A” del MAX274.
73
Figura 6.17. Configuración de pines del MF10. [4]
Una de las características que se tuvo que tomar en cuenta a la hora de diseñar el
MF10. En este diagrama se puede observar que muchos pines del dispositivo son
74
Figura 6.18. Diagrama de bloques del MF10. [4]
Del mismo diagrama se puede observar la función del pin SA/B. Este sirve como
CMOS o TTL. La conexión del pin LSh también debe tomar en cuenta el tipo de
y la frecuencia central del filtro, a razón de 50:1 y 100:1. También puede inhabilitar la
75
Dentro de los bloques que se pueden observar en el diagrama de la Figura 6.18
inversores, un bloque de control, dos “level shifter” o desplazadores de nivel, dos “non
interruptores.
operacionales.
6.19 se puede notar que la frecuencia central del filtro depende de la relación entre los
capacitores C1 y C2.
76
d) Control(50/100/CL): se usaron interruptores controlados por voltaje para conectar y
controlados por voltaje para deshabilitar la acción del filtro cuando se ocupara y se
e) Desplazador de nivel: para simplificar el diseño, se hizo el diseño general del MF10 de
manera que pudiera trabajar con cualquier señal de reloj (TTL o CMOS), sin necesidad
de desplazar la señal.
f) Non overlapping clock: de igual manera que con el desplazador de nivel, se creó el
modelo de manera que esto no afectara. Además, la naturaleza misma del simulador
g) Interruptores: al no ser de la forma 1 polo 1 tiro, fue necesario crear un modelo aparte
Cada una de las partes se probó por aparte, teniendo resultados exitosos. Tal es el
caso del integrador no inversor, cuya simulación al integrar una señal de corriente directa
77
Figura 6.20. Simulación del integrador no inversor solo y en cascada.
En esta misma Figura 6.20 también se puede ver la señal que se obtiene al colocar
salida presenta una forma exponencial, tal como es esperado al integrar dos veces una señal
CD.
Luego de haber obtenido resultados positivos con todas las partes del MF10 se
procedió a simular todos los subcircuitos en conjunto en el modelo del MF10 que se
78
.SUBCKT MF10 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
* | | | | | | | | | | | | | | | | | | | |
* LPA | | | | | | | | | | | | | | | | | | |
* BPA | | | | | | | | | | | | | | | | | |
* N/AP/HPA| | | | | | | | | | | | | | | | |
* INVA | | | | | | | | | | | | | | | |
* S1A | | | | | | | | | | | | | | |
* SA/B | | | | | | | | | | | | | |
* VA+ | | | | | | | | | | | | |
* VD+ | | | | | | | | | | | |
* LSH | | | | | | | | | | |
* CLKA | | | | | | | | | |
* CLKB | | | | | | | | |
* 50/100/CL | | | | | | | |
* VD- | | | | | | |
* VA- | | | | | |
* AGND | | | | |
* S1B | | | |
* INVB | | |
* N/AP/HPB | |
* BPB |
* LPB
XFILTROA 4 7 5 15 10 12 6 3 2 1 FILTRO
XFILTROB 17 7 16 15 11 12 6 18 19 20 FILTRO
XCORTO1 3 4 12 14 CORTO
XCORTO2 2 3 12 14 CORTO
XCORTO3 1 2 12 14 CORTO
XCORTO4 17 18 12 14 CORTO
XCORTO5 18 19 12 14 CORTO
XCORTO6 19 20 12 14 CORTO
XCORTO7 7 21 12 14 CORTO
R1 21 0 2K
XCORTO8 14 22 12 14 CORTO
R2 22 0 2K
RCORTO1 7 8 1E-20
RCORTO2 14 13 1E-20
.ENDS MF10
*************************************************************************************
.SUBCKT FILTRO 1 2 3 4 5 6 7 8 9 10
* | | | | | | | | | |
* INV | | | | | | | | |
* V+ | | | | | | | |
* S1 | | | | | | |
* AGND | | | | | |
* CLK | | | | |
* 50/100/CL | | |
* SA/B | | |
* N/AP/HP | |
* BP |
* LP
XAMP 4 1 8 OPAMP
XSUMA 3 8 11 12 PTOSUMA
X2POLOS 4 11 10 7 2 SW2POLOS
XINTEG1 12 2 6 5 9 INTEGRADOR
XINTEG2 9 2 6 5 10 INTEGRADOR
79
.ENDS FILTRO
*************************************************************************************
.SUBCKT INTEGRADOR 1 2 3 4 5
* | | | | |
* ENTRADA V+ 50/100/CL CLK SALIDA
XSCAP1 9 3 2 6 SCAP1
XSCAP2 10 3 2 6 SCAP2
XAMPINT 0 8 5 OPAMP
C2 8 5 15.9155P
S1 1 6 4 0 SWITCH1 OFF
S2 7 0 4 0 SWITCH1 OFF
S3 6 0 4 0 SWITCH2 ON
S4 7 8 4 0 SWITCH2 ON
.MODEL SWITCH1 SW (RON=10 ROFF=1E6 VT=1)
.MODEL SWITCH2 SW (RON=1E6 ROFF=10 VT=1)
C1A 7 9 2P
C1B 7 10 1P
.ENDS INTEGRADOR
*************************************************************************************
.SUBCKT OPAMP 1 2 3
* | | |
* + - OUT
E1 3 0 1 2 1E50
R1 1 2 1E50
.ENDS OPAMP
*************************************************************************************
.SUBCKT SCAP1 1 2 3 4
* | | | |
* ENT | | |
* 50/100/CL | |
* V+ |
* SALIDA
S1 4 1 3 2 SWITCH ON
.MODEL SWITCH SW (RON=1E20 ROFF=1E-3 VT=1)
.ENDS SCAP1
*************************************************************************************
.SUBCKT SCAP2 1 2 3 4
* | | | |
* ENT | | |
* 50/100/CL | |
* V+ |
* SALIDA
S1 4 1 3 2 SWITCH OFF
.MODEL SWITCH SW (RON=1E-3 ROFF=1E20 VT=1)
.ENDS SCAP2
80
*************************************************************************************
.SUBCKT PTOSUMA 1 2 3 4
* | | | |
* S1 | | |
* N/AP/HP | |
* AGND/LP |
* SALIDA
X1INVERSOR 2 5 INVERSOR
X2SUMAIN 1 5 3 4 SUMAINV
.ENDS PTOSUMA
*************************************************************************************
.SUBCKT SW2POLOS 1 2 3 4 5
* | | | | |
* AGND | | | |
* PTOSUMA | | |
* LP | |
* SA/B |
* V+
.ENDS SW2POLOS
*************************************************************************************
.SUBCKT CORTO 1 2 3 4
* | | | |
* N+ N- 50/100/CL V-
S1 1 2 3 4 CORCIR ON
.MODEL CORCIR SW (RON=1E20 ROFF=1E-20 VT=1)
.ENDS CORTO
*************************************************************************************
.SUBCKT INVERSOR 1 2
XINVER 0 3 2 OPAMP
R1 1 3 1K
R2 3 2 1K
.ENDS INVERSOR
*************************************************************************************
.SUBCKT SUMAINV 1 2 3 4
XINVERS 0 5 2 OPAMP
R1 1 5 1K
R2 2 5 1K
R3 3 5 1K
R4 5 4 1K
.ENDS SUMAINV
*************************************************************************************
.ENDS
circuito está basado en las hojas del fabricante. Las ecuaciones y esquemático brindado por
82
Figura 6.26. Ecuaciones de diseño para la configuración de prueba. [4]
El esquemático de la Figura 6.24 corresponde al uso del MF10 como dos filtros
pasabajos de segundo orden con ganancia unitaria, frecuencia central y de corte igual a
Dado todo esto se procedió a simular el esquemático con una señal de entrada
frecuencia de corte). La señal de salida esperada del filtro a esta frecuencia con la amplitud
de 1V sería 10mV (-40dB). Pero tal como se observa en la Figura 6.27 la señal de salida
hecho el fabricante facilita una gráfica que muestra la respuesta de varios filtros de segundo
orden como función del factor de calidad, y en todos los casos se observa que sin importar
Figura 6.28. Respuesta normalizada para varios filtros de segundo orden en función de Q. [4]
modelo del MF10 no funciona correctamente. Existe una posibilidad de que el error sea
84
causado por el hecho de que no se pudieron utilizar interruptores ideales en los integradores
tensión eléctrica en las terminales del capacitor, posiblemente porque provocaría un pico de
intensidad de corriente eléctrica que teóricamente tendería a infinito. Así que los
los ideales. Pero el hecho de que el error provenga de los integradores no inversores pierde
fuerza al observar las simulaciones aplicados a estos, ya que los resultados son correctos.
Por lo tanto, lo único que se puede pensar es que el diagrama de bloques otorgado
confiable.
Vale la pena aclarar que el único modelo que puede ser considerado completamente
representativo del dispositivo real es aquel que se basa en el esquemático real utilizado por
85
CAPÍTULO 7: Comparación de herramientas libres con TINA
Costa Rica es TINA. Esta herramienta posee la facilidad de poseer una amplia librería de
símbolos y modelos, además de poder agregar modelos nuevos fácilmente por medio de
macros.
realizar pruebas con varios modelos. Se utilizó la versión “demo” ya que la idea era
gEDA y Oregano son gratuitas se pensó en compararlos con la versión gratuita de TINA.
Pero la versión demo de TINA se encuentra tan limitada que ciertas tareas como el simple
circuitos a simular de manera que solo es posible simular esquemáticos con una
muchas opciones que no se disponen en la versión gratuita. Pero para poder usar la
promedio no requiere de todas estas opciones. Por lo que se puede considerar que para el
usuario promedio, y en especial los estudiantes, pueden encontrar todo lo que necesitan en
Es importante hacer ver que las aplicaciones libres como gEDA y Oregano pueden
86
correctamente, alcanzando en algunos aspectos el mismo nivel de muchas herramientas
privativas como TINA, o incluso superarlas. Y cuando se comparan contra versiones demo
de aplicaciones como TINA se puede notar una amplia ventaja por parte de las aplicaciones
87
CAPÍTULO 8: Conclusiones y recomendaciones
8.1 Conclusiones
La suite gEDA, al no ser una aplicación única donde se centralicen las tareas, puede
ampliarla con nuevas herramientas o reemplazar algunas aplicaciones por otras que
se consideren mejores.
El programa Oregano tiene una presentación muy amigable con el usuario y por lo
tanto se convierte en una herramienta muy sencilla de utilizar por usuarios sin
convierta en una tarea muy sencilla, además de tener un gran potencial para crear
88
La creación de símbolos en Oregano es muy tediosa y lenta, por lo que se vuelve
cuando se usa gnucap como motor de simulación, a pesar de que el mismo circuito
La herramienta gspiceui es muy versátil y con gran potencial, permitiendo usar los
El motor de simulación gnucap es más robusto que ngspice, con mejores algoritmos
La suite gEDA es una herramienta muy poderosa que es capaz de realizar muchas y
89
8.2 Recomendaciones
Revisar las diferencias que existen entre los motores de simulación ngspice y
declaran algunos elementos como lo son los interruptores y las fuentes dependientes
y algunas independientes.
Revisar los demás paquetes que vienen incluidos con la suite gEDA, tanto los que
se instalan de manera estándar, como los que quedan disponibles y sin ser instalados
otras tareas más específicas que pueden ser de gran utilidad. Además hay que
recordar que la suite gEDA se está actualizando periódicamente así que a veces se
mundial, se debe estar al tanto de las nuevas herramientas que esta comunidad
dispositivo.
90
BIBLIOGRAFÍA
Libros:
Páginas web:
91
Descargado de: http://www.maxim-ic.com
2006.
0506/spice/ngspice.pdf
http://oregano.gforge.lug.fi.uba.ar/, 2009.
92
APÉNDICE A: Descripción de algunos elementos en ngspice [9]
Resistors
General form:
RXXXXXXX n+ n- value <ac=val> <m=val> <scale=val> <temp=val>
+ <dtemp=val> <noisy=0|1>
Examples:
R1 1 2 100
RC1 12 17 1K
R2 5 7 1K ac=2K
RL 1 4 2K m=2
Ngspice has a fairly complex model for resistors. It can simulate both discrete and
semiconductor resistors. Semiconductor resistors in ngspice means: resistors described by
geometrical parameters. So, do not expect detailed modelling of semiconductor effects.
„n+‟ and „n-‟ are the two element nodes, „value‟ is the resistance (in ohms) and may
be positive or negative but not zero.
Hint: If you need to simulate very small resistors (0.001 Ohm or less), you should
use CCVS (transresistance), it is less efficient but improves overall numerical accuracy.
Think about that a small resistance is a large conductance.
Ngspice can assign a resistor instance a different value for AC analysis, specified
using the „ac‟ keyword. This value must not be zero as described above. The AC resistance
is used in AC analysis only (not Pole-Zero nor noise). If you do not specify the „ac‟
parameter, it is defaulted to „value‟.
Capacitors
General form:
CXXXXXXX n+ n- <value> <mname> <m=val> <scale=val> <temp=val>
+ <dtemp=val> <ic=init_condition>
Examples:
CBYP 13 0 1UF
COSC 17 23 10U IC=3V
Ngspice provides a detailed model for capacitors. Capacitors in the netlist can be
specified giving their capacitance or their geometrical and physical characteristics.
Following the original spice3 "convention", capacitors specified by their geometrical or
93
physical characteristics are called "semiconductor capacitors" and are described in the next
section.
In this first form „n+‟ and „n-‟ are the positive and negative element nodes,
respectively and „value‟ is the capacitance in Farads.
Switches
General form:
SXXXXXXX N+ N- NC+ NC- MODEL <ON><OFF>
WYYYYYYY N+ N- VNAM MODEL <ON><OFF>
Examples:
s1 1 2 3 4 switch1 ON
s2 5 6 3 0 sm2 off
Switch1 1 2 10 0 smodel1
w1 1 2 vclock switchmod1
W2 3 0 vramp sm1 ON
wreset 5 6 vclck lossyswitch OFF
Nodes 1 and 2 are the nodes between which the switch terminals are connected. The
model name is mandatory while the initial conditions are optional. For the voltage
controlled switch, nodes 3 and 4 are the positive and negative controlling nodes
respectively. For the current controlled switch, the controlling current is that through the
specified voltage source. The direction of positive controlling current flow is from the
positive node, through the source, to the negative node.
Independent Sources
General form:
VXXXXXXX N+ N- <<DC> DC/TRAN VALUE> <AC <ACMAG <ACPHASE>>>
+ <DISTOF1 <F1MAG <F1PHASE>>> <DISTOF2 <F2MAG <F2PHASE>>>
IYYYYYYY N+ N- <<DC> DC/TRAN VALUE> <AC <ACMAG <ACPHASE>>>
+ <DISTOF1 <F1MAG <F1PHASE>>> <DISTOF2 <F2MAG <F2PHASE>>>
Examples:
VCC 10 0 DC 6
VIN 13 2 0.001 AC 1 SIN(0 1 1MEG)
ISRC 23 21 AC 0.333 45.0 SFFM(0 1 10K 5 1K)
VMEAS 12 9
VCARRIER 1 0 DISTOF1 0.1 -90.0
VMODULATOR 2 0 DISTOF2 0.01
IIN1 1 5 AC 1 DISTOF1 DISTOF2 0.001
94
APÉNDICE B: Descripción de algunos elementos en gnucap [8]
Capacitor
Syntax
Device
Cxxxxxxx n+ n– value
Cxxxxxxx n+ n– expression
Cxxxxxxx n+ n– value {IC=initial-voltage}
Cxxxxxxx n+ n– model {L=length} {W=width} {TEMP=temperature} {IC=initial-voltage}
.capacitor label n+ n– expression
Model (optional)
.model mname C {args}
.model mname TABLE {args}
Syntax
Device
Exxxxxxx n+ n– nc+ nc– value
Exxxxxxx n+ n– nc+ nc– expression
.VCVS label n+ n– nc+ nc– expression
Model (optional)
.model mname TABLE {args}
Purpose
Voltage controlled voltage source, or voltage gain block.
Comments
N+ and n– are the positive and negative element (output) nodes, respectively. Nc+
and nc– are the positive and negative controlling nodes, respectively. Value is the voltage
gain.
You may specify the value in any of these forms:
1. A simple value. This is the voltage gain.
95
2. An expression, as described in the behavioral modeling chapter. The expression
can specify the output voltage as a function of input voltage, or the voltage gain as a
function of time.
3. A model, as described in the behavioral modeling chapter. The table model
describes a table of output voltage vs. input voltage.
Resistor
Syntax
Device
Rxxxxxxx n+ n– value
Rxxxxxxx n+ n– expression
Rxxxxxxx n+ n– model {L=length} {W=width} {TEMP=temperature}
.resistor label n+ n– expression
Model (optional)
.model mname R {args}
.model mname TABLE {args}
Subcircuit Call
Syntax
Device
Xxxxxxxx n1 {n2 n3 ...} subname {parameters}
Syntax
Device
Sxxxxxxx n+ n– nc+ nc– mname {ic}
.vswitch label n+ n– nc+ nc– mname {ic}
Model (required)
.model mname SW {args}
96
ANEXOS: Especificaciones del fabricante [3] [4]
97