Bei der Verwendung von gEDA werden einige Komponenten vom Rattennest ignoriert. Wie soll das gehandhabt werden?

Ich habe festgestellt, dass beim Ausführen von gsch2pcb zum Konvertieren eines gEDA-gschem-Schaltplans in ein PCB-Layout bestimmte Komponenten, die im Schaltplan ordnungsgemäß verbunden sind, im PCB-Layout nicht verbunden sind. Insbesondere Transistoren aus der Aktiensymbolbibliothek sind betroffen, aber dies wurde auch bei einigen anderen Aktienkomponenten beobachtet. (gschem-Version 1.6.2.20110115 - Ubuntu x64)

Um dies zu demonstrieren, habe ich einen neuen Schaltplan wie unten erstellteine einfache Transistorschaltung

Überprüfen Sie dann die Verbindungen (mit gnetlist -g drc2 demo.sch -o /dev/stdout), um sicherzustellen, dass alles verbunden ist. Allen Komponenten wurden gültige Footprints zugewiesen.

pat@frog:/tmp/x$ gnetlist -g drc2 x.sch -o /dev/stdout
Loading schematic [/tmp/x/x.sch]
Checking non-numbered parts...

Checking duplicated references...

Checking nets with only one connection...

Checking pins without the 'pintype' attribute...

Checking type of pins connected to a net...

Checking unconnected pins...

Checking slots...

Checking duplicated slots...

Checking unused slots...

No warnings found. 
No errors found. 

Dies wird dann mit gsch2pcb in ein PCB-Layout konvertiert und die Netzlistendatei geladen, und wir sehen das folgende Ratsnest (ich habe die Komponenten auch automatisch platziert):fehlerhaftes PCB-Layout

Warum wird der NPN-Transistor ignoriert? Es ist ein Standard-gEDA-Symbol (npn-3.sym) und ein Standard-Footprint (TO92) aus der PCB-Bibliothek. Ich habe sowohl die generierte Netzlistendatei geladen als auch die generierte .cmd-Datei ausgeführt, und beide Dateien listen die Pins auf Q1 auf. In der folgenden Netzliste sind alle 3 Pins von Q1 mit etwas verbunden.

pat@frog:/tmp/x$ cat x.net 
unnamed_net3    R3-2 LED1-2 
unnamed_net2    LED1-1 Q1-C R2-1 
+5V S1-2 R2-2 
GND R3-1 Q1-E R1-1 
unnamed_net1    Q1-B S1-1 R1-2 
gsch2pcb führt gnetlist selbst aus und generiert eine Netzlistendatei. Haben Sie das gleiche Problem, wenn Sie das verwenden? Sind auch die Netzlistendateien aus den beiden Fällen identisch?
Ja - der gnetlist-Befehl, den ich gegeben habe, generiert keine Netzlistendatei (gnetlist -g drc3 x.sch -o /dev/stdout) führt nur die drc2-Prüfung aus und gibt sie an stdout aus. Die x.net-Datei, die ich am Ende angegeben habe, wurde tatsächlich aus gsch2pcb generiert.
TO92 verwendet die Nomenklatur 1, 2, 3, während npn-3 die Nomenklatur C, E, B für die Pins verwendete. Benennen Sie die Pins auf dem Symbol um und Sie sollten höchstwahrscheinlich in Ordnung sein.
Sie haben Recht - es sind die Pin-Namen. Ich habe festgestellt, dass es ein Protokollfenster in PCB gibt, und hier sehe ich für jeden dieser Pins (E, C und B) "WARNUNG! Pin-Nummer, die mit 'C' endet, in der Netzlistendatei gefunden". Es scheint, dass die generischen NPN-Symbole fehlerhaft sind und wir die spezifischeren Symbole verwenden sollten (2N2222 oder BC547 funktionieren beide korrekt, als ich es versuchte). Wenn Sie eine Antwort geben, kann ich sie akzeptieren.

Antworten (2)

Die generischen NPN-Symbole verwenden BCE als Pin-Namen und nicht 1-2-3 wie der TO92-Footprint, der ein generisches Paket ist und nicht nur für Transistoren verwendet wird.

Die Netze sind mit den B-, C- und E-Pads von Q1 verbunden, die eigentlich nicht existieren, sodass Sie keine entsprechenden Leitungen auf Ihrem Rattennest haben.

Sie sollten die Symbole bearbeiten, um die 1-2-3-Namen für die Pins (in Pinnummer) zu verwenden. Diese sollten mit den Namen der Pads in den Footprints übereinstimmen.

Es ist so etwas wie ein philosophisches Argument darüber, wie es konventionell gemacht werden sollte. Im Moment scheint mir persönlich die Verwendung von 1-2-3 sauberer zu sein, aber es hilft, sich daran zu erinnern, dass Transistoren nicht immer in TO92 enthalten sind und es daher möglicherweise einfacher ist, BCE von einem Paket zu einem anderen zu wechseln (obwohl Sie es dann getan hätten). ein alternativer Footprint zu TO92 in Ihrer Bibliothek speziell für Transistoren)

Dieser Konflikt zwischen Schaltplan-Pin-Namen und PCB-Pin-Nummern ist vielen CAD-Systemen gemeinsam. Ich ziehe es vor, die schematischen Pins als EBC zu belassen und mehrere PCB-Footprints mit den Pins nach Bedarf neu zu nummerieren, wie zum Beispiel: TO92-EBC, TO92-ECB, TO-92-DGS ...

Anstatt das Symbol zu bearbeiten, können Sie den gleichen Effekt mit der Slots-Funktion erzielen. Fügen Sie dem Transistor die folgenden Attribute hinzu:slot=1 numslots=1 slotdef=1:3,2,1

Zahlen in slotdef danach 1:stellen Paket-Pin-Nummern in der pinseqReihenfolge dar. Im obigen Beispiel Chat pinseq=1und wird für das npn-3-Symbol Pin 3 zugewiesen, Bhat pinseq=2und wird Pin 2 zugewiesen und Ehat pinseq=3und wird Pin 1 zugewiesen.

Andere Transistoren können andere Anschlussbelegungen haben. Zum Beispiel slotdef=1:2,1,3für einen MJE305 im TO220W-Gehäuse verwenden. Wenn Sie das Symbol weiter bearbeiten, werden Ihre vorherigen Designs immer wieder zerstört. Sie können auch eine Reihe von Klonen mit unterschiedlichen Pinbelegungen erstellen, aber das kann ziemlich schnell aus dem Ruder laufen, wenn Sie viele verschiedene Arten von Transistoren verwenden.

Danke von einem gEDA-Anfänger! Eigentlich der praktischste Weg, um zu vermeiden, dass die Festplatte mit nutzlosen Footprint-Dateien lahmgelegt wird! Jetzt besteht der Trick darin, alle Transistoren von den ersten beiden Attributen erben zu lassen. Ich denke, ich kann es selbst herausfinden.