Hallo liebe KiCad-Mitstreiter,
arbeite mich gerade in KiCad ein und bin dank dieses Forums und anderer
Quellen und Tutorials schon relativ schnell und weit gekommen mit meinem
ersten Schaltplan.
Es geht hier um die Ansteuerung von 2 Stepper-Motoren mittels
Arduino/Nano und ich möchte als Treiber entweder BigEasy-Driver oder
alternativ DRV8825 einsetzen. Auf der Platine sollen dann auch beide
Alternativen quasi parallel vorgesehen werden und je nach Bedarf
entweder der eine oder der andere Treiber verbaut werden.
Ich habe für beide Bauteile jeweils eine Symbol-Bibliothek als auch die
entsprechenden footprints erstellt. U.a. sind die Motorenausgänge in der
Bibliothek jeweils als "Ausgang" definiert. Beim Erstellen des
Schaltplans kommt jetzt (erwartungsgemäß) der DRC ins Stolpern und
meckert, dass ich z.B. Ausgänge mit Ausgängen verbunden habe.
Eigentlich will ich die Bauteile nicht "verfälschen" (indem ich z.B. die
DRV8825-Motorausgänge auf bidirektional umdefiniere).
Hat jemand vielleicht einen anderen Tipp oder ist es eigentlich
grundsätzlich (bis auf Plausi-Checks, die einem potenzielle Fehler
aufzeigen und natürlich power rails) egal, wie ich die PIN-Eigenschaften
definiere?
Bitte nicht diskutieren, wie sinnig oder unsinnig die alternative
Bauteil-Platzierung ist; ich habe halt mehrere von diesen Treibern
alternativ zur Verfügung und möchte diese auch gerne alle verbauen und
dafür möglichst nur einmal ein Platinenlayout erstellen, welches ich
universell einsetzen kann.
Hallo Raimund.
Auf die schnelle:
Raimund T. schrieb:> Eigentlich will ich die Bauteile nicht "verfälschen" (indem ich z.B. die> DRV8825-Motorausgänge auf bidirektional umdefiniere).
Naja, du läufst in ein logisches Problem, da der ERC nicht wissen kann,
dass das unterschiedliche Bauteile sind, die nicht gleichzeitig bestückt
sind.
Insofern kannst Du auch nicht erwarten, dass der ERC dort stolperfrei
funktioniert. Entweder Du schaust jedesmal expliziet nach, ob es sich
bei einer Fehlermeldung um falschen Alarm handelt, oder bringst den ERC
zum Schweigen, indem Du z.B. die Pins auf "passiv" setzt.
>> Hat jemand vielleicht einen anderen Tipp oder ist es eigentlich> grundsätzlich (bis auf Plausi-Checks, die einem potenzielle Fehler> aufzeigen und natürlich power rails) egal, wie ich die PIN-Eigenschaften> definiere?
Richtig, die Pin Eigenschaften sind so gesehen nur für den ERC wichtig.
Einen ERC so zu programmieren, dass er mit solchen Alternativen
klarkommt, ist vermutlich auch recht aufwändig.
>> Bitte nicht diskutieren, wie sinnig oder unsinnig die alternative> Bauteil-Platzierung ist; ich habe halt mehrere von diesen Treibern> alternativ zur Verfügung und möchte diese auch gerne alle verbauen und> dafür möglichst nur einmal ein Platinenlayout erstellen, welches ich> universell einsetzen kann.
Das halte ich für ok. Sehr wahrscheinlich würde ich es in der Situation
genauso machen (Und habe es schon so gemacht). Platinendesign ist immer
ein Balanceakt zwischen verschiedenen wiederstreitenden Anforderungen,
ideales gibt es nur selten.
Von daher, viel Erfolg!
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.dl0dg.de
Hallo Bernd,
danke für deine rasche Antwort.
Der ERC hat schon recht und kann das natürlich nicht wissen, dass ich
"alternativ" unterwegs bin. Für mich war nur wichtig zu erfahren, ob es
probate und bessere workarounds als ein Umwidmen der Pins gäbe.
Inzwischen habe ich eines der Alternativbauteile "verfälscht", indem ich
alle Ports (bis auf die Power-Pins) auf "bidirektional" definiert habe.
Mit dem Begriff "passiv" konnte ich nichts anfangen und bidirektional
erschien mir dann als besser geeignet. Wenn ich wieder "reinrassige"
Platinen baue, werde ich bei Benutzung dieses Bauteils die Eigenschaften
dann wieder richtig setzen.
Jedenfalls meckert der ERC nicht mehr herum und ich kann nun zur
eigentliche Tat, sprich Platinenlayout, schreiten.
Stehe nun kurz vor der Vollendung aller footprints; mein einziger
Kritikpunkt an KiCad ist - und da befinde ich mich augenscheinlich in
bester Gesellschaft, wenn ich die diversen Forenbeiträge hier und in den
englischsprachigen Foren richtig deute - die katastrophale
Bibliotheksverwaltung. Ich dachte, ich könnte meine eigenen Bauteil ohne
Weiteres in eine eigene Bibliothek platzieren und, wenn ich diese KiCad
mitteile, würden die neuen Bauteile bzw. deren footprints auch immer
automatisch gefunden. Pustekuchen; KiCad ist da immer anderer Meinung
als ich. Muss dann leider doch tiefer in die Bibliotheks-Philosophie
(wenn es denn eine gibt) von KiCad einwühlen.
Ich habe da gestern Nacht einiges an Fundstellen zusammegetragen und
beginne gerade, mich jetzt einzulesen. Leider sind die Informationen
dazu (wenn sie denn überhaupt alle korrekt sind) sehr verstreut und
teils auch nur bruchstückhaft, so dass es ein zeitintensives Puzzlespiel
wird.
Unterwegs bin ich auf Linux (Mint) - Basis, welches auf meinem Macintosh
in einer VM-Box läuft. Die KiCad-Mac und -Windows-Versionen habe ich ad
acta gelegt, da mir die Linux-Version die stabilste und am weitesten
entwickelte Version scheint.
Vielleicht hast du einen Tipp für mich, wo ich auf möglichst einer
Stelle zusammengefasst studieren kann, welche Pfad-Einstellungen unter
Linux unbedingt notwendig sind und was man unbedingt beachten muss. Mir
scheint momentan, dass es am einfachsten ist, meine selbst erstellten
Bauteile incl. footprints grundsätzlich im aktuellen Projekt zu
speichern und nicht in einer (bzw. mehreren) lokalen Bibliothek, die
außerhalb des Projekts liegt.
Grüße
Raimund
Hallo Raimund.
Raimund T. schrieb:> Der ERC hat schon recht und kann das natürlich nicht wissen, dass ich> "alternativ" unterwegs bin. Für mich war nur wichtig zu erfahren, ob es> probate und bessere workarounds als ein Umwidmen der Pins gäbe.
Selbst wenn es welche gibt (ist ja möglich, das wer einen zündenden
Einfall hat), dann würde die konkrete Anwendung natürlich sehr von
Details der Bauteile und des Designs abhängen.
Mach mal das Gedankenexperiment, Du könntest dem ERC mit irgendeinem
Skrip eine Fallunterscheidung nahelegen, und wie Du das jetzt für Deinen
Fall löst. Und dann nehme mal einen anderen Fall, der nicht sehr ähnlich
ist.
> Mit dem Begriff "passiv" konnte ich nichts anfangen und bidirektional> erschien mir dann als besser geeignet.
"Passiv" wären z.B. auf jeden Fall Widerstände, Kondensatoren und
Drosseln.
Auch bei Dioden wäre das noch passend.
Bidirektional wären z.B. Tristate Pins.
Diese Kategorien haben jetzt relativ wenig mit der tatsächlichen
Funktion der Schaltung zu tun, sondern sollen nur dem ERC grobe
Entscheidungsmerkmale vorgeben.
Der ERC sieht: Aha, der Spannungseingang geht auf einen passiven
Widerstandspin, und der andere passive Widerstandspin dort geht auf
einen Spannungsausgang, also ist das für mich ok. Der ERC weiss aber
noch nicht ein mals, ob diese Pinne zusammen zum gleichen Widerstand
gehören, geschweige denn, ob der Widerstand passend für die Spannung
zwischen Spannungseingang und Spannungsausgang dimensioniert ist. Der
ERC verhindert nur, dass Du ungewollt und ohne Warnung einen Kurzschluss
zwischen Spannungseingang und Spannungsausgang herstellst, indem Du sie
direkt verbindest, oder warnt, wenn Du vergessen hast, einen z.B.
Widerstand anzuschliessen.
Um eine Schaltung komplett beurteilen zu können, bräuchte er eine KI,
die so bisher noch Zukunftsmusik ist.
> Jedenfalls meckert der ERC nicht mehr herum und ich kann nun zur> eigentliche Tat, sprich Platinenlayout, schreiten.
Es ist eine Philosophiefrage, ob ich besser den ERC meckern lasse, und
mir die falsch positiven Fehlermeldungen ansehe und dann entscheide, ob
ich den Sonderfall durchgehen lasse, oder ob ich den ERC zum schweigen
bringe, und dann im Zweifel auch keine Warnung bekomme.
Ich muss den ERC ja auch nicht durchführen, ich kann ihn auch komplett
unterlassen. Netzlisten, Zuweisungen und Layout geht auch ohne ERC und
mit Fehlern.
Der "electrical rules checker" hat oben links übrigens zwei
Karteikarten. "ERC" mit dem allgemeinen Kram zur Bedienung und dann noch
"Options", wo Du das Feinverhalten mit einer Matrix einstellen kannst.
> - und da befinde ich mich augenscheinlich in> bester Gesellschaft, wenn ich die diversen Forenbeiträge hier und in den> englischsprachigen Foren richtig deute - die katastrophale> Bibliotheksverwaltung.
Richtig. So sehe ich das auch. Das finde ich sogar so schlimm, dass ich
statt dem eigebauten Bibliotheksmanager lieber die fp-lib-table mit
einem Editor direkt bearbeite, bzw. mit einem klassischen zweifenstrigen
Dateimanager die Footprints in den ~~~.pretty Bibliotheken direkt hin
und her kopiere. Das Bibliothekskonzept selber ist ja so genial, das ich
sowas einfach machen kann.
Bei den alten ~~~.mod Bibliotheken geht das nicht so einfach, die sollte
man daher vorher Stück für Stüchk in "pretty" umwandeln.
> Ich dachte, ich könnte meine eigenen Bauteil ohne> Weiteres in eine eigene Bibliothek platzieren und, wenn ich diese KiCad> mitteile, würden die neuen Bauteile bzw. deren footprints auch immer> automatisch gefunden. Pustekuchen; KiCad ist da immer anderer Meinung> als ich. Muss dann leider doch tiefer in die Bibliotheks-Philosophie> (wenn es denn eine gibt) von KiCad einwühlen.
Wenn KiCad erstmal weiss, wo der Kram liegt, ist das auch so.
Es gibt aber Fussangeln:
1) Wenn Du verschiedene Footprints gleichen Namens hat (und wenn Du
erfolgsorientiert lediglich stur geradeaus denkst, passiert Dir das sehr
schnell) nimmt KiCad auch bei Kenntnis beider Standorte den Footprint,
der zuerst gefunden wurde. Wenn Du den anderen aber wolltest......
2) Die "offiziellen" Bibliotheken können sich ändern. Wenn Du auf diese
referenzierst, können die Änderungen ungewollt übernommen werden. Ganz
so schlimm ist es nicht, weil, solange Du nichts änderst, nimmt
PCBlayout immer zuerst die Footprints, die im Layout selber (in der
~~~.kicad_pcb Datei) hinterlegt sind. Allerdings, wenn Du die Netzliste
neu einlisst, und einen Haken bei den Optionen an der falschen Stelle
hast, wird der überschrieben.
> Leider sind die Informationen> dazu (wenn sie denn überhaupt alle korrekt sind) sehr verstreut und> teils auch nur bruchstückhaft, so dass es ein zeitintensives Puzzlespiel> wird.
Du kennst: https://www.mikrocontroller.net/articles/KiCAD ?
Weiter:
http://kicad-pcb.org/help/documentation/
Desweiteren solltest Du Dir dringenst mal die KiCad Dateien mit einemTexteditor ansehen . Viele Fragen klären sich dann. ;O)
Schade, mir juckt es in den Fingern, selber wider etwas dazu zu
schreiben, aber momentan fehlt mir die Zeit, und bei KiCad ist auch so
viel im Fluss, dass ich dann nicht schnell genug fertig wäre, um noch
aktuell zu sein.
Ausserdem gibt es noch die Möglichkeit, hier zu fragen:
https://groups.yahoo.com/neo/groups/kicad-users/info> Unterwegs bin ich auf Linux (Mint) - Basis, welches auf meinem Macintosh> in einer VM-Box läuft. Die KiCad-Mac und -Windows-Versionen habe ich ad> acta gelegt, da mir die Linux-Version die stabilste und am weitesten> entwickelte Version scheint.
Von Mac hab ich nun überhaupt keine Ahnung. Bei Mint als Ubuntu Ableger
streuben sich mir aber die Nackenhaare. Ich selber habe Debian. Ok, ich
gebe zu, auf "bleeding edge" Hartware läuft Debian oftmals nicht. Aber
spätestens nach einem Jahr läuft dort ein Debian Testing stabiler als
eine Ubuntu LTE ;O) aber "Mint" gibt es ja auch in einer "direkteren"
Debian Version.
> scheint momentan, dass es am einfachsten ist, meine selbst erstellten> Bauteile incl. footprints grundsätzlich im aktuellen Projekt zu> speichern und nicht in einer (bzw. mehreren) lokalen Bibliothek, die> außerhalb des Projekts liegt.
Ich persönlich fahre zweischienig.
A)
1) Spätestens zum Abschluss oder bei Übergabe eines Projektes exportiere
ich alle Footprints in eine projektspezifische Bibliothek, die mit im
Projektordner liegt und mit diesem archiviert oder übergeben wird. Diese
Footprints gehören mit zum Projekt!
2) Ich lösche alle Verweise in der Bibliothekstabelle bis auf den auf
die projektspezifische. Wenn also (größer) was geändert werden muss,
muss da erst wieder was eingetragen werden. Das bringt einen erstmal zum
Nachdenken, was man da so tut. Und hoffentlich mache ich nach einer
kurzen Reflexion das richtige.
B)
1) Aus den Footprintbibliotheken eines umgesetzten Projektes, wenn ich
mir also halbwegs sicher sein kann, dass diese Footprints (und Symbole)
so funktionieren wie gedacht, erstelle ich mir eine eigene Bibliothek,
die ich lokal vorhalte, aber weder im Projekt, noch im KiCad
Systemordner (Da würden sie möglicherweise bei einem Update
überschrieben).
Mit jedem Design wächst dann dieses Bibliothekssystem um erpropte Typen.
2) Ich vergebe sehr spezifische Footprint(Datei) Namen. Nach möglichkeit
schon eine gute Beschreibung, mit Versionsableitung und
Revisionsbezeichnung und dem aktuellen Tagesdatum. z.B.
"Diode_DO41_VertikalAnodeOben_Typ-II_RevC_01Mar2016". Das Bedeutet ein
Footprint für eine Diode im DO41 THT Gehäuse, die hochkant steht und die
Anode oben hat (Kennzeichnung der Polarität "irgendwie" im Silkscreen).
"Typ-II" dedeutet z.B. eine Version mit besonders grossen, robusten
Pads, und RevC das ich sie schon mehrmals angefasst habe, um etwas zu
ändern. Das Tagesdatum, um es sehr wahrscheinlich zu machen, dass der
Footprint bei mir nur einmal auftritt, denn ich bearbeite nicht so viele
Dioden täglich und komme dabei mit Typ und Revisionen durcheinander. ;O)
So wird mit guter Wahrscheinlichkeit verhindert, dass ich beim
Neueinlesen der Netzliste versehentlich einen existierenden Footprint
mit einer "verbesserten" Version überschreibe, die dann aber nicht
passt.
Die mitgelieferten "offiziellen" Bibliotheken sehe ich nur als Vorschlag
bzw. Brainstorming Beitrag. Nett wenn man etwas braucht, und es dort
findet, aber überprüfen sollte man soetwas auf jeden Fall, und etwas
spezielleres muss man sich immer selber machen.
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://wwwll02.de
Hallo Bernd,
toll, dass du dir mit mir so viel Mühe gibst.
Bin heute nicht ganz so weit gekommen wie ich wollte, habe mir aber
bereits ein paar Gedanken machen können und vor allem gelernt, dass ich
eigentlich relativ frei im Anlegen von Ordnern und der Namensgebung bin;
will dabei eine eigene Nomenklatur benutzen, und finde auch deinen
Ansatz mit dem Erstellungsdatum interessant - die Pfadnamen haben aber
insgesamt Grenzen, die man nicht überschreiten sollte.
Hatte mir auch schon Debian in einer neuen VM-Box installiert, weil ich
irgendwo zwischendurch gelesen habe, dass dies wohl für KiCad die
stabilste /sauberste Umgebung sei. Da muss ich mich aber noch etwas
umstellen in der Bedienung und wo was zu finden ist.
Ich benutze bei Mint den Night-Commander - hast du evtl. einen besseren
"2-Fenster-Manager", den du empfehlen kannst. Fühle mich mit dem Night
Commander in die frühen 80er mit dem Norton Commander auf DOS
zurückversetzt; manchmal nutze ich dann noch das terminal lieber ;-)
Wenn ich "stabile" Verhältnisse und Ordnerstrukturen unter Debian am
Laufen habe, werde ich hier mal posten, wie ich die Ordnerstruktur
aufgebaut habe und was ich dabei beachtet habe; wird aber noch ein paar
Tage dauern. Da das aktuelle Projekt Prio hat, werde ich das erst einmal
zu Ende stricken, auch wenn meine Ordner-Organisation noch nicht
durchorganisiert ist. Das kann ich danach dann mittels Commander o.ä.
aufräumen. Es gibt wohl auch einen spezifischeh KiCad-Bibliotheksmanager
- den habe ich aber unter Mint nicht ans Laufen gebracht - ist
installiert, startet aber nicht.
So long, melde mich wieder, sobald ich a) wieder Fragen und b)
spätestens, wenn die Ordnerstruktur steht.
Grüße
Raimund
Hallo Raimund t.
Raimund T. schrieb:> will dabei eine eigene Nomenklatur benutzen, und finde auch deinen> Ansatz mit dem Erstellungsdatum interessant - die Pfadnamen haben aber> insgesamt Grenzen, die man nicht überschreiten sollte.
Guter Ansatz. Schon sich mal überhaupt Gedanken über sowas zu machen.
Mein System ist auch erst im Laufe der Jahre "entstanden" mit dem "aus
Fehlern lernen".
Grenzen der Pfade legt Dir eigentlich nur das Dateisystem (bleib FAT32
kompatibel, wenn Du auch mal was auf Sticks packen willst), das
Betriebssystem und etwaige Masken, die vom Pfad überfüllt werden. :-/
Persönlich verwende ich NUR Buchstaben (Groß und Klein, aber keine
Umlaute, kein ß) und Zahlen, Bindestrich, Tiefstrich und den Punkt nur
zum Anhängen eines Dateisuffixes.
Kleiner Hinweis am Rande, ein Ampersand bzw. Kaufmannsund solltest Du
nicht verwenden. Grund:
https://www.mikrocontroller.net/articles/KiCAD#SVG_Plotten
Ansonsten hat es seine Vorteile, schon viel am Dateinamen ablesen zu
können. Ausserdem kannst Du dann Suchfunktionen auf Dateinamen anwenden.
Durch die Klartextformate von KiCad funktioniert aber auch eine
Textsuche in den Dateien gut. Vorausgesetzt, Du hast irgendwo auch den
passenden Begriff in einen Kommentar geschrieben.
>> Hatte mir auch schon Debian in einer neuen VM-Box installiert, weil ich> irgendwo zwischendurch gelesen habe, dass dies wohl für KiCad die> stabilste /sauberste Umgebung sei. Da muss ich mich aber noch etwas> umstellen in der Bedienung und wo was zu finden ist.
Viel Erfolg. Ich habe in meiner Umgebung viele Leute, die mit VM
hantieren (aber nicht mit KiCad). Dadurch dass ich denen über die
Schulter sehen konnte, bin ich dazu gekommen, statt VM-boxen
Wechselplatten zu benutzen. ;O)
>> Ich benutze bei Mint den Night-Commander - hast du evtl. einen besseren> "2-Fenster-Manager", den du empfehlen kannst. Fühle mich mit dem Night> Commander in die frühen 80er mit dem Norton Commander auf DOS> zurückversetzt; manchmal nutze ich dann noch das terminal lieber ;-)
Night Commander ? Du meinst Midnight Commander? Nennt sich als Debian
Package schlicht MC. Ja, natürlich habe ich den installiert, falls ich
mal was auf der Konsole erledigen muss.
Nach Möglichkeit verwende ich aber den "Krusader" (Aus dem KDE-Projekt,
läuft aber auch gut unter Gnome oder XFCE). Der hat eine option zur
Systemverwaltung, wenn Du auch "kdesudo". mitinstallierst.
> aufräumen. Es gibt wohl auch einen spezifischeh KiCad-Bibliotheksmanager> - den habe ich aber unter Mint nicht ans Laufen gebracht - ist> installiert, startet aber nicht.
Aha? Wie heisst der denn? Ist das eventuell etwas für die Python
Schnittstelle von KiCad? Dann muss KiCad dafür compiliert sein.
Ich habe hier ein halbfertiges Python 3 Skript, mit dem ich hoffentlich
irgendwann mal relativ komfortabel die Bibliothekstabelle in KiCad
managen kann. Leider habe ich z.Z. kaum Zeit, daran weiter zu schreiben.
Von der Idee her ist es aber eher primitiv.
>> So long, melde mich wieder, sobald ich a) wieder Fragen und b)> spätestens, wenn die Ordnerstruktur steht.
Viel Erfolg
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Bernd W. schrieb:
Moin Bernd,
wie immer, danke für deine Tipps; hier ein paar kurze Antworten auf
deine Fragen/Kommentare:
> Night Commander ? Du meinst Midnight Commander? Nennt sich als Debian> Package schlicht MC. Ja, natürlich habe ich den installiert, falls ich> mal was auf der Konsole erledigen muss.>
ja, du hast natürlich recht; hatte den Namen aus dem Gedächtnis
geschrieben und meine RAM-Zellen waren wohl schon etwas müde
> Nach Möglichkeit verwende ich aber den "Krusader" (Aus dem KDE-Projekt,> läuft aber auch gut unter Gnome oder XFCE). Der hat eine option zur> Systemverwaltung, wenn Du auch "kdesudo". mitinstallierst.>
stimmt, den hatte ich früher auch mal installiert als ich die ersten
Gehversuche mit Linux machte; ist eine Zeit her, dass ich Linux
ernsthaft genutzt habe und jetzt bringt mich KiCad wieder zurück ;-)
Bin aber seit Jahrzehnten Macintosh-Fan - das ist schon eine andere
Welt, wenn man wirklich arbeiten will (bis auf wenige Ausnahmen,wo
Windows die Nase vorn hat, weil es bestimmte Spezialprogramme (noch)
nicht auf OSX gibt oder auch Linux, welches sich ja quasi den gleichen
Urvater mit OSX teilt - es ist halt die Beqemlichkeit und das i.d.R.
tolle plug & play und die Einfachheit der Bedienung etc. - ich weiß:
Philosophiefragen ..)
>> aufräumen. Es gibt wohl auch einen spezifischeh KiCad-Bibliotheksmanager>> - den habe ich aber unter Mint nicht ans Laufen gebracht - ist>> installiert, startet aber nicht.>> Aha? Wie heisst der denn? Ist das eventuell etwas für die Python> Schnittstelle von KiCad? Dann muss KiCad dafür compiliert sein.>
Das Ding heißt "kicadlibrarian"; mal sehen, ob es unter Debian läuft
So, jetzt hoffe ich, dass heute die PLatine fertig wird und ich keine
neuen Überraschungen erlebe.
Grüße
Raimund