Hallo zusammen,
ich habe eben frisch angefangen mit Platinenlayout und Kicad (zusammen
mit FreeRouting).
Für ein Debugging/Testboard will ich die Chipselect Leitungen von 3
ROM/FlashROMs im Bedarfsfall auftrennen können. Im Normalfall sind alle
3 /CS* (Pins 1, 2, 4) mit dem zentralen /CS (Pin 3) verbunden. Wenn ich
die Verbindungen auftrenne, will ich Pinheader einlöten um einen Jumper
in eine der 3 Positionen aufzustecken. Dadurch kann ich gleichzeitig
mehrere Chips gesteckt lassen.
Dazu habe ich ein Footprint mit 4 Pins gemacht und die Pads mit einem
Polygon auf F.cu verbunden. Sieht in PCBNew erstmal gut aus.
Wenn ich das ganze in FreeRouting importiere, dann sind dort nur die
Pads enthalten, nicht aber das handgezeichnete Polygon auf dem F.cu
Layer. Tatsächlich hat FreeRouting sich dann die Freiheit genommen und
A8 zwischen den Pads durchgeroutet über das Polygon hinweg und dadurch
einen ungewollten Kontakt hergestellt (siehe Bild "A8_crosses_Jumper").
Zwischen den Pads ist ein Abstand von ca. 0.75mm.
Im Bild "A8_crosses_Jumper_different_net" habe ich das Netz von A8
highlighted.
In der Library wird solch eine Verbindung auch mit einem Polygon gemacht
(z.B. bei SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mm), allerdings
ist der Abstand zwischen den Pads sehr viel kleiner, so etwa 0,25mm. Da
passt natürlich keine geroutete Leiterbahn mehr durch.
Um das Problem zu umgehen habe ich anstatt des Polygon Werkzeugs ein
zusätzliches Connectiong-Pad ohne Pad-Nummer verwendet um die anderen
Pads zu verbinden (siehe Bild "Footprint_pad_properties"). Das sieht
auch gut aus und funktioniert auch in FreeRouting, nur leider beklagt
sich der DRC mit der Meldung "Pad too close to pad".
Ich möchte den zusätzlichen Pads keine Nummer eines bestehenden Pads
zuweisen, da FreeRouting ja die Verbindung sonst auf dem neuen Pad
machen dürfte.
Dasselbe Problem habe ich noch bei 86 anderen Pins auf dem Board.
Wie macht man sowas richtig? Kann es bei der Fertigung Probleme geben,
wenn man solche überlappenden Pads absichtlich macht?
Michael
Hallo Michael.
Michael D. schrieb:
Mit Freeroute kenne ich mich nicht aus. Aber zum Rest kann ich
Anmerkungen machen.
> In der Library wird solch eine Verbindung auch mit einem Polygon gemacht> (z.B. bei SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mm), allerdings> ist der Abstand zwischen den Pads sehr viel kleiner, so etwa 0,25mm. Da> passt natürlich keine geroutete Leiterbahn mehr durch.
Spricht etwas dagegen, dass Du Deine Pads auch vergrößerst, bis kein
routing mehr zwischen den Pads hindurchgeht. Du kannst die Pads ja
relativ weit variieren.
> Um das Problem zu umgehen habe ich anstatt des Polygon Werkzeugs ein> zusätzliches Connectiong-Pad ohne Pad-Nummer verwendet um die anderen> Pads zu verbinden (siehe Bild "Footprint_pad_properties"). Das sieht> auch gut aus und funktioniert auch in FreeRouting, nur leider beklagt> sich der DRC mit der Meldung "Pad too close to pad".
Wenn es Einzelfälle sind, was spricht gegen ignorieren?
Edit: ok 86 Pins ist kein Einzellfall.
> Ich möchte den zusätzlichen Pads keine Nummer eines bestehenden Pads> zuweisen, da FreeRouting ja die Verbindung sonst auf dem neuen Pad> machen dürfte.
Warum wäre das ein Problem? Das ist eigentlich die typische KiCad
Vorgehensweise für mehrere verbundene Pads des gleichen Footprints.
> Wie macht man sowas richtig? Kann es bei der Fertigung Probleme geben,> wenn man solche überlappenden Pads absichtlich macht?
Jain.
I) Manchmal muss beim CAM Input in der Leiterplattenfabrik die Größe von
Flächen etwas verringert werden, um Mindestabstände für das Ätzen zu
gewährleisten. Für dieses gleichmäßige verringern von Abständen gibt es
eine Automation, aber wenn diese über Pads läuft, die nur gerade
aneinanderstossen oder sich nur gering überlappen, dann können die dabei
in Einzelpads zerfallen.
Wenn Du so vorgehst, sollten sich die Pads also schon sehr deutlich
Überlappen.
II) Für eine elektrische Überprüfung der Platine mit z.B. einem flying
Probe Tester brauchst Du ein Programm, welches alle Leiterbahnen auf
Unterbrechung bzw auf Schluss zwischen Leiterbahnen testet. Solche
Programme können auf unterschiedliche Weise erstellt werden, und eine
Automatik für das Erstellen des Testprogrammes aus Gerberdaten basiert
darauf, Pads als Endpunkte zu sehen und von Pad zu Pad die Verbindung zu
testen, bzw. die Isolation zwischen zwei unterschiedlichen Netzen zu
prüfen.
Das funktioniert aber nur gut, solange ein Pad als einzelner Blink mit
einer Apertur in Gerber dargestellt wird, und ein kurzes Leiterbahnstück
der gleichen Form wie das Pad als Draw der Länge Null mit der gleichen
Apertur in Gerber dargestellt wird.
Wenn Du jetzt eine größere Fläche aus Pads zusammensetzt, sieht der
Algorithmus jedes einzelne Pad in der Fläche als Leiterbahnendpunkt, und
hält sich ewig damit auf, die Unterbrechungsfreiheit zwischen
verschiedenen Stellen auf der gleichen Fläche zu festzustellen, obwohl
dort eine Unterbrechung seeeehr unwahrscheinlich ist. Zumindest bei
"normalen" Boards. Solche Programme müssen darum in den Fällen "manuell"
nachbearbeitet werden. Auf der anderen Seite ist diese Vorgehensweise
aber sehr Arbeitsaufwändig. Ebenso sieht der Algorithmus auch jeden
Blink mit Apertur in Gerber als Leiterbahnendpunkt, und darum sollten
kurze Leiterbahnstücke der gleichen Größe wie Pads nicht als Blink mit
Apertur in Gerber dargestellt werden (wie Pads) sondern als *Draws der
Länge Null* mit Apertur.
Am besten Du lieferst für den elektrischen Test eine IPC-D-356 Netzliste
mit. Die ist dafür gemacht.
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Nachtrag:
Bernd W. schrieb:> Michael D. schrieb:>> In der Library wird solch eine Verbindung auch mit einem Polygon gemacht>> (z.B. bei SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mm)
KiCad 5 oder früher hat Probleme mit Kupfer im Footprint, dass nicht Pad
ist. Der DRC ist dafür blind. Wie das mit KiCad 6 aussehen wird, weiss
ich nicht.
Auch unter diesem Gesichtspunkt ist es sinnvoll, mehere Pads mit
gleicher Pad Nummer im Footprint einzusetzten.
Im Board hast Du dann Airwires dazwischen, und Du ziehst halt eine
Leiterbahn um die Pads zu verbinden. Rein formal, wenn sich die Pads
überlappen.
Was Freeroute mit Kupfer das nicht Pad ist im Footprint macht, weiss
ich nicht.
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Bernd W. schrieb:> Spricht etwas dagegen, dass Du Deine Pads auch vergrößerst, bis kein> routing mehr zwischen den Pads hindurchgeht. Du kannst die Pads ja> relativ weit variieren.
Das habe ich bei dem einen gezeigten Jumper jetzt gemacht, so wie in dem
erwähnten Library footprint, siehe Bild "New_jumper".
>> Ich möchte den zusätzlichen Pads keine Nummer eines bestehenden Pads>> zuweisen, da FreeRouting ja die Verbindung sonst auf dem neuen Pad>> machen dürfte.>> Warum wäre das ein Problem? Das ist eigentlich die typische KiCad> Vorgehensweise für mehrere verbundene Pads des gleichen Footprints.
Dazu muss ich weiter ausholen, ich wollte nur die Frage nicht gleich
überfrachten und nur das einfache Beispiel erläutern :-)
Ich möchte zwischen einem PCB Card Edge Connector und dem Rest der
Schaltung eine Sollbruchstelle einbauen, d.h. einen defaultmäßig
geschlossenen Jumper, dessen Leiterbahn ich bei Bedarf durchkratzen kann
und einen Jumper einlöten kann (zwischen Pad 17 und dem Pad recht
deneben). Siehe Bilder "board" und "footprint". Im Bild footprint habe
ich in den beiden unteren Zeilen den Front- und Back-Layer
auseinandergeschoben, die oberste Zeile zeigt das komplette Konstrukt.
Das jeweils linke Pad (17 und 18) muss dazu mit der Schaltung verbunden
sein, das rechts danebenliegende Pad (ohne Nummer, mit
Durchkontaktierung) darf nur durch eine händisch gezogene Verbindung
Kontakt haben. Am rechten Pad geht eine weitere Verbindung zu einem SMD
Pad, welches den Kontakt zum Stecker herstellt. Wenn linkes und rechtes
Pad dieselbe Nummer hätten würde der Router die beiden miteinander
verbinden (nicht unbedingt direkt) und könnte den abgehenden trace auch
auf dem rechten Lötpad platzieren, was aber nicht sein darf.
Leider kann ich mir hier nicht durch ein Polygon helfen, da man ja
Durchkontaktierungen (das rechte Pad) wohl nur über Pads machen kann.
> Das funktioniert aber nur gut, solange ein Pad als einzelner Blink mit> einer Apertur in Gerber dargestellt wird, und ein kurzes Leiterbahnstück> der gleichen Form wie das Pad als Draw der Länge Null mit der gleichen> Apertur in Gerber dargestellt wird.
Um diesen Satz zu verstehen fehlen mir noch Grundlagen, ich muss erstmal
nachlesen was ein Blink, eine Apertur und ein Draw ist :-)
> Wenn Du jetzt eine größere Fläche aus Pads zusammensetzt, sieht der> Algorithmus jedes einzelne Pad in der Fläche als Leiterbahnendpunkt, und> hält sich ewig damit auf, die Unterbrechungsfreiheit zwischen
Das habe ich verstanden.
Aus meiner Sicht sind die Verbindungen zwischen den Pads sowas wie ein
aufgestecktes Bauteil (ein Jumper), nur dass die Verbindung über Kupfer
auf der Platine hergestellt wird.
Das Problem ist nun genau, dass es für den Autorouter zwei getrennte
Netze sind, für den Tester aber zwei über den Jumper miteinander
verbundene Netze.
> Am besten Du lieferst für den elektrischen Test eine IPC-D-356 Netzliste> mit. Die ist dafür gemacht.
Das klingt gut. Wird die von den Standard Produzenten (z.B. JLCPCB)
unterstützt?
Für die erste Bestellung konnte ich nicht mehr abwarten, die hab ich
jetzt so abgeschickt, aber es wäre ein großes Wunder wenn das auf Anhieb
funktioniert.
Michael
Hallo Michael.
Michael D. schrieb:> Ich möchte zwischen einem PCB Card Edge Connector und dem Rest der> Schaltung eine Sollbruchstelle einbauen, d.h. einen defaultmäßig> geschlossenen Jumper, dessen Leiterbahn ich bei Bedarf durchkratzen kann> und einen Jumper einlöten kann (zwischen Pad 17 und dem Pad recht> deneben). Siehe Bilder "board" und "footprint". Im Bild footprint habe> ich in den beiden unteren Zeilen den Front- und Back-Layer> auseinandergeschoben, die oberste Zeile zeigt das komplette Konstrukt.
Was spricht dagegen, den Footprint durch zusammenfügen mehrer Pads
gleicher Padnummer zu erzeugen?
Für den Schaltplan ist das dann ein einzelner Anschluss, der an einem
einzelnen Netz hängt.
Ok, Freeroute behandelt den auch als einzelnen Anschluss, und
kontaktiert ihn möglicherweise nur an einer Stelle.
Dagegen müsstest Du das Netz teilen, in zwei Netzte zu beiden Seiten der
cut Stelle. Mit Kupfer im Footprint ist das ein sogenanntes "Nettie",
welches in KiCad aktuell noch nicht wirklich unterstützt wird.
Siehe dazu hier Beitrag "Re: Kicad Leiterbahn im Footprint möglich?"
Ist allerdings von 2016. KiCad hat sich seitdem stark verändert, und wie
Freeroute damit klarkommt, dazu weiss ich überhaupt nichts.
Allenfalls hätte ich eine Idee für einen Workaround: Einen Dummy
Footprint erstellen, der "nicht stimmt" aber die Probleme vermeidet, und
anschliessend durch den echten Footprint ersetzten.
> Leider kann ich mir hier nicht durch ein Polygon helfen, da man ja> Durchkontaktierungen (das rechte Pad) wohl nur über Pads machen kann.
Einzelnen THT Pin erstellen (z.B. ein Messpunkt) und da hinein pflanzen?
>> Das funktioniert aber nur gut, solange ein Pad als einzelner Blink mit>> einer Apertur in Gerber dargestellt wird, und ein kurzes Leiterbahnstück>> der gleichen Form wie das Pad als Draw der Länge Null mit der gleichen>> Apertur in Gerber dargestellt wird.>> Um diesen Satz zu verstehen fehlen mir noch Grundlagen, ich muss erstmal> nachlesen was ein Blink, eine Apertur und ein Draw ist :-)
Das sind Begriffe aus dem Gerber Fileformat.
Näheres zu Gerber ist hier zusammengetragen:
https://www.mikrocontroller.net/articles/Gerber-Tools> Aus meiner Sicht sind die Verbindungen zwischen den Pads sowas wie ein> aufgestecktes Bauteil (ein Jumper), nur dass die Verbindung über Kupfer> auf der Platine hergestellt wird.>> Das Problem ist nun genau, dass es für den Autorouter zwei getrennte> Netze sind, für den Tester aber zwei über den Jumper miteinander> verbundene Netze.
Ja, und ein aktuelles KiCad hat mit nicht Pad Kupfer im Footprint seine
eigenen Probleme.
>> Am besten Du lieferst für den elektrischen Test eine>> mit. Die ist dafür gemacht.>> Das klingt gut. Wird die von den Standard Produzenten (z.B. JLCPCB)> unterstützt?
Auch IPC-D-356 Netzlisten enthalten das, was das Programm meint ein Netz
zu sein. Wenn Workarounds Pseudonetzte erstellen, müssen die immer
manuell entfernt werden.
Aber es beseitigt den (fehleranfälligen) Arbeitsschritt in der
Leiterplattenfabrik das selber irgendwie aus den Gerberdateien
abzuleiten.
Du bist der einzige, der wissen kann, wie die fertige Leiterplatte
aussehen soll. Wenn Du es anderen überlässt, etwas zu interpretieren,
lauern dort immense Fehler.
Die weitaus meisten Leiterplattenfabriken kennen Gerber, Excellon Drill
files und IPC-D-356 Netzlisten. Das sind eigentlich Standard
Austauschformate.
> Für die erste Bestellung konnte ich nicht mehr abwarten, die hab ich> jetzt so abgeschickt, aber es wäre ein großes Wunder wenn das auf Anhieb> funktioniert.
Viel Glück.
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de