Aus Linux-Magazin 12/2006

Workshop: Schaltungssimulation mit der GPL'd Suite of Electronic Design Automation

Warum Versuchsschaltungen löten, wenn es auch in Software geht? Mit der Geda-Toolsuite halten Sie ein mächtiges Werkzeug für die Simulation elektronischer Schaltungen in der Hand. Der Workshop erklärt die Analog-Analyse anhand einer Verstärkerschaltung.

Des Menschen Hirn ist nicht sonderlich gut geeignet, um eine umfangreiche elektronische Schaltung auf dem Papier zu verstehen, zu komplex ist das Zusammenspiel der Bauelemente, zu tückisch mancher Seiteneffekt. Elektroniker arbeiten darum mit Versuchsaufbauten und Messtechnik – was dauert und Kosten erzeugt. Besser ist, die Schaltung am PC zu simulieren. Unzulänglichkeiten im Design fallen frühzeitig auf und Bauteile sind sehr einfach auszutauschen.

Linux-Nutzer finden mit der Geda (GPL\’d Suite of Electronic Design Automation, [1]) eine Toolsuite, die den Vergleich mit kommerzieller Software nicht scheut. Sie beschränkt sich nicht aufs Simulieren, Sie können damit alle Entwicklungsarbeiten für elektronische Schaltungen am PC absolvieren, einschließlich der Simulation von gemischten analog/digitalen Schaltungen, der Konstruktion der Schaltbilder und automatischer Stücklisten [2]. Tabelle 1 gibt einen Überblick.

Tabelle 1: Die
Geda-Tools

 

Tool-Name

Beschreibung

geda

Zentrales Programm zur Projektverwaltung

gschem

Schaltungs- und Bauteile-Editor.

gattrib

Ein tabellarischer Attribute-Editor, der Gschem-Dateien
öffnet.

gnetlist

Erstellt Eingabedateien für die Simulationsprogramme

gsymcheck

Tool zur Verifikation von Gschem-Symboldateien

ngspice

Simulation von gemischten analogen/digitalen Schaltungen

gnucap

Alternativer Schaltungssimulator zu NG Spice

gwave

Betrachter für analoge Simulationsergebnisse

gtkwave

Betrachter für digitale Simulationsergebnisse

iverilog

Icarus-Verilog-Compiler

vbs

Einfacher Verilog-Simulator

pcb

Leiterplatten-Editor, der Gerber-Daten erzeugt.

gsch2pcb

Konverter von Gschem nach PCB

gerbv

Betrachter für Gerber-Daten

gspiceui

Grafisches Frontend für NG Spice und Gnucap

wcalc

Mechanische und physikalische Analyse und Synthese von
Signalübertragern (Koaxialkabel, Streifenleitungen,
Magnetspulen)

mcalc

Browser-basiertes »wcalc«-Äquivalent

Unter [3] stehen die neuesten Sourcen als ISO-Image nebst Anleitung bereit. Für Debian, Fedora, Red Hat, Suse und Mac OS X gibt\’s auch kompilierte Pakete. Der Autor dieses Beitrags entschied sich für das Quellcode-ISO und Open Suse 10.0. Das »installer«-Skript startet grafisch, prüft Systemabhängigkeiten und bietet an, fehlende Software nachzuinstallieren. Nach Angabe der Verzeichnisse für Quellen und Kompilate starten Übersetzung und Installation der Suite. Ist die Installation abgeschlossen, wollen die Umgebungsvariablen aktualisiert sein, beispielsweise in »~/.bashrc«:

PATH=$PATH:/home/User/geda-install/bin
LD_LIBRARY_PATH=/home/User/geda-install/lib

Wenn Sie das Verhalten des Schaltungseditors Gschem sofort oder später feintunen wollen, geht das über Konfigurationsdateien, die das Programm beim Starten in folgender Reihenfolge abarbeitet: »share/gEDA/system-gschemrc« im Installationsverzeichnis, »~/.gEDA/gschemrc« (Benutzer-Einstellungen) und »gschemrc« im Projektverzeichnis (Projekt-Einstellungen). Die Gschem-Hilfe und die Kommentare in der installierten »system-gschemrc« liefern Details. Nach Studium der ebenso umfangreichen wie nützlichen Dokumente in »~/geda-install/share/doc« kann es losgehen. Abbildung 1 zeigt die Arbeitsschritte. Dieser Artikel geht den braun markierten Weg.

Abbildung 1: Von der Idee über Schaltplan und Simulation zur fertigen Leiterplatte - die grundlegenden Arbeitsschritte in Geda.

Abbildung 1: Von der Idee über Schaltplan und Simulation zur fertigen Leiterplatte – die grundlegenden Arbeitsschritte in Geda.

Schaltung aus der Praxis

Als Beispiel dient eine einfache Verstärkerschaltung, wie sie zum Beispiel als Mikrofonverstärker oder in einer Datenübertragungsstrecke als Signalverstärker vorkommt. Die Spannungsquelle Vvin repräsentiert das Eingangssignal. Das R1-C1-Hochpassfilter am Eingang dient zur Gleichspannungsentkopplung von der Signalquelle und schützt den Eingang des Operationsverstärkers vor statischen Aufladungen.

Die Widerstände geben den Verstärkungsfaktor der Schaltung vor: v=R2/(R2+R3)=2. Wer ihn variieren will, verwendet statt R2 und R3 ein Potenziometer. Der Kondensator C2 entkoppelt den Ausgang gegenüber nachfolgenden Schaltungen. R4 repräsentiert deren Eingangswiderstand. Die Spannungsquellen Vvcc und Vncc versorgen den Operationsverstärker mit +5 Volt und -5 Volt.

Schaltpan per Gschem

Im Folgenden werden Sie die in Abbildung 2 dargestellte Schaltung schrittweise mit Gschem erstellen. Hierzu legen Sie den Ordner »~/opamplifier« für das Projekt an, wechseln dorthin und starten »gschem«. Das Programm erstellt eine Datei, die Sie gleich im Projektordner als »opamplifier.sch« speichern.

Abbildung 2: Der mit Gschem erstellte Beispiel-Schaltplan eines nicht-invertierenden Verstärkers. Ein- und Ausgänge sind galvanisch entkoppelt.

Abbildung 2: Der mit Gschem erstellte Beispiel-Schaltplan eines nicht-invertierenden Verstärkers. Ein- und Ausgänge sind galvanisch entkoppelt.

Gschem kennt drei Modi: Auswahlmodus (Standard), Kopier- und Verschiebemodus. Je nach Aktion wechseln die Modi teils automatisch. Tabelle 2 gibt einen Überblick über wichtige Befehle, Abbildung 3 über Gschems Tool-Leiste. Als Erstes erstellen Sie die beiden Spannungsquellen. Der Klick auf den Button »Bauteile auswählen« öffnet ein Fenster, in dem Sie Schaltsymbole aussuchen. Sie nehmen »vdc-1.sym« aus der Bibliothek »spice«. Nach einem Klick auf den Button »Anwenden« lässt sich das Symbol im Hauptfenster platzieren.

Abbildung 3: Ein Abschnitt der Tool-Leiste mit der Bezeichnung der darin enthaltenen Buttons.

Abbildung 3: Ein Abschnitt der Tool-Leiste mit der Bezeichnung der darin enthaltenen Buttons.

Tabelle 2: Wichtige
Gschem-Befehle

 

Menübefehl

Alternative Tastenfolge

Beschreibung

Bearbeiten | Auswahl Modus

[S]

Auswahlmodus zum Auswählen von Symbolen

Bearbeiten | Bearbeiten

[E][E]

Editieren von Symbolattributen

Bearbeiten | Text bearbeiten

[E][X]

Editieren der gewählten Beschriftungen

Bearbeiten | Kopiermodus

[E][C]

Das zuvor gewählte Symbol anschließend mit der
linken Maustaste als Kopie abziehen

Bearbeiten | Verschiebemodus

[M]

Verschieben der gewählten Symbole

Bearbeiten | Löschen

[Entf]

Ausgewähltes Symbol löschen

Bearbeiten | Dreh Modus 90°

[E][R]

Gewähltes Symbol um 90° drehen

Bearbeiten | Spiegel Modus

[E][I]

Gewähltes Symbol spiegeln

An dieser Stelle tritt ein kleiner Bug zutage: Das Symbol ist nur Stecknadelkopf-groß – das Symbolleistenmenü »Ansicht | Automatisch« sorgt für Abhilfe. Ein Doppelklick auf das Symbol öffnet das Attribute-Fenster (Abbildung 4). Dem Attribut »refdes« weisen Sie den Wert »Vvcc« und dem »value«-Attribut eine Gleichspannung von 5 Volt zu.

Abbildung 4: Das Attribute-Fenster öffnet sich durch einen Doppelklick auf das betreffende Bauteilsymbol.

Abbildung 4: Das Attribute-Fenster öffnet sich durch einen Doppelklick auf das betreffende Bauteilsymbol.

Die Spalte »Sichtbar?« gibt an, ob das Hauptfenster das Attribut zeigt oder nicht. Nach dem Schließen des Fensters ist das Symbol beschriftet. Beschriftungen und Symbole verrücken Sie im »Bearbeiten | Verschiebemodus«. Nun positionieren Sie das Symbol »Vcc« am Pin 1 der Spannungsquelle und GND am Pin 2. Sie finden beide in der Bibliothek »power« als »vcc-1.sym« und »gnd-1.sym«.

Für die negative Spannung Vnvcc kopieren Sie »Vvcc« zusammen mit GND, indem Sie einen Rahmen um beide ziehen. Das Betätigen der rechten Maustaste öffnet ein Pull-down-Menü, durch »Kopieren« gelangen Sie in den Kopiermodus, dort ziehen Sie das Duo ab. Das Symbol für »-Vcc« befindet sich in »vcc-minus.sym« der Bibliothek »power«. Die Tasten [E][R] drehen das Bauteil.

Nun verdrahten Sie es mit Pin 1 von Vnvcc, indem Sie mit dem Button »Netz einfügen« das richtige Werkzeug zur Hand nehmen. Die Verdrahtung startet an geeigneter Stelle mit Linksklick. Weitere Klicks fixieren Zwischenpunkte, bis Sie das Ziel erreichen. Die rechte Maustaste beendet das Manöver.

Das Symbol für die Signalquelle Vvin liegt in der Bibliothek »spice« unter »vsin.sym«. Seinem »refdes«-Attribut weisen Sie »Vvin« zu und »value« erhält »sin 0 2.3 1k«. Die Quelle liefert dadurch ein gleichspannungsfreies 1-kHz-Sinussignal mit 2,3 Volt Amplitude. Nun der erste Kondensator: Dessen Symbol »capacitor1.sym« liegt in der Bibliothek »analog«. Dem Attribut »refdes« geben Sie den Wert »C1«, »value« erhält »200n« (Nanofarad). Danach verbinden Sie das Bauteil mit der Signalquelle Vvin.

Die Kraft, die durch den Knoten geht

Simulationsprogramme behandeln Verbindungen zwischen den Bauteilen als so genannte Knotenpunkte. In der Schaltung aus Abbildung 2 gibt es acht:

  • Zwischen Vvin und C1
  • Zwischen C1, R1 und LM324/Pin 1
  • Zwischen R2, R3 und LM324/Pin 2
  • Zwischen R3, C2 und LM324/Pin 5
  • Zwischen C2 und R4
  • Zwischen LM324/Pin 3 und Vvcc
  • Zwischen LM324/Pin 4 und Vnvcc
  • Alle »GND«-Symbole verbindet die gemeinsame
    Bezugsmasse

Jeder Knotenpunkt braucht eine Bezeichnung: Die Bezugsmasse heißt »0«, auch die Bezeichnungen der Versorgungsspannungen sind klar: »vcc« und »vncc«. Die Namen für die anderen könnte Gschem selbst erzeugen, was aber die spätere Eingabeliste unübersichtlich macht. Es ist daher gut, jede Verbindungslinie per Doppelklick manuell zu taufen.

Zurück zu den Bauteilen: Für die Widerstände eignen sich die Symbole »resistor-2.sym« oder »resistor-1.sym« aus der Bibliothek »analog«. Im Attribut »refdes« benennen Sie das Bauteil »R1«, »R2« und so weiter, »value« ist der Widerstandswert, hier »1K« oder »10K«.

Mit den gezeigten Schritten könnten Sie nun das Schaltbild aus Abbildung 2 vervollständigen, wäre da nicht der Operationsverstärker, der bei den mitgelieferten Bauteilbibliotheken fehlt. Bevor Sie sich an dieses Bauteil wagen, speichern Sie Ihre Arbeit mit »Datei | Seite schließen«.

Externe Bauelemente

Mit Gschem können Sie Bauteilsymbole selbst erzeugen – wenn Sie alle Daten haben. Meist stellen die Halbleiterhersteller ihre Spice-Modelle online. Unter [4] gibt\’s eines für den LM324, das Sie im Projektordner als »model/LM324.MOD« speichern. Bei dieser Gelegenheit erzeugen Sie gleich einen Ordner »sym« für die eigenen Symbole.

Für den LM324 nehmen Sie am besten das Symbol eines vorhandenen Bausteins als Vorlage. Hierzu platzieren Sie »opamp-1.sym« aus der Bibliothek »analog« im Hauptfenster. Markieren Sie es und wählen aus dem Symbolleistenmenü »Hierarchie | zum Symbol hinab«. Jetzt sind Sie Gast in die Symbolebene. Dort speichern Sie eine Kopie des Symbols als »sym/lm324.sym«. Im oberen Bereich des Fensters steht »U?«. Ein Doppelklick darauf öffnet ein Fenster, in dem Sie das Attribut »refdes« von »U?« auf »X?« ändern. Der Sinn der Aktion ergibt sich später beim Simulationsvorgang.

Im Model-File in Listing 1 legt Zeile 12 fest, welche LM324-internen Knoten an die übergeordnete Schaltung anzubinden sind und in welcher Reihenfolge. Für Pin 1 klicken Sie einfach drauf. Im Attribute-Fenster benennt »pinnumber« den Pin im Schaltplan, »pinseq« muss »1« bekommen, da das Model-File den nicht-invertierenden Eingang als Erstes übergibt. Als Zweites reicht das Operationsverstärker-Model-File den invertierenden Eingang weiter. Konsequenterweise geben Sie dem »pinseq«-Attribut den Wert »2«. An dritter Stelle kommt der Anschluss für die positive Versorgungsspannung, hier muss »pimseq« also »3« werden – und nicht etwa die dritte Zahl (»99«) aus Zeile 12 von Listing 1.

Listing 1: Model-File des LM324
(Auszug)

01 *///////////////////////////////////////////////////
02 *LM324 Low Power Quad OPERATIONAL AMPLIFIER MACRO-MODEL
03 *//////////////////////////////////////////////////
04 *
05 * connections: non-inverting input
06 *                 |   inverting input
07 *                 |    |   positive power supply
08 *                 |    |    |  negative power supply
09 *                 |    |    |    |   output
10 *                 |    |    |    |    |
11 *                 |    |    |    |    |
12 .SUBCKT LM324/NS  1    2   99   50   28

Prüfen Sie sicherheitshalber die »pinseq«-Attribute aller Pins, im vorliegenden Fall sollten sie stimmen, was aber eher ungewöhnlich ist. Indem Sie das Symbol im Unterordner »sym« speichern, erzeugen Sie zugleich eine neue Symbolbibliothek »sym«. Beenden Sie Gschem. Die neue Bibliothek geben Sie Gschem bekannt, indem Sie im Projektordner eine Konfigurationsdatei namens »gschemrc« mit folgendem Inhalt erstellen:

(component-library "./sym")

Nach einem Neustart innerhalb des Projektordners finden Sie das neue »lm324.sym« in der Bibliothek »sym«. Platzieren Sie es nun und verpassen ihm die in Abbildung 5 dargestellten Attribute. »file« nennt den Ort der Model-Datei. Model-Dateien dürfen auch mehrere Bauteile enthalten, was das Attribut »model- name« entwirren hilft. Vervollständigen Sie den Rest der Schaltung nach Abbildung 2 Zug um Zug, beenden Gschem – und sind jetzt bereit fürs Simulieren.

Abbildung 5: Das soeben neu erzeugte Symbol des LM324 versehen Sie mit den dargestellten Attributen.

Abbildung 5: Das soeben neu erzeugte Symbol des LM324 versehen Sie mit den dargestellten Attributen.

Simulationstools

Zur Simulation kommen Ngspice oder Gnucap in Frage. Beide gehören zum Umfang von Geda. Ngspice bietet einen gigantischen Funktionsumfang und ist darum Gegenstand der weiteren Betrachtung. Gnucap bietet dafür die Möglichkeit, interaktiv Bauteilparameter testweise abzuändern und wieder zurückzurollen. Ngspice beherrscht:

  • Gleichstromanalyse
  • Wechselstrom-Kleinsignalanalyse
  • Einschwinganalyse
  • Fourieranalyse
  • Pol-Nullstellenanalyse
  • Rauschanalyse
  • Empfindlichkeitsanalyse

Zudem einige andere. Für alle Analysearten müssen die Schaltungen den in Abbildung 6 gestellten Forderungen gerecht werden. Wichtig ist auch, dass Ngspice Bauelemente als ideal ansieht. Sekundäreinflüsse, beispielsweise die Induktivität von Kondensatoranschlüssen, müssen Sie bei Bedarf durch zusätzliche Bauelemente nachstellen.

Abbildung 6: Damit die funktionieren, dürfen Schaltungen diese vier Nebenbedingungen nicht verletzen.

Abbildung 6: Damit die funktionieren, dürfen Schaltungen diese vier Nebenbedingungen nicht verletzen.

Überhaupt spiegelt ein Simulationsprogramm nie die ganze Wirklichkeit wider. Ein echter Widerstand hat immer eine Abweichung vom Nennwert. Auch das Umgebungsrauschen, das manche Oszillatorschaltungen zum Anlaufen benötigen, ist der Simulationsumgebung fremd. Daher sollten Sie jedes Simulationsergebnis auf Plausibilität prüfen. Wie bei jeder wissenschaftlichen Computersimulation führen falsche Parameter leicht in die Irre.

Eingabedatei mit Element- und Modellzeilen

Der (unten beschriebene) Simulationslauf ist mit ein, zwei kurzen Befehlen passiert. Umso komplexer fallen die Eingabedaten aus, die Ngspice als Netzliste will. Diese Textdatei beginnt mit einer Titelzeile und endet mit ».END«. Dazwischen stehen in beliebiger Anzahl und Reihenfolge: Elementzeilen, Modellzeilen, Steuerkommandos zur Simulation, Kommentare und Subcircuits.

In einer Elementzeile sind Leer- und Gleichheitszeichen, Kommas und runde Klammern gültige Separatoren. Wollen Sie eine Zeile umbrechen, stellen Sie der Folgezeile ein »+« voran. Der erste Abschnitt der Elementzeile enthält den Namen, dessen erster Buchstabe den Typ festgelegt. Die Zei- le informiert zudem über die Knotenverbindungen und per Parameter über die elektrischen Bauteil-Eigenschaften (siehe Kasten “Elementzeilen für wichtige Bauteile”). Die meisten Bauelemente benötigen nur wenige Parameter, andere sehr viele – vor allem Halbleiter.

Elementzeilen für wichtige
Bauteile

Widerstände

RName Knoten1 Knoten2 Widerstand_in_Ohm Optionen

Beispiel: »R1 0 1 2 2K«, Widerstand R1, 1 Kiloohm zwischen den Knoten 0 und 1

Kondensatoren

CName Knoten1 Knoten2 Kapazität_in_Farad Optionen

Beispiel: »C2 1 5 1n«, Kondensator C1, 1 Nanofarad zwischen den Knoten 1 und 5

Spulen

LName Knoten1 Knoten2 Induktivität_in_Henry Optionen

Beispiel: »L3 1 6 1u«, Spule L3 mit 1 Mikrohenry zwischen den Knoten 1 und 6

Übertrager/Transformatoren

KName  LElementname_Induktivität1 MElementname_Induktivität2 Koppelfaktor

Beispiel: Erste Spule: »L3 1 6 1u«, zweite Spule: »L4 1 7 1u«, gekoppelt: »K1 L3 L4 0.44«

Dioden

DName Anoden-Knoten Kathoden-Knoten Modellname Optionen

Beispiel: »D1 1 0 1N4001«, Diode 1N4001, Anode an Knoten 1, Kathode an 0

Bipolare Transistoren

QName Kollektor-Knoten Basis-Knoten Emitter-Knoten Modellname Optionen

Beispiel: »Q1 1 2 0 BC337«, Transistor vom Typ BC337, Kollektor an Knoten 1, Basis an Knoten 2 und Emitter an Masse

Unabhängige Spannungsquellen

VName Knoten1 Knoten2 DC | Quellenart | AC Betrag_der_Gleich-/Wechselstromgröße Phasenverschiebung Optionen

Quellenarten: Exponentialfunktion »EXP«, periodische Impulsfunktion »PULSE«, stückweise lineare Funktion »PWL«, Sinus »SIN«, frequenzmodulierter Sinus »SFFM«

Beispiel 1: »VIN 0 1 DC 3«, Gleichspannungsquelle 3 Volt

Beispiel 2: »VIN 0 1 SIN 0 5 1k«, Wechselspannungsquelle für die Einschwinganalyse ohne Gleichspannungsanteil, 5 Volt Amplitude, 1 Kilohertz

Unabhängige Stromquellen

IName Knoten1 Knoten2 DC | Quellenart | AC Betrag_der_Gleich-/Wechselstromgröße Phasenverschiebung Optionen

Ansonsten identisch mit Spannungsquellen; Beispiel: »IIN 0 1 AC 1 90«, Wechselstromquelle mit 1 Ampere und 90° Phasenverschiebung; die Frequenz bestimmen die Simulationskommandos

Oft setzt man Bauteile mit identischen Parametern ein. Sie können einen solchen Parametersatz mit einer Modellzeile definieren und mit einem Namen versehen. Sich darauf beziehende Elementzeilen verweisen dann nur noch auf diesen Namen. Parameter für die Modellzeile liefert oft der Hersteller. Die Syntax:

.MODEL Name Type (Parameter1=Wert Parameter2=Wert ...)

»Type« ist »D« für Dioden, »NPN« oder »PNP« für Transistoren, »NJF«, »PJF«, »NMF«, »PMF«, »NMOS« und »PMOS« für Feldeffekttransistoren. Im Anschluss folgt die Parameterliste, beispielsweise:

.MODEL meintransistor NPN (BF=50 IS=1E-13 VBF=50)

Eine Elementzeile, die den Typ referenziert und mit den Knoten 1, 2 und 3 verbindet, wäre »Q1 1 2 3 meintransistor«.

Subcircuits

Ngspice kennt zunächst nur einfache Bauelemente. Kompliziertere, zum Beispiel integrierte Schaltkreise, müssen Sie mit diesen elementaren Elementen nachbauen, üblicherweise in einem Subcircuit. Das ist ein gesonderter Abschnitt in der Eingabedatei, den Sie beliebig oft referenzieren können. Die Model-Datei für den LM324 hat lediglich einen Subcircuit für diesen Baustein. Ein Subcircuit darf weitere Subcircuits definieren:

.SUBCKT Bezeichnung N1 N2 N3 N4...Nn
Weitere_Elementzeilen
Weitere_Subcircuit-Definitionen
.ENDS Name

Das folgende Beispiel beschreibt einen Spannungsteiler-Subcircuit, der aus zwei Widerständen in Reihe besteht:

.SUBCKT meinIC 1 2 3
R1 1 2 1k
R2 2 3 1K
.ENDS

Die Zeile zur Referenzierung eines Subcircuit ist ebenfalls einfach:

XName K1 K2 K3 K4...Kn Bezeichnung

»X« gibt an, dass das Bauteil irgendwo in der Eingabedatei als Subcircuit definiert ist. Die Ks bezeichnen die Schaltungsknoten der aufrufenden Schaltung, mit denen der Subcircuit verbunden wird. Das obige Beispiel lässt so referenzieren:

XSpannungsteiler 11 12 14 meinIC

Knoten 1 des Subcircuit verbindet sich mit dem Knoten 11 der aufrufenden Schaltung, Knoten 2 des Subcircuit mit Knoten 12 der Schaltung, Knoten 3 mit Knoten 14.

Ergebnisse retten

Wenn Ngspice später per »-b« im Batchmodus läuft, darf die Eingabedatei das ».SAVE«-Kommando enthalten, das die Ergebnisse (Vektoren) der Simulation in einer Datei speichert. Die Syntax lautet:

.SAVE Vektor1 Vektor2 ...

Die Zeile ».SAVE V(vout) V(vin)« speichert die Spannungen an den Knoten »vout« und »vin«. Den Dateinamen bekommt Ngspice bei seinem Aufruf per »-r« übergeben. Es kann die Ergebnisdatei wieder laden und mit ».PRINT« (als Text) oder ».PLOT« (grafisch) ausgeben. Die Syntax ist für beide identisch:

.PRINT | .PLOT Analysetyp OV1 OV2 OV3 ....

Aus dem Analysetyp kommen die Daten, mögliche Werte sind: »DC«, »AC«, »TRAN«, »NOISE« und »DISTO«. »OVx« behandelt die auszugebenden Größen. So gäbe ».PLOT TRAN V(out) V(vin, vout)« die Spannung am Knoten »vout« und die Spannungsdifferenz »vout-vin« nach der Transientenanalyse grafisch aus.

Eingabedatei erzeugen

Sinnvoller ist es, die Eingabedatei mit dem Tool Gnetlist aus dem Gschem-Schaltplan zu erzeugen. Zunächst sollten Sie den Schaltplan mit

gnetlist -g drc2 opamplifier.sch -o outp.txt

auf Fehler prüfen. Die Ausgabe landet in der Datei »outp.txt«. Finden sich keine Fehler, dürfen Sie die Netzliste mit

gnetlist -g spice-sdb -o opamplifier.cir opamplifier.sch

erzeugen. Der Parameter »-g spice-sdb« veranlasst Gnetlist dazu, die Netzliste »opamplifier.cir« im so genannten erweiterten Spice-Format zu erstellen.

Listing 2 zeigt einen Auszug aus dieser Datei. Zeile 1 ist die Titelzeile. Von Zeile 9 bis Zeile 126 läuft die Schaltungsbeschreibung des LM324 als Subcircuit – eine 1:1-Kopie der Model-Datei. Die eigentliche Beschreibung beginnt ab Zeile 131 mit dem Widerstand R4 zwischen dem Knoten »0« (Masse) und »vout«. Die Zeilen 132 bis 134 beschreiben die drei anderen Widerstände, die Zeilen 136 bis 140 die Kondensatoren und die Spannungsquellen der Schaltung.

Listing 2: Netzliste der
Beispielschaltung

001 My first circuit
002 * gnetlist -g spice-sdb -o opamplifier.cir opamplifier.sch
003 *******************************************
004 * Spice file generated by gnetlist        *
005 * spice-sdb version 12.27.2005 by SDB -   *
006 * provides advanced spice netlisting      *
007 * capability. Documentation at http://www.brorson.com/gEDA/SPICE/ *
008 *******************************************
009 * Included SPICE model from model/LM324.MOD
    [Kopie der LM324-Modeldatei]
127 *$
128 *^^^ End of included SPICE model from model/LM324.MOD ^^^
129 *
130 *===  Begin SPICE netlist of main design ===
131 R4 0 vout 10k
132 R3 vopout vopn 1k
133 R2 0 vopn 1k
134 R1 0 vopp 10k
135 X1 vopp vopn Vcc -Vcc vopout LM324/NS
136 C2 vopout vout 100n
137 Vvcc Vcc 0 DC 5V
138 C1 vin vopp 200n
139 Vvin vin 0 sin 0 2.3 1k
140 Vnvcc -Vcc 0 DC -5V
141 .END

Das Einbinden dieses Subcircuit geschieht in Zeile 135. »X1« steht für den Aufruf. Wenn Sie einen zweiten LM324 in der Schaltung hätten, hieße er »X2«. Die in Zeile 135 folgenden Parameter verbinden die in der Schaltung definierten Knoten mit denen des Subcircuit.

Einschwinganalyse

Was nun fehlt, sind die Simulationsbefehle. Primär ist eine Analyse der Knotenspannungen im Zeitbereich interessant, die so genannte Einschwing- oder Transientenanalyse. Die Syntax lautet:

.TRAN Ausgabeschrittweite Stoppzeit Startzeit Tmax

Die Ausgabeschrittweite ist der Abstand auf der Zeitachse, in der Ngspice die Ergebnisse ausgibt. Stoppzeit und Startzeit stehen für das Zeitintervall der Analyse. Wird die Startzeit nicht angegeben, setzt Ngspice sie auf null. Andernfalls berechnet es die Signalverläufe im Zeitintervall von t=0 bis T=Startzeit, um daraus die Anfangsbedingungen zum Zeitpunkt t=Startzeit zu ermitteln.

Ngspice beginnt die Simulation mit der Berechnung der Spannungen bei t=0. Dann erhöht es t um eine Konstante und analysiert mit Differenzialrechnungen die Spannungen erneut. Diesen Vorgang wiederholt es bis zum Ende des vorgegebenen Zeitintervalls.

Die Zeitkonstante errechnet sich mit (Stoppzeit – Startzeit)/50. Ist das Ergebnis jedoch größer als die Ausgabeschrittweite, wird diese verwendet. Der Wert muss gut überlegt sein: Ist die Zeitkonstante zu klein, dauert die Simulation sehr lange. Ist sie zu groß, ignoriert sie wichtige Details.

Für eine Analyse im vorliegenden Beispiel erweitern Sie die Eingabedatei um:

* Ng-Spice Simulation Commands
.IC V(-Vcc)=0.0 V(Vcc)=0.0 V(vin)=0.0V(vopn)=0.0 V(vopout)=0.0 V(vopp)=0.0V(vout)=0.0
.TRAN 100.00u 10.00m 0.00 100.00u

Das IC-Kommando setzt alle Spannungen zum Zeitpunkt t=0 auf 0 Volt. Die Signalquelle schwingt mit 1 Kilohertz, was 1 Millisekunde Schwingungsperiode entspricht. Mit Stoppzeit=10 Millisekunden läuft die Simulation also über zehn Perioden hinweg. Innerhalb einer Periode liegen zehn Berechnungsabschnitte, was Ausgabeschrittweite=Tmax=100 Mikrosekunden bedeutet.

Simulieren bitte!

Mit »ngspice opamplifier.cir« startet Ngspice im interaktiven Modus und lädt die Netzliste in den Speicher. »run« stößt die Simulation an. An deren Ende lassen Sie sich mit »plot vin vout« die Spannungsverläufe an den beiden übergebenen Knoten grafisch ausgeben. Mit »source opamplifier.cir« laden Sie die Eingabedatei neu, wenn Sie die Schaltung zwischendurch geändert haben.

Die »plot«-Ausgabe ist in Abbildung 8 zu sehen, das Eingangssignal ist rot, das Ausgangssignal blau. Letzteres sollte eigentlich sinusförmig und doppelt so groß wie das Eingangssignal sein. Dem ist nicht so! Das (bewusst eingebaute) Problem ist, dass bei Operationsverstärkern der Ausgangsbereich begrenzt ist. Aus dem Datenblatt des LM324 [5] ist ersichtlich, dass das Ausgangssignal um 1,5 Volt von den Werten der Versorgungsspannungen entfernt bleiben soll. Da der LM324 hier mit +/- 5 Volt versorgt wird, darf das Ausgangssignal nicht mehr als 3,5 Volt und bei Verstärkungsfaktor 2 das Eingangssignal 1,75 Volt betragen.

Eine Möglichkeit, das Problem zu lösen, ist, die Werte von Vvcc und Vvncc zu vergrößern. Hierzu ändern Sie die Zeilen 139 und 140 in der Netzliste auf:

Vvcc Vcc 0 DC 7.5V
Vvncc -Vcc 0 DC -7.5V

Eine erneute Simulation zeigt den Fehler nicht mehr. Ein anderer Ansatz ist, den LM324 gegen einen Rail-to-Rail-Typ wie den OP291 auszutauschen, bei dem sich der Ausgang bis fast zur Versorgungsspannung aussteuern lässt.

Einschwinganalyse im Frequenzbereich

Interessant ist, die im Zeitbereich errechneten Signalverläufe der Einschwinganalyse im Frequenzbereich zu betrachten, also die harmonischen Oberwellen. Bei der Fourieranalyse – sie bildet die mathematische Grundlage zur Einschwinganalyse im Frequenzbereich – bleibt die Frequenz am Eingang konstant. Beim Umrechnen vom Zeit- in den Frequenzbereich zieht sie nicht den gesamten Signalverlauf heran, sondern nur den Bereich von t=Stoppzeit – 1/Grundfrequenz bis t=Stoppzeit.

Leider vermag Ngspice die Ergebnisse der Fourieranalyse nur als Text im Batchmodus auszugegeben. Als Beispiel dient das verzerrte Ausgangssignal aus Abbildung 7, bei dem ein erhöhter Anteil von Oberwellen zu erwarten ist. Als Vorbereitung erweitern Sie die Eingabedatei aus Listing 2 um die Befehlszeilen:

*Ng-Spice Simulation Commands
.FOUR 1000Hz  V(vout)
.TRAN 100.00u 10.00m 0.00 10.00u
Abbildung 7: Grafische Ausgabe der Einschwinganalyse. Das Eingangssignal ist rot dargestellt, das Ausgangssignal blau.

Abbildung 7: Grafische Ausgabe der Einschwinganalyse. Das Eingangssignal ist rot dargestellt, das Ausgangssignal blau.

Die zweite Zeile veranlasst Ngspice zur Fourieranalyse im Anschluss an eine Transientenanalyse am Knoten »vout«. Die Grundfrequenz von 1000 Hertz ist identisch mit der Frequenz des zu untersuchenden Signals. Da die Periodendauer folglich 1 Millisekunde beträgt, zieht Ngspice den Bereich von 9 bis 10 Millisekunden zur Berechnung heran. Die dritte Zeile entspricht der vorhin beschriebenen Transientenanalyse. Die Ngspice-Dokumentation empfiehlt, den Parameter »Tmax« auf Periode/100 zu setzen, im vorliegenden Fall sind dies 10 Mikrosekunden.

Die Simulation startet mit dem Kommando »ngspice -b opamplifier.cir«. Ngspice berechnet den Gleichspannungsanteil und die ersten neun Harmonischen der Grundfrequenz, zu sehen in Listing 3. Erwartungsgemäß gibt es als Folge der abgeschnittenen Signalspitze einen recht hohen Anteil harmonischer Oberwellen.

Listing 3: Transienten- plus
Fourieranalyse

01 Harmonic Frequency Magnitude   Phase    Norm. Mag   Norm. Phase
02 -------- --------- ---------   -----    ---------   -----------
03  0       0         0.00249704  0        0           0
04  1       1000      4.36592     13.4395  1           0
05  2       2000      0.147971    103.316  0.0338923   89.8762
06  3       3000      0.124689    16.1264  0.0285595   2.6869
07  4       4000      0.0965671   -69.983  0.0221184   -83.423
08  5       5000      0.0667338   -156.07  0.0152851   -169.51
09  6       6000      0.0393076   118.076  0.00900329  104.636
10  7       7000      0.0164897   31.6333  0.0037769   18.1938
11  8       8000      0.000180957 47.1143  4.14477e-05 33.6748
12  9       9000      0.00978131  39.8708  0.00224038  26.4313

Wechselstrom-Kleinsignalanalyse

Die AC-Small-Signal-Analysis berechnet die Knotenspannungen als Funktion der Frequenz. In der Schaltung muss sich eine Strom- oder Spannungsquelle befinden, deren Frequenz über einen vorgegebenen Bereich hin variiert. Die Analyse nimmt die Kennlinien der Bauteile im Arbeitspunkt als linear an, eine Forderung, die beispielsweise bei Transistoren in manchen Kennlinienbereichen zu Ungenauigkeiten führt. Die Befehlssyntax:

.AC DEC | OCT | LIN Punkte_pro_Dekade_bzw_Oktave Startfrequenz Stoppfrequenz

Um also das Verhalten der Beispielschaltung bei variabler Eingangsfrequenz zu betrachten, ändern Sie die Kommandos so ab, dass Ngspice den Frequenzbereich dekadenweise mit 10 Punkten pro Dekade berechnet, beginnend bei 1 Hertz und endend bei 1 Megahertz:

.AC DEC 10 1 1.00Meg

Außerdem müssen Sie in der Netzliste die Spannungsquelle »Vvin« in Zeile 139 von Listing 2 so abändern, dass ihre Frequenz variabel ist: »Vvin vin 0 AC 2.50«. Nachdem Sie die geänderte Eingabedatei mit dem Befehl »source opamplifier.cir« neu geladen haben, startet »run« einen neuen Simulationslauf.

Der Befehl »plot mag(vout) mag(vin) man(vopout) mag(vopp)« erzeugt die in Abbildung 8 dargestellten Frequenzspektren. Die eben benutzte Betragsfunktion »mag« ist wichtig, da Ngspice die Spannungen als mathematisch komplexe Größen auswirft. Ohne »mag« würde »plot« lediglich den Realteil erwischen, gewünscht ist aber der Betrag.

Abbildung 8: Die per Wechselstrom-Kleinsignalanalyse errechneten Frequenzspektren der Knotenspannungen »vout«, »vin«, »vopout« und »vopp«.

Abbildung 8: Die per Wechselstrom-Kleinsignalanalyse errechneten Frequenzspektren der Knotenspannungen »vout«, »vin«, »vopout« und »vopp«.

Gleichstromanalyse

Die DC-Analysis kennt drei Spielarten: die Berechnung der Arbeitspunkte, die Übertragungskennlinien und die Übertragungsfunktionen zwischen Ausgangsgrößen und Eingangsgrößen.

Ngspice führt eine Arbeitspunkteberechnung grundsätzlich vor jeder anderen Simulation durch, das Kommando lautet ».OP«. Es behandelt dabei Induktivitäten wie Kurzschlüsse und Kapazitäten wie Unterbrechungen. Daraus lassen sich übrigens einige Verbote aus Abbildung 6 logisch erklären. Ersetzt man etwa in der oberen linken Schaltung die Induktivität durch eine Kurzschluss, wäre der Strom durch die Spannungsquelle mathematisch gesehen unendlich hoch – tödlich für den Algorithmus.

Die Arbeitspunkte nicht-linearer Bauelemente wie Dioden oder Transistoren ermittelt Ngspice schrittweise in einem komplizierten Rechenverfahren. Dieser Algorithmus vermag bei seltenen Schaltungskombinationen (beispielsweise Regelschleifen) keine eindeutigen Lösungen zu ermitteln – er bricht dann mit einer Fehlermeldung ab. Näheres ist in der Dokumentation »ngspice.pdf« im Kapitel 6.3 “Convergence” zu lesen.

Ein Beispiel: Abbildung 9 zeigt eine Reihenschaltung aus einem Widerstand und einer Diode, Listing 4 die passende Eingabedatei. Das OP-Kommando in Zeile 7 ermittelt die Gleichspannungen und Ströme an den Knoten »in« und »out«. Wenn Sie die Simulation mit »run« starten, liefert ein späteres »print all«:

ngpsice 303 -> print all
in = 1.000000e+1
out = 7.721301e-01
v0#branch = -9.22787e-02

Die Deutung: Die Gleichspannung am Knoten »in« beträgt 1 Volt, an »out« liegen 0,7 Volt an. Die etwas kryptisch anmutende Größe »v0#branch« steht für einen Gleichstrom von 0,09 Ampere.

Abbildung 9: Eine simple Beispielschaltung, passend zu Listing 4 zur Gleichstromanalyse.

Abbildung 9: Eine simple Beispielschaltung, passend zu Listing 4 zur Gleichstromanalyse.

Listing 4: Eingabedatei für
Gleichstromanalyse

01 D1   out   0    default_diode
02 RL   in    out  100
03 V0   in    0    DC 10
04 
05 .MODEL default_diode D
06 *Simulationsanweisung
07 .OP
08 .END

Tipps zum Umgang mit
Ngspice

  • Im grafischen Ausgabefenster können Sie die Abstände
    entlang der horizontalen und vertikalen Achsen messen, indem Sie
    den Mauszeiger von einem Punkt zum anderen bewegen und dabei die
    linke Maustaste gedrückt halten. Ngspice gibt dann die
    gemessenen Abstände auf der Konsole aus.
  • Möchte Sie einen Teil des Ausgabefensters
    vergrößern, zieht Sie den Mauszeiger bei gedrückter
    rechter Maustaste über diesen Bereich. Es öffnet sich ein
    Fenster mit der Ausschnittsvergrößerung.
  • Beim Definieren der Simulationskommandos innerhalb der
    Netzliste geht Ihnen Gspiceui zur Hand, ein grafisches Frontend
    für Gnucap und Ngspice. Das Tool im Alphastadium installiert
    sich nicht automatisch, was ein »make install« im
    Verzeichnis »~/geda-sources/gspiceui-v0.8.55« nachholt.
    Der Aufruf ist einfach, beispielsweise: »gspiceui
    opamplifier.cir«.

Kennlinien und Funktionen

Der Befehl ».DC« lässt Ngspice Gleichstrom-Übertragungskennlinien ermitteln:

.DC Elementname_der_Quelle Startwert Stoppwert Schrittweite Optionen

Als Quelle, deren Ausgangswert variieren soll, kommt eine unabhängige Strom- oder Spannungsquelle ebenso in Frage wie ein Widerstandswert oder eine Temperatur. Das Duo Abbildung 9 und Listing 4 muss nochmals herhalten. Wechseln Sie jedoch die Zeile 7 gegen

.DC V0 0V 10V 0.2V

aus. Das Kommando erhöht die Spannung der Quelle V0 in Schritten von 0,2 Volt von 0 auf 10 Volt. Auf diese Weise errechnen sich die Kennlinien aller Gleichstromgrößen in Bezug auf V0. Das Kommando »plot V(out)« veranlasst Ngspice nach einem »run« dazu, die Spannung am Knoten »out« als Funktion von V0 auszugeben – zu besichtigen in Abbildung 10.

Abbildung 10: Ergebnis der Gleichstromanalyse der Schaltung aus Abbildung 9. Das Diagramm zeigt die Größe der Spannung V(out) als Funktion der Eingangsspannung V(in).

Abbildung 10: Ergebnis der Gleichstromanalyse der Schaltung aus Abbildung 9. Das Diagramm zeigt die Größe der Spannung V(out) als Funktion der Eingangsspannung V(in).

Die dritte Variante vertritt das Kommando ».TF«, es ermittelt die Übertragungsfunktion zwischen einer Ausgangs- und einer Eingangsgröße sowie der zugehörigen Ein- und Ausgangswiderstände. Schaltplan und Listing 4 müssen ein drittes Mal ran, jetzt mit

.TF V(out) V0

als Zeile 7. Ngspice macht eine Analyse für kleine Gleichspannungen, die es der Eingangsquelle überlagert. Nach der Simulation liefert »print all«:

ngspice 318 -> print all
transfer_function = 2.794989e-03
output_impedance_at_v(out) = 2.794989e-01
v0#input_impedance = 1.002803e+02

Das bedeutet: Bekommt die Spannungsquelle V0 eine winzige Gleichspannung überlagert, dann würde diese mit einem Faktor von 0,0027 (»transfer_function«) auf den Ausgang übertragen. (In der Praxis unbedeutend klein und daher als null anzusehen.) Die Gleichspannung sieht an der Schaltung einen Eingangswiderstand von 100 Ohm (»v0#input_impedance«). Das (kaum messbare) Ausgangssignal kommt mit einem Widerstand von 0,28 Ohm heraus (»output_impedance«).

Pol-Nullstellen-Analyse

Diese Analyseart berechnet zwischen einem Schaltungseingang und einem Schaltungsausgang die Nullstellen und Pole einer Übertragungsfunktion. Ein Pol ist eine Nullstelle im Nenner einer Funktion. Zur Bestimmung der Übertragungsfunktion zieht Ngspice die komplexe Wechselstromrechnung heran. Der Systemanalytiker gewinnt aus der Lage der Pole und Nullstellen wichtige Informationen über die Stabilität einer Schaltung, also ihrer Neigung zu Eigenschwingungen, sowie zum Amplitudenverlauf des Ausgangssignals.

Im Prinzip gilt eine Schaltung als stabil, weist also keine Eigenschwingungen auf, wenn alle Pole in der linken komplexen Halbebene liegen. Die RC-Schaltung aus Abbildung 11 dient als Beispiel. Die Übertragungsfunktion, also die Spannung am Ausgang in Abhängigkeit von der Frequenz, berechnet sich durch:

H(f)=Uin/Uout=(j2*pi*fC)/(j2*pi*fC+r)=1/(1+j2*pi*fRC)
Abbildung 11: Die Beispielschaltung zur Demonstration der Pol-Nullstellen-Analyse.

Abbildung 11: Die Beispielschaltung zur Demonstration der Pol-Nullstellen-Analyse.

Per Substitution p=2*pi*f erhält man H(p)=1/(1+pRC). Die Übertragungsfunktion hat einen Pol für p=-1/RC. Für R1=1 Kiloohm und C1=10 Picofarad existiert ein reeller Pol für p=-100 MHz.Listing 5 zeigt die Eingabedatei für die Schaltung. Zeile 5 bestimmt Ein- und Ausgang. Dank »vol« berechnet sich die Übertragungsfunktion als Ausgang/Eingang. »cur« wäre das Gegenteil und »pz« würde die Nullstellen einbeziehen. Listing 6 zeigt Ngspices Ausgabe, die die obige Berechnung stützt. Abbildung 12 verortet den Pol in der linken Halbebene – das RC-Glied selbst schwingt nicht.

Abbildung 12: Die Lage des Pols in der komplexen Ebene, berechnet für die Schaltung aus Abbildung 11.

Abbildung 12: Die Lage des Pols in der komplexen Ebene, berechnet für die Schaltung aus Abbildung 11.

Listing 5: Eingabedatei zur
Pol-Analyse

01 RC filter
02 V0 in 0 0 ac 1.0
03 R1 in out 1k
04 C1 out 0 10p
05 .pz in 0 out 0 vol pz
06 .print all
07 .end

Listing 6: Ausgabe einer
Pol-Analyse

01 Circuit: RC filter
02 
03 Doing analysis at TEMP = 300.1500 and TNOM = 300.1500
04         RC filter
05         Pole-Zero Analysis  Thu Sep 28 09:14:18  2006
06 -----------------------------------------------------
07 Index   all
08 -----------------------------------------------------
09 0       -1.000000e+08,      0.000000e+00

Rausch-, Empfindlichkeits- und andere Analysen

Ngspice hält Algorithmen zum Berechnen der thermischem Rauschleistung [14] bereit. Für Halbleiterbauelemente kann es zudem das Schrot- und Funkelrauschen berücksichtigen. Die Rauschanalyse erfolgt stets im Zusammenhang mit einer für Wechselstrom. Die Programmausgaben erfolgen als Strom- oder Spannungsquadrate bezogen auf die Rauschleistung innerhalb von 1 Herz Bandbreite und (einstellbaren) 27°C.

Um Rauschspannungen zu ermitteln, berechnet Ngspice die Rauschbeiträge der einzelnen Bauteile und summiert sie. Interessant ist die Möglichkeit, die errechnete Rauschspannung auf den Schaltungseingang zurückzurechnen. Sie können sich so eine Signalquelle errechnen, die am Ausgang identisches Rauschen verursacht – unter der Annahme, dass die Elemente selbst rauschfrei wären.

Ngspice kennt noch andere Simulationsarten, beispielsweise eine Empfindlichkeitsanalyse von Knotenspannungen in Bezug auf andere Knoten und Modellparameter (Kommando »SENS«). Die braucht man jedoch recht selten, statt langer Erklärungen sei auf die Dokumentation, die mitgelieferten Beispiele sowie auf [10] verwiesen.

Häufiger brauchen Sie vielleicht Gwave aus der Geda-Suite, ein Tool zur grafischen Kurvendarstellung, das Sie selbst aus dem Verzeichnis »gwave« (oder eine neuere Version von [3]) nachinstallieren müssen. Die »INSTALL«-Datei nennt die Abhängigkeiten, etwa Guile-gtk von [7]. Danach ist das Tripel »./configure«, »make« und »make install« dran.

Suse-10.0-Benutzer konfrontiert »build- guile-gtk« mit einem Pfadproblem, das die FAQ-Datei im Quellcodeverzeichnis lösen kann. Abbildung 13 zeigt Gwave in Aktion. Um eine Variable aus dem Variablenfenster links darzustellen, ziehen Sie diese auf eines der schwarzen Panels im Hauptfenster rechts.

Abbildung 13: Das manuell zu installierende Geda-Tool Gwave stellt Kurven dar.

Abbildung 13: Das manuell zu installierende Geda-Tool Gwave stellt Kurven dar.

Ein anderes gutes Tool ist Easyspice [6], ein Frontend zur Projektverwaltung, auf dessen grafischer Oberfläche sich Geda-Kommandos editieren lassen.

Alternativen zu Geda

Eine gute Alternative und Ergänzung zur Geda-Suite bietet Kicad von Jean-Pierre Charras [8]. Auf den ersten Blick wirken die Oberflächen komfortabel und aufgeräumt. Es besitzt einen eigenen Schaltplaneditor und erzeugt Netzlisten. Seine Stärken liegen aber im Leiterplattenlayout. Eindrucksvoll ist die 3D-Ansicht im PCB-Editor (siehe Abbildung 14).

Abbildung 14: Beim Konstruieren von Leiterplatten beeindruckt das Alternativ-Programm Kicad mit einer 3D-Ansicht.

Abbildung 14: Beim Konstruieren von Leiterplatten beeindruckt das Alternativ-Programm Kicad mit einer 3D-Ansicht.

Unter [9] steht eine ganze Palette weiterer frei verfügbarer Softwarepakete. Als Referenz auf dem Gebiet – wenn auch für Windows – gilt Orcad [11], das auch in Hochschulbereich für Laborübungen beliebt ist. Es bietet Vorteile in der grafischen Benutzerführung, beim Simulieren fallen die Unterschiede kleiner aus, Ähnliches gilt für Eagle ([12], [13]).

Fazit

Erfreulicherweise gibt es auf dem Gebiet Elektronikentwicklung ein großes Angebot frei verfügbarer Linux-Tools. Dieser Artikel beweist, dass die Geda-Suite Elektronik-Entwicklern mindestens die gleiche Funktionalität bereitstellt, die sie von teurer Software gewohnt sind. Projekte mit kleinem Budget kommen darum an der Suite kaum vorbei. (jk)

Infos

[1] Geda-Suite: [http://www.geda.seul.org]

[2] Geda-Tools: [http://geda.seul.org/wiki]

[3] Quellen und Binaries: [http://geda.seul.org/download.html]

[4] Modeldatei für LM324: [http://www.national.com/models/spice/LM/LM324.MOD]

[5] Datenblatt für LM324: [http://www.national.com/ds.cgi/LM/LM324.pdf]

[6] Easyspice: [http://easy-spice.sf.net]

[7] Guile-gtk: [http://www.gnu.org/software/guile-gtk]

[8] Kicad: [http://www.lis.inpg.fr/realise_au_lis/kicad/index.html]

[9] Liste freier Programme: [http://www.opencollector.org]

[10] Khakzar, Mayer, Oetinger, Kampe, Friedrich, “Entwurf und Simulation von Halbleiterschaltungen mit Pspice”: ISBN 3-8169-1262-1

[11] Orcad: [http://www.orcad.de]

[12] Eagle:[http://www.cadsoft.de]

[13] T. Füssl, J. Kleinert, “Schaltpläne und Leiterplatten-Layouts mit Eagle 4.0”: Linux-Magazin 02/02, S. 42

[14] Thermisches Rauschen: [http://de.wikipedia.org/wiki/Thermisches_Rauschen]

Der Autor


Axel Bauer hat Nachrichtentechnik an der Fachhochschule Esslingen studiert. Seit seinem Master-Abschluss an der Brunel University in London arbeitet er bei Philips Medizin-Systeme in Böblingen. Unter anderem entwickelt er Produktions-Testsysteme, wobei auch Linux-Rechner zum Einsatz kommen.

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben