Forum: Platinen [KiCad] Hierarchischer Schaltplan mit Teil-ICs möglich?


von dfgh (Gast)


Lesenswert?

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?

von hp-freund (Gast)


Lesenswert?

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.

von hp-freund (Gast)


Lesenswert?

hp-freund schrieb:
> Nummerierung im linken Plan

Meinte natürlich den linken Kanal.

von Bernd W. (berndwiebus) Benutzerseite


Angehängte Dateien:

Lesenswert?

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

: Bearbeitet durch User
von dfgh (Gast)


Lesenswert?

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?

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.