Forum: Platinen KiCAD: Erstellung von Bauteil-Bibliotheken


von Michael S. (rbs_phoenix)


Angehängte Dateien:

Lesenswert?

Hallo zusammen.

Als kurzer Disclaimer: Ich nutze seit Ewigkeiten EAGLE privat, seit 
knapp 10 Jahren auch in meiner Firma. Für den Umfang der Boards, die ich 
und meine Kollegen machen reicht das alles aus und durch die erstellten 
Bibliotheken und Zusatz-Skripte (ULPs) ist es auch über die Zeit immer 
mehr auf uns angepasst. Das einzige Thema ist: Was passiert, wenn 
irgendwann EAGLE 7.7 nicht mehr unterstützt wird? Dafür wollte ich mich 
mal umgucken, was es so an Alternativen gibt und da ist KiCAD natürlich 
auch zu berücksichtigen.

Dazu habe ich mal ein, zwei Videos geguckt und mir hinsichtlich der 
Bauteil-Bibliotheken die Frage gestellt, wie diese in der Regel bzw. am 
Besten angelegt werden.
Wie gesagt komme ich aus der EAGLE-Ecke und dort habe ich u.a. eine 
Bibliothek für Spannungsregler und eine für Transistoren. In jeder 
Bibliothek sind Symbol und Package gespeichert, die dann als Device 
zusammengefügt werden. Das bedeutet, es gibt keine eigene 
Package-Bibliothek was den Nachteil bringt, dass ich z.B. das SOT23 
Package in beiden Bibliotheken parallel (doppelt) gespeichert habe. Muss 
ich am Package was anpassen, muss ich diese Änderungen also in allen 
Bibliotheken vornehmen (bzw. kopieren), die dieses Package beinhalten.

Wenn ich mir die Videos und das Vorgehen darin angucke, wird dort beim 
Erstellen des Symbols schon der Pin zugewiesen. Und da verstehe ich 
nicht den Sinn, wieso das im Symbol schon fix festgelegt wird. Ich habe 
mal zwei Bilder angehängt, das Pinout vom MCP1754S und vom TLV1117. 
Beides sind Festspannungsregler mit mehreren wählbaren 
Ausgangsspannungen.

In EAGLE würde ich nun also die passenden Packages erstellen, ein Symbol 
mit Vin, Vout und GND und zwei Devices erzeugen (TLV1117 und MCP1754S). 
Dort kann ich dann das Symbol einfügen, die entsprechenden Packages mit 
dem Namenszusatz (DCY, KCT, ...) einfügen und dort dann die Symbol-Pins 
den Package-Pads zuweisen. Zusätzlich kann ich über die "Technology" 
Funktion auch noch die verschiedenen Spannungsoptionen eintragen, sodass 
ich dann am Ende allein beim MCP1754S jeweils drei Ausgangsspannungen 
für insgesamt vier Packages habe. Ich kann so also (nur für den MCP1754S 
betrachtet) zwölf verschiedene Bauteile erstellen und jedem nicht nur 
das Pinning verpassen, sondern auch Bestellnummern oder Lagerplätze 
hinterlegen.

Wenn in KiCAD nun aber das Symbol das Pinning beinhaltet... Muss ich 
dann einen Regler-Symbol für jedes Pinout erzeugen? Im SOT23 ist Pin 1 
GND, beim SOT-89 ist es aber Vin. Beim SOT-223-3 gibt es aber 4 Pins 
(GND ist also Pin 2 UND 4) und im DFN Package ist es wieder komplett 
anders. Ich kann ja noch nicht mal sagen, dass es ein Reglersymbol gibt, 
dass für SOT-223-3 Packages passt, denn dann kommt der TLV1117 um die 
Ecke und da ist dann wieder alles anders, als beim selben Package beim 
MCP1754S.

Wie würde man sowas am besten umsetzen? Denn ich kann mir nicht 
vorstellen, dass ich der erste bin, der auf dieses Problem stößt. Muss 
ich dann dem Symbol Namen passend für das Pinning geben? Also 
Regulator_GND_VOUT_VIN, Regulator_VIN_GND_VOUT, .... Oder bekommt jedes 
einzelne Bauteil eine eigene Bibliothek? Das wäre ja auch mega 
umständlich, Fehler zu fixen und 1000e Bibliotheken durchzuarbeiten.

Was darüber hinaus auch nie Thema bei den Videos war: Wie funktioniert 
das mit der Auswahl der Ausgangsspannungen und den daran geknüpften 
Bestellnummern oder Lagerplätzen. Es haben alle nur z.B. einen 0805 
Widerstand eingefügt und den dann manuell auf 1k oder so gesetzt. 
Entsprechend könnte ich als Bauteilwert des Reglers auch "5V" 
schreiben.. Aber was ist dann mit der Bestellnummer, ...? Und woher weiß 
ich, dass ich für den MCP1754S das "SOT23" Package wählen kann, für den 
TLV1117 aber nicht? Sprich, was hindert mich daran ein Package zu 
nehmen, dass in der Bibliothek vorhanden ist, aber nicht hergestellt 
wird und gekauft werden kann.

Es wäre schön, wenn mich da jemand aufschlauen könnte. Gerne auch mit 
Tutorials oder Vorlagen.

Grüße
Michael

: Bearbeitet durch User
von H. H. (hhinz)


Lesenswert?

Michael S. schrieb:
> Was passiert, wenn
> irgendwann EAGLE 7.7 nicht mehr unterstützt wird?

Nix. Diese Version telefoniert nicht nach Hause.

von Michael S. (rbs_phoenix)


Lesenswert?

Ich habe dabei auch eher in Richtung Microsoft und IT geschielt. 
Irgendwann kommt Windows 12 oder so und dann läuft damit das alte EAGLE 
nicht mehr. Wer weiß..

von H. H. (hhinz)


Lesenswert?

Michael S. schrieb:
> Ich habe dabei auch eher in Richtung Microsoft und IT geschielt.
> Irgendwann kommt Windows 12 oder so und dann läuft damit das alte EAGLE
> nicht mehr. Wer weiß..

Dann läuft es eben in einer VM oder unter Linux.

: Bearbeitet durch User
von Markus E. (markus_e176)


Lesenswert?

Michael S. schrieb:
> Wie funktioniert das mit der Auswahl der Ausgangsspannungen und den
> daran geknüpften Bestellnummern oder Lagerplätzen

Dafür kann ich die Inventree-Software empfehlen. Mit einem Plugin (in 
Inventree) können Bauteile direkt aus der Inventree-Bauteilverwaltung in 
Kicad geladen werden.

In Inventree werden die tatsächlichen Bauteile angelegt (eindeutige ID 
z.B. R_10k_0603, Bauteiltyp z.B. Widerstand, Wert z.B. 10k, beliebig 
viele Herstellerteile z.B. Vishay mit C0603103azr und Yageo mit 
wid0603k10ajfes, pro Herstellerteile beliebige Lieferanten z.B. Mouser 
und Reichelt mit jeweils Bestellnummer/Link, jeweils Lagerort und 
Bestand, KiCad-Symbolpfad in den Symbol-Bibliotheken z.B. Devices:R, 
Kicad-Footprint z.B. mySMD:0603).

Dann kann in der Kicad-Bauteilauswahl das Bauteil für den Schaltplan 
gewählt werden und zeigt direkt in der Bauteilauswahl den vorhandenen 
Lagerbestand. In der Stückliste erscheint dann die eindeutige ID aus 
Inventree und kann damit weiterverarbeitet werden.

von Markus E. (markus_e176)


Lesenswert?

Michael S. schrieb:
> Wie würde man sowas am besten umsetzen? Denn ich kann mir nicht
> vorstellen, dass ich der erste bin, der auf dieses Problem stößt. Muss
> ich dann dem Symbol Namen passend für das Pinning geben? Also
> Regulator_GND_VOUT_VIN, Regulator_VIN_GND_VOUT, .... Oder bekommt jedes
> einzelne Bauteil eine eigene Bibliothek?

Die Pins müssen nicht unbedingt Nummern sein, sondern können -in Symbol 
und Footprint- auch Text sein.
Also im Footprint ein Pad Vin, eines Vout, eines Gnd. Ggfs. zwei Pads, 
die Gnd heißen, z.B. für SOT-89-4.
Je nach Bauteiltyp hättest du dann zwei Footprints mit unterschiedlichem 
Namen, die sich in der Pinbezeichnung unterscheiden. Den 
(Standard-)Footprint kannst du am Symbol vorgeben.

Das Symbol ist dann 1. entweder für alle (Festspannungs-)Regler das 
gleiche (dann über Inventree separate Bauteile aus Bauteilwert, Symbol 
und Footprint zusammenstellen oder im Schaltplan händisch anpassen) oder 
2. pro Ausgangsspannung ein Symbol erstellen und wiederverwenden.

Für den zweiten Reglertypen dann den passenden anderen Footprint 
vorgeben.

Oder andersherum zwei Symbole anlegen, bei denen die Pins als Nummern 
angegeben sind und jeweils zum generischen Footprint passen.

Die Bibliotheks-Bauteile für Mosfets könnten da als Beispiel dienen.

von Jörg (lixtop)


Lesenswert?


von Michael S. (rbs_phoenix)


Lesenswert?

H. H. schrieb:
> Dann läuft es eben in einer VM oder unter Linux.

Ich brauche für die Projekte und Bibliotheken etc. Zugriff auf das 
Firmennetz. Also selbst, wenn ich von der IT aus eine VM aufsetzen darf, 
kann ich vermutlich wählen zwischen einer alten Windows-Version ohne 
Netzwerk-Zugriff oder aktuellen Windows-Version, wobei ich mir dann die 
VM auch sparen kann.


Markus E. schrieb:
> Also im Footprint ein Pad Vin, eines Vout, eines Gnd. Ggfs. zwei Pads,
> die Gnd heißen, z.B. für SOT-89-4.
> Je nach Bauteiltyp hättest du dann zwei Footprints mit unterschiedlichem
> Namen, die sich in der Pinbezeichnung unterscheiden. Den
> (Standard-)Footprint kannst du am Symbol vorgeben.

Aber damit verschiebe ich ja das Problem von "tausenden" Symbolen zu den 
Footprints und habe da dann "tausende" Footprints. Ein 
SOT-223-3_TLV1117, dann SOT-223-3_MCP1754S, SOT23_MCP1754S, ...
Das ist ja noch schlimmer ;)


Markus E. schrieb:
> Oder andersherum zwei Symbole anlegen, bei denen die Pins als Nummern
> angegeben sind und jeweils zum generischen Footprint passen.

Das ist ja dann quasi wie ich beschrieben habe. Für jede Variante dann 
ein eigenes Symbol, dass zum generischen Footprint passt.


Markus E. schrieb:
> Dafür kann ich die Inventree-Software empfehlen.

Markus E. schrieb:
> Die Bibliotheks-Bauteile für Mosfets könnten da als Beispiel dienen.

Jörg schrieb:
> Scho gelesen:
> 
https://docs.kicad.org/master/de/getting_started_in_kicad/getting_started_in_kicad.html#tutorial_teil_4_benutzerdefinierte_symbole_und_footprints

Gucke ich mir mal alles an. Danke

: Bearbeitet durch User
von Veit D. (devil-elec)


Lesenswert?

Michael S. schrieb:
> Wie gesagt komme ich aus der EAGLE-Ecke und dort habe ich u.a. eine
> Bibliothek für Spannungsregler und eine für Transistoren. In jeder
> Bibliothek sind Symbol und Package gespeichert, die dann als Device
> zusammengefügt werden. Das bedeutet, es gibt keine eigene
> Package-Bibliothek was den Nachteil bringt, dass ich z.B. das SOT23
> Package in beiden Bibliotheken parallel (doppelt) gespeichert habe. Muss
> ich am Package was anpassen, muss ich diese Änderungen also in allen
> Bibliotheken vornehmen (bzw. kopieren), die dieses Package beinhalten.

Wenn ich dich richtig verstehe, gibt es in Eagle nur je ein Bauteil in 
dem Symbol und Gehäuse untrennbar zusammen enthalten sind.

> Wenn ich mir die Videos und das Vorgehen darin angucke, wird dort beim
> Erstellen des Symbols schon der Pin zugewiesen. Und da verstehe ich
> nicht den Sinn, wieso das im Symbol schon fix festgelegt wird.

Du meinst hier KiCad? Man erstellt einen Schaltplan, damit man ihn 
verwenden kann. Darin möchte ich schon sehen an welchen Pin/Pinnummer 
der Eingang ist und wo der Ausgang usw.

Dein Bsp. der Spannungsregler ist doch genau passend. Es gibt sehr viele 
unterschiedliche Pinbelegungen und Gehäusevarianten. In Eagle erstellst 
du damit ein Bauteil mit passenden Symbol und Gehäuse, was am Ende 
zusammengehört. In KiCad machst du das Gleiche nur eben in getrennten 
Bibliotheken. Symbol, Gehäuse, 3DModel. Die Pinnummern vom Gehäuse 
allein wird sich nie ändern. Das 3D Modell dazu auch nicht. Nur im 
Symbol wird sich je nach Spannungsregler, mit gleichen Gehäusen, die 
Funktion/Bedeutung der Pinnummer ändern. Das heißt du kannst am Bsp. 
Spannungsregler gezielt Symbole mit konkreten Bauteilnamen erstellen. 
TLV1117, MCP1754S. Diesen Symbolen weißt du das passende Gehäuse bis hin 
zum 3D Modell zu. Im Schaltplan fügst du das Symbol hinzu und fertig. 
Dann hast du im Layout Editor alles andere automatisch drin. Das ist 
nichts anderes wie in Eagle. Wenn alle Regler das gleiche Gehäuse 
verwenden, musst du nur unterschiedliche Symbole erstellen. Finde ich 
einfach.

Was anders in KiCad ist, dass Gehäuse und 3D Modell kannst du auch mit 
anderen Symbolen verknüpfen, eben weil die Bibliotheken unabhängig sind.

Bei Standardbauteilen wie Widerstände, benötigt man im Schaltplan nur 
ein generisches Symbol für alle Arten im Schaltplan. Hierfür lege ich 
für jeden Widerstand individuell im Schaltplan fest, welche Gehäuseform 
er haben soll. Unter > "Werkzeuge" > "Symbolfelder bearbeiten". Hier 
nutzt man die getrennten Bibliotheken. Will man sich die Bearbeitung 
sparen, legt man sich Symbole mit aussagekräftigen Namen an und weißt 
die Gehäuseform zu. Muss dann aber bei jeder Änderung im Schaltplan das 
Symbol neu ersetzen. Kann man halten wie Nolte.

Ich sehe keine Probleme in der Verwendung. Also wenn du bisher gewohnt 
bis das ein Bauteil fest aus Symbol und Gehäuse besteht, dann kannst du 
das weiterhin auch in KiCad machen. Nur eben mit einer jederzeit 
änderbaren Zuweisung welches Gehäuse zum Symbol gehören soll. Was man 
wiederum jederzeit im Schaltplan unter > "Werkzeuge" > "Symbolfelder 
bearbeiten" ändern kann.

von Rainer W. (rawi)


Lesenswert?

Michael S. schrieb:
> Das einzige Thema ist: Was passiert, wenn
> irgendwann EAGLE 7.7 nicht mehr unterstützt wird?

An EAGLE 7.7 wird schon lange nichts mehr unterstützt.
Aktuell ist Version 9.6 und die ist wegen Abschaltung des Lizenzservers 
durch AutoDesk nächstes Jahr wohl wirklich tot.

: Bearbeitet durch User
von Michael S. (rbs_phoenix)


Lesenswert?

Veit D. schrieb:
> Wenn ich dich richtig verstehe, gibt es in Eagle nur je ein Bauteil in
> dem Symbol und Gehäuse untrennbar zusammen enthalten sind.

Jein. Du hast eine Sammlung an Symbolen und Packages in einer Lib-Datei 
und kannst mit den Devices dann die Symbole und Packages zusammenfügen, 
wie es gerade passt.


Veit D. schrieb:
> Dein Bsp. der Spannungsregler ist doch genau passend. Es gibt sehr viele
> unterschiedliche Pinbelegungen und Gehäusevarianten. In Eagle erstellst
> du damit ein Bauteil mit passenden Symbol und Gehäuse, was am Ende
> zusammengehört.

Am Beispiel der oberen beiden Chips würde ich ein Symbol erstellen und 
fünf Packages: für den TLV brauche ich den SOT-223 und TO-252 und für 
den MCP nutze ich auch den SOT-223 und brauche zusätzlich noch SOT-23, 
SOT-89 und 2x3mm DFN8. Was jetzt nur noch fehlt sind zwei Devices: 
TLV1117 und MCP1754S. Bei diesen verknüpfe ich die Pins (Vin, Vout, GND) 
mit den Pads der jeweiligen Packages. In den Devices kann ich zusätzlich 
die Festspannungen als Option angeben. Ich bin am Ende also bei fünf 
Packages, einem Symbol und zwei Devices. Beim MCP habe ich 3 Spannungen 
zur Auswahl (1.8V, 3.3V und 5V), beim TLV habe ich 5 Spannungen (1.5V, 
1.8V, 2.5V, 3.3V und 5V). Die Verschiedenen Bezeichnungen wie 
TLV1117-15DCY (1.5V, SOT223) werden automatisch anhand meiner 
Einstellungen im Device erstellt und dann bei der Wahl beim Platzieren 
im Schematic ausgewählt.

Wenn ich das jetzt übertrage und richtig verstehe, müsste ich also für 
die beiden Bauteile ebenso fünf Packages erstellen und dann aber 22 
Symbole erstellen (12 Symbole für den MCP - 4 Packages á 3 Spannungen, 
und 10 für den TLV - 2 Packages á 5 Spannungen). Denn im Symbol steckt 
nicht nur das Pinning, ergo Package, sondern ebenso die 
Bestellnummer/Bezeichner -> Spannungsoption.


Veit D. schrieb:
> Du meinst hier KiCad? Man erstellt einen Schaltplan, damit man ihn
> verwenden kann. Darin möchte ich schon sehen an welchen Pin/Pinnummer
> der Eingang ist und wo der Ausgang usw.

Richtig, ich auch. Bei EGALE wird dann die Pin-Nummer entsprechend zum 
gewählten Package angezeigt. Die ist also nicht fix am/im Symbol, was ja 
quasi Knackpunkt meiner ganzen Fragerei ist.


Veit D. schrieb:
> Ich sehe keine Probleme in der Verwendung. Also wenn du bisher gewohnt
> bis das ein Bauteil fest aus Symbol und Gehäuse besteht, dann kannst du
> das weiterhin auch in KiCad machen. Nur eben mit einer jederzeit
> änderbaren Zuweisung welches Gehäuse zum Symbol gehören soll. Was man
> wiederum jederzeit im Schaltplan unter > "Werkzeuge" > "Symbolfelder
> bearbeiten" ändern kann.

Ein Bauteil kann mehrere Gehäuse haben. Das ist der Punkt, wo man sich 
soweit ich das verstanden habe die Arbeit spart. Außerdem, wie ich oben 
auch schon meinte, kann ich im Projekt (Schaltplan/Layout) beim Package 
nur das wählen, was mit dem Device verknüpft ist. Ich kann dort kein 
TO-252 für den MCP1754S wählen, da es den gar nicht gibt. Diese 
Information bekomme ich bei KiCAD scheinbar nicht (direkt). Ich darf da 
eigentlich ja nur die Symbole mit anderen austauschen, wo das gewünschte 
Package hinterlegt ist. Denn sonst stimmt mindestens die Bestellnummer 
nicht oder ich wähle ein Package aus, das gar nicht für den Chip 
vorhanden ist.


Rainer W. schrieb:
> Michael S. schrieb:
>> Das einzige Thema ist: Was passiert, wenn
>> irgendwann EAGLE 7.7 nicht mehr unterstützt wird?
>
> An EAGLE 7.7 wird schon lange nichts mehr unterstützt.
> Aktuell ist Version 9.6 und die ist wegen Abschaltung des Lizenzservers
> durch AutoDesk nächstes Jahr wohl wirklich tot.

Ich weiß. EAGLE 7.7 bekommt keinen Support mehr. Ich meine "von der 
Umgebung/Windows nicht mehr unterstützt". Sprich, es käme Windows 12, 
die IT sagt, das muss jetzt überall drauf, und damit liefe kein EAGLE 
7.7 mehr.


Michael S. schrieb:
> Markus E. schrieb:
>> Die Bibliotheks-Bauteile für Mosfets könnten da als Beispiel dienen.
>
> Gucke ich mir mal alles an. Danke

Ich habe mal reingeguckt und es ist so, wie ich es bisher auch 
verstanden habe. Es gibt für jede einzelne Variante ein eigenes Symbol. 
Das macht die Liste in den jeweiligen Bibliotheken natürlich elend lang. 
Aber durch die Suchfunktion kommt man da schon ans Ziel und mit dem 
"Symbol ableiten von" kann man sich scheinbar ein bisschen Arbeit beim 
erstellen der ganzen Varianten sparen. Ich meine das geht über 
Spannungsregler ja hinaus. Microcontroller mit verschiedenen 
Speichergrößen und Temperaturbereichen, teilweise Spannungsbereichen 
aber immer gleichem Pinning.

von Michael S. (rbs_phoenix)


Lesenswert?

Rainer W. schrieb:
> Aktuell ist Version 9.6 und die ist wegen Abschaltung des Lizenzservers
> durch AutoDesk nächstes Jahr wohl wirklich tot.

Achso, dazu noch eine Sache: EAGLE als isoliertes Tool wird 
abgeschaltet. Aber soweit ich weiß, bleibt es auch künftig Teil von 
AutoDesk Fusion. Man könnte es also unter Fusion soweit ich weiß weiter 
nutzen. Es heißt dann halt nicht mehr EAGLE und ist auch keine 
alleinstehende Software mehr.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

wenn du jede Gehäusevariante eines Bauteils mit Kenndaten und 
Bestelldaten hinterlegen möchtest, dann bleibt dir gar nichts anderes 
übrig wie Hunderte von Symbolen mit entsprechenden Zusatzeinträgen 
anzulegen. Gehäusezuordnungen bleiben ja größtenteils gleich, wenn sich 
nur die Spannung ändert. Lege ein Symbol mit allen komplett an, danach 
kopieren und Änderungen der Einträge und im Symbol vornehmen. Damit 
sollte sich die Arbeit im Rahmen halten.
Oder jeweils ein "einfaches" Symbol ohne Spannungsangabe und ohne 
hinterlegte weiteren Daten. Dann könnte man ein Kommentar im Schaltplan 
hinterlegen ob 3.3V oder 5V bzw. man sieht es am 
Spannungsreferenzsymbol. Also nur Symbole mit zugeordneten Gehäusen 
anlegen. Den Rest trägt man in die erzeugte BOM ein zum bestellen. Wie 
man es macht hängt von seinen Vorlieben ab.

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.