Forum: Platinen Kicad Footprint und Freerouting: Track kreuzt F.cu des Footprint


von Michael D. (nospam2000)



Lesenswert?

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

: Bearbeitet durch User
von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

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

: Bearbeitet durch User
von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

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

: Bearbeitet durch User
von Michael D. (nospam2000)


Angehängte Dateien:

Lesenswert?

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

: Bearbeitet durch User
von Michael D. (nospam2000)


Lesenswert?

Im Kicad forum habe ich jetzt auch was dazu gefunden:
https://forum.kicad.info/t/cut-jumper-link-footprint/2328

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

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

: Bearbeitet durch User
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.