Hallo Zusammen,
Ich arbeite mich gerade in KiCad ein und bin ganz begeistert von den
hierarchischen Schaltplänen (komme ursprünglich von Eagle). Da ich in
meiner aktuellen Schaltung zahlreiche Opamps und auch ein paar 74er ICs
verwende, bei denen mehrere gleiche Einheiten in einem IC untergebracht
sind, kam natürlich die Frage auf, ob ich nicht in verschiedenen
Unterschaltplänen einfach Teil-ICs (A;B) so verwenden kann, dass KiCad
nachher automatisch erkennt, das im gesamten Projekt z.B. 4
"Einzel-Operationsverstärker" vom Typ NE5532 existieren, also zwei
NE5532-ICs benötigt werden...
Alternativ müsste ich immer "doppelte" Unter-Schaltpläne machen, nach
dem Motto "2xMeinTollerVerstärker" - ich hätte aber lieber zwei
Einheiten von "MeinTollerVerstärker" nebeneinander (bzw. in
verschiedenen Unterschaltplänen).
Geht das? Wie würdet ihr das lösen?
Das ist alles eine Frage der Bauteil Nummerierung.
z.B. ein Stereoverstärker würde bei mir wie folgt aussehen:
- ein Hauptschaltplan mit je einem Unterschaltplan für links und rechts
- Nummerierung im linken Plan z.B. ab R101, C101
- Nummerierung im rechten Plan z.B. ab R201, C201
- gemeinsame Bauteile wie OPV z.B. links U1A, U2A..., rechts U1B, U2B
Damit "weiß" KiCad dann welches Bauteil gemeint ist.
So braucht man auch nur einen Kanal zeichnen, in ein anderes Unterblatt
kopieren dann die Soll-Nummern vergeben. Danach kann man automatisch mit
Offset Nummerieren lassen.
Hallo dfgh, hallo hp-freund.
dfgh schrieb:> Ich arbeite mich gerade in KiCad ein und bin ganz begeistert von den> hierarchischen Schaltplänen (komme ursprünglich von Eagle).
Sowas finde ich auch toll. ,O)
> kam natürlich die Frage auf, ob ich nicht in verschiedenen> Unterschaltplänen einfach Teil-ICs (A;B) so verwenden kann, dass KiCad> nachher automatisch erkennt, das im gesamten Projekt z.B. 4> "Einzel-Operationsverstärker" vom Typ NE5532 existieren, also zwei> NE5532-ICs benötigt werden...> Geht das? Wie würdet ihr das lösen?
Das geht, und ein Beispiel, allerdings der Einfacheit halber mit einem
Relais statt mit einem IC, findest Du im Anhang in Hierarchietest.zip
verpackt.
Etwas zu dem Thema findest Du hier:
http://www.mikrocontroller.net/wikifiles/7/79/HierarchischeSchaltplaeneAlsBausteineInKicad_RevC_23Dec2013.pdf
Dein Spezialfall, dass Du in verschiedenen Subschaltplänen mit
Teilbauteilen auf das gleiche Hauptbauteil referenzierst, ist dort aber
nicht behandelt. Trozdem sollte Dir der Artikel einen guten Überblick
darüber geben, wass dort passiert.
Das führt aber zu hp-freunds Bemerkung:
> Das ist alles eine Frage der Bauteil Nummerierung.
Leider nicht nur. In meinem ersten Versuch hatte ich den zweiten
Unterschaltplan aus dem ersten per Copy&Paste erzeugt, auf den gleichen
Unterschaltplan referenziert, und nur mit einem anderen Sheet-Namen
versehen.
Das funktionierte zwar von der Nummerierung her, aber durch die
Verknüpfung ergeben sich Probleme, wenn Du auch nur eine Kleinigkeit
änderst. Ich hatte im ersten Versuch die Stecker noch nicht
eingezeichnet, und daher nachträglich eingefügt, aber in verschiedenen
Positionen. wenn ich dann den einen verschoben habe, habe ich den
anderen mitverschoben, mit gleichem offset....aber die Verbindungen
blieben fix. ;O)
Edit: Das Problem kommt natürlich NICHT durch das Einzeichnen des
Steckers in unterschiedlichen Positionen...wenn der Stecker einmal
eingezeichnet ist, erscheint er durch die Referenzierung auf den
gleichen Schaltplan auch im anderen Unterschaltplan an der gleichen
Stelle. Das gilt auch für die eingezeichneten Verbindungen.....das
Problem sind die Teilsymbole, die unterschiedliche Offsets haben, aber
immer am gleichen Ankerpunkt eingehängt werden....das macht sich
übrigens immer erst NACH dem Abspeichern des Schaltplanes bemerkbar.
Daher habe ich im zweiten Anlauf eine Kopie des ersten Subschaltplanes
mit ANDEREM FILE NAMEN angelegt, so dass beide Subschaltpläne auf
unterschiedliche Schaltpläne referenzieren.
Dann ist dass Problem weg. ;O)
> z.B. ein Stereoverstärker würde bei mir wie folgt aussehen:> - ein Hauptschaltplan mit je einem Unterschaltplan für links und rechts
Bei mir auch.
> - Nummerierung im linken Plan z.B. ab R101, C101> - Nummerierung im rechten Plan z.B. ab R201, C201
Das kann KiCad automatisch. ;O)
> - gemeinsame Bauteile wie OPV z.B. links U1A, U2A..., rechts U1B, U2B
In meinem Fall, wo nur ein solches Bauteil existiert, machte das KiCad
auch automatisch. Wie das aber bei mehreren aussieht, vor allem wenn Du
die Teilbauteile nicht unmmitelbar nacheinander plazierst (das ist
anscheinend bei aufgelöster Darstellung ein Kriterium), sondern
vieleicht sogar durcheinander, weiss ich noch nicht.
> Damit "weiß" KiCad dann welches Bauteil gemeint ist.
Daher würde ich in dem Falle dann für Bauteile in aufgelöster
Darstellung auch eine Nummerierung per Hand vorschlagen, falls diese
Bauteile bei der automatischen Annotation falsch zugeordnet werden. Eine
Kontrolle ist daher unbedingt notwendig.
> So braucht man auch nur einen Kanal zeichnen, in ein anderes Unterblatt> kopieren dann die Soll-Nummern vergeben. Danach kann man automatisch mit> Offset Nummerieren lassen.
Copy&Past ist in Ordnung, wenn man KiCad aber dann zwei verschiedene
"echte" Unterschaltpläne anlegen lässt. Das heist, Du kannst den einen
Subschaltplan aus dem anderen durch kopieren erzeugen, aber dann sowohl
FILE-, als auch SHEEDNAME ÄNDERN!
Edit: Ich habe zwar den einen Subschaltplan aus dem anderen durch
Copy&Paste erzeugt, dass Bauteil in aufgelöster Darstellung aber
gelöscht (hier der Teil B) und dann durch seine entsprechung ersetzt
(hier Teil C).
Ich bin z.Z. unterwegs, und habe auf meinem Netbook nur eine ältere
version von KiCad, wo ich das jetzt auf die schnelle ausprobiert habe:
Application: KiCad
Version: (2013-11-29 BZR 4513)-product Release build
wxWidgets: Version 2.8.12 (release,Unicode,compiler with C++ ABI
1002,GCC 4.7.2,wx containers,compatible with 2.6)
Platform: Linux 3.2.0-4-686-pae i686, 32 bit, Little endian, wxGTK
Boost version: 1.54.0
USE_WX_GRAPHICS_CONTEXT=OFF
USE_WX_OVERLAY=OFF
KICAD_SCRIPTING=OFF
KICAD_SCRIPTING_MODULES=OFF
KICAD_SCRIPTING_WXPYTHON=OFF
USE_FP_LIB_TABLE=ON
BUILD_GITHUB_PLUGIN=ON
Kann sein, dass das in neueren versionen etwas glatter geht.
Edit: Möglicherweise aber auch eine Frage, ob meine Symbolbibliothek
wegen des Offsets an der Stelle zu unsauber ist.
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
Vielen Dank schon mal, jetzt habe ich ein paar Anhaltspunkte... Mein
Problem ist damit zwar nicht ganz, aber immerhin zum Teil gelöst :-)
Um das ganze zusammenzufassen: Bei vielen Elementen in verschiedenen
Unterschaltplänen muss man einfach nur die Namen manuell vergeben - ich
denke damit kann ich zur Not leben. Ansonsten fasse ich immer 2
Signalpfade zusammen, was auch kein großes Problem ist, da das
Endprodukt eh einen gerade Anzahl an Kanälen haben wird.
PS: Wo kann man in Eeschema eigentlich Antialiasing aktivieren? Für
Pcbnew gibt kann man das Rendering ja auf Cairo umstellen (auch wenn das
für eine 2D-Grafikengine unfassbar langsam ist). Ich habe auch schon
Eeschema-Screenshots mit Antialiasing gesehen, aber wo stellt man das
ein?
Hallo dfgh.
dfgh schrieb:> Um das ganze zusammenzufassen: Bei vielen Elementen in verschiedenen> Unterschaltplänen muss man einfach nur die Namen manuell vergeben - ich> denke damit kann ich zur Not leben.
Und wenn Du den Teufel, der im Detail steckt, getroffen hast, kannst Du
ja hier noch mal genau nachlesen.m ;O)
> Ansonsten fasse ich immer 2> Signalpfade zusammen, was auch kein großes Problem ist, da das> Endprodukt eh einen gerade Anzahl an Kanälen haben wird.
Das ist ok.
> PS: Wo kann man in Eeschema eigentlich Antialiasing aktivieren? Für> Pcbnew gibt kann man das Rendering ja auf Cairo umstellen (auch wenn das> für eine 2D-Grafikengine unfassbar langsam ist). Ich habe auch schon> Eeschema-Screenshots mit Antialiasing gesehen, aber wo stellt man das> ein?
????? Weder diese Möglichkeit, noch der Bedarf dazu war mir bisher
bekannt.
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic