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
:
Bearbeitet durch User
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 einem Texteditor 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
:
Bearbeitet durch User
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.