mikrocontroller.net

Forum: Platinen Routen von LVDS: Einige Fragen zu den Grundlagen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Full W. (realjey)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich route das erste mal in größerem Rahmen LVDS-Signale. Ich habe 16 
LVDS-Pärchen (4 ADCs mit jeweils 4-Pärchen) welche von einem Sensor an 
einen FPGA geroutet werden sollen. Zo-Spezifikation=100 Ohm, f=150 MHz.

Ich habe nun ein paar Verständnisprobleme, vorallem in Bezug auf die 
Zusammenarbeit mit dem Platinenhersteller...

Es ist eine 10Layer-Paltine geworden, allerdings habe ich soviele 
versch. Spannungen und Signale, das nur 2 Layer wirklich für 
LVDS-Signale übriggeblieben sind.

1) Ich musste nun die LVDS-Signale sowohl auf den vorgesehenen 2 Layern 
als auch auf TOP, BOTTOM und einem weiterem internen Signal-Layer 
routen. Es sind also mind. 2 Vias pro Pärchen im Signalfluss. Ist das 
noch OK oder NO-GO?

2) Darf ich auf den LVDS-Layern auch noch andere Signale routen?

3) Bei Altium sind standartmässig 500 mil als "max. uncoupled length" 
eingestellt. Das halte ich ein. Aber ist das auch OK?

4) Leiterbahnbreite+Leiterbahnabstand: Ich habe mir die Polar 
Instruments Software-Demo besorgt und habe erst einmal für Edge Coupled 
Offset Stripline 1B1A, FR-4, 300µ-Substrat und Er=4.3 gerechnet um einen 
Anhaltspunkt zu bekommen. Allerdings ist mir nicht ganz klar, inwiefern 
diese Werte nun korrekt sind. Ich habe mit dem Platinenhersteller 
telefoniert und er meinte, ich solle die Platine einfach schicken und 
sie würden dann ggf. auf mich zurück kommen, falls Anpassungen gemacht 
werden müssen. Allerdings arbeitet dieser Hersteller nur mit 
Gerberfiles, ich kann ihm nicht direkt das Altium-PCB schicken. Woher 
weiss er denn nun, welche der Signale die 100-Spec benötigen und welche 
nicht, diese Information ist ja in der Gerberfiles nicht enthalten, oder 
doch? Mir ist der gesamte Vorgang einfach nicht ganz klar, kann mich da 
jemand erhellen? Wie läuft soetwas normalerweise ab? Woher soll ich den 
z.B. wissen ob der Hersteller nun Edge Coupled Offset Stripline 1B1A 
oder Edge Coupled Offset Stripline 1B2A verwendet etc? Bekomme ich diese 
Informationen normalerweise nicht vorab?

5) Darf ich auf den Layern auf denen ich die LVDS-Signale route 
weiterhin GND-fills verwenden? Zwischen den P+N-Tracks eines Pärchens 
habe ich kein GND-fill, aber zwischen den Pärchen schon.

6) Wieviel Abstand muss ich mind. jeweils zwischen den Pärchen 
einplanen?

7) Wenn ich jetzt über die gesamte Leitungslänge die 100 Ohm-Spec 
einhalte, benötige ich am FPGA (IBUFDS) dann noch einen 100 
Ohm-Widerstand zwischen den P+N-Tracks oder hat sich das erledigt?

DANKE für eure Hilfe!

: Bearbeitet durch User
Autor: Reinhard Kern (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
full well schrieb:
> Woher
> weiss er denn nun, welche der Signale die 100-Spec benötigen und welche
> nicht, diese Information ist ja in der Gerberfiles nicht enthalten

Ganz einfach: in so einem Fall weise ich den LVDS-Signalen nicht z.B. 10 
mil Breite zu, sondern 10,1 mil - dann muss er sich nur diese 
Leiterbahnen anzeigen lassen.

full well schrieb:
> Wenn ich jetzt über die gesamte Leitungslänge die 100 Ohm-Spec
> einhalte

Es hat wenig Sinn, hier ein Seminar über differential pairs zu 
veröffentlichen, das hat in einer US-Fachzeitschrift mehrere Hefte 
belegt, aber 2 wesentliche Punkte daraus (es wird allerdings viel 
darüber diskutiert, auch z.T. mit wenig Fachverstand):

1. Die Einhaltung der Single Ended Impedanz (50 Ohm) ist für die 
Signalintegrität wichtiger als die differentielle Impedanz.

2. Die oft geäusserte Empfehlung, die beiden Leitungen mit dem kleinsten 
erlaubten Absatnd zu verlegen, ist generell falsch. Man kann selbst 
nachrechnen, dass die Beziehung Zd = 2 x Zs umso weniger erfüllt ist, je 
geringer der Abstand ist, wenn man sich die Feldverteilungen ansieht, 
ist das auch logisch. Es sollten aber BEIDE Impedanzen möglichst 
eingehalten werden. Das gelingt annähernd, wenn man den Abstand grösser 
wählt als das DRC-Minmum, was man auch leicht nachrechnen kann: bei der 
gewählten Lösung sollten die Abweichung sowohl bei 50 als auch bei 100 
Ohm gering sein (ein paar Prozent).

full well schrieb:
> 3) Bei Altium sind standartmässig 500 mil als "max. uncoupled length"
> eingestellt. Das halte ich ein. Aber ist das auch OK?

Dazu musst du dir die Wellenlänge deiner Signale berechnen, verglichen 
damit muss der Längenunterschied gering sein.

full well schrieb:
> Woher soll ich den
> z.B. wissen ob der Hersteller nun Edge Coupled Offset Stripline 1B1A
> oder Edge Coupled Offset Stripline 1B2A verwendet etc?

Der Hersteller produziert schlicht so wie in den Gerberfiles vorgesehen, 
es sei denn, nach seinen Berechnungen und Erfahrungen ergibt das nicht 
die gewünschte Impedanz, dann meldet er sich. Die Physik ist 
entscheidend, nicht ein Rechenmodell.

full well schrieb:
> 5) Darf ich auf den Layern auf denen ich die LVDS-Signale route
> weiterhin GND-fills verwenden?

Wenn du das in die Berechnung einbeziehst - die Impedanz ändert sich 
dadurch erheblich.

full well schrieb:
> 7) Wenn ich jetzt über die gesamte Leitungslänge die 100 Ohm-Spec
> einhalte, benötige ich am FPGA (IBUFDS) dann noch einen 100
> Ohm-Widerstand zwischen den P+N-Tracks oder hat sich das erledigt?

Nichts erledigt sich von selbst, wenn das FPGA keine Terminierung hat, 
musst du selbst dafür sorgen.

full well schrieb:
> 6) Wieviel Abstand muss ich mind. jeweils zwischen den Pärchen
> einplanen?

Da kannst du eine Berechnung des Crosstalks durchführen, oder einfach 
soviel Platz lassen, dass eine zusätzliche Leitung dazwischenpassen 
würde - das reicht meistens. Dummerweise ist das sehr abhängig von der 
Strecke, die die Signale parallel laufen. Es gibt aber Software zur 
Berechnung, die normalerweise in die CAD-Software integriert ist, weil 
ja daraus die Geometriedaten benötigt werden.

Gruss Reinhard

Autor: Aeh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anstelle von 2 single ended haette ich eher ein coplanar paar genommen 
und der Abstand zum GND aussenrum etwas groesser als dazwischen.

Autor: Reinhard Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aeh schrieb:
> haette ich eher ein coplanar paar genommen
> und der Abstand zum GND aussenrum etwas groesser als dazwischen.

Die GND-Planes müssen trotzdem in die Impedanzberechnung einbezogen 
werden (d.h. die beiden am nächsten liegenden). Das wäre dann coplanar 
differential stripline oder coplanar differential waveguide.

Gruss Reinhard

Autor: Full W. (realjey)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erst einmal Reinhard soweit, hast mir weitergeholfen...

Autor: Full W. (realjey)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Nochmal eine Frage zur uncoupled length.

Ich habe jetzt max. 420mil uncoupled. Die Problematik ist das 
Highspeedkabel (mit dem ich auf das Mainboard gehe) bzw. die Buchse 
dazu.

Wie man im Screenshot sieht, liegen alleine die coupled pins ca. 180mil 
auseinander. Ich habe von Samtec die Aussage, das es defintiv immer die 
pads 1+2, 3+4 usw sind, die coupled sind. Selbst wenn ich von innen an 
die pads route enstehen ca. 50-60mil uncouled length.

Gibt es hier einen Trick um das zu reduzieren?

Autor: Full (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat sich erledigt, die Diff-Pairs sind 1-3, 2-4 und so weiter...hab die 
Samtec-infos falsch gelesen :)

Autor: Grendel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die können doch gar nicht coupled sein, dazwischen verläuft eine 
Masseplatte im Steckverbinder?!
Sicher dass ihr da von den gleichen Pin Nummern geredet habt?

Autor: Grendel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arg... Tab mit Datenblatt offen gehabt und deinen neuen post nicht mehr 
gesehen ;-)

Autor: LTC1043 (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Toradex hat da eine gute Appnote für das Erstellen von High Speed PCBs.

Vieleicht findest du darin noch einige gute Hinweise.

http://docs.toradex.com/101123-apalis-arm-carrier-board-design-guide.pdf

Cheers

Autor: Reinhard Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
LTC1043 schrieb im Beitrag #3396579:
> Toradex hat da eine gute Appnote für das Erstellen von High Speed PCBs.

Das ist mehr als eine Appnote, das ist schon fast ein Lehrbuch. Ich habs 
nicht ganz durchgelesen, aber so auf Anhieb finde ich auch nichts was 
irgendwie nicht richtig oder umstritten wäre, kann ich alles 
unterschreiben.

Auch wenn drinsteht, man soll 45Grad-Winkel verwenden, was hier immer 
wieder erbittert bekämpft wird - schaden tun sie garantiert nicht.

Gruss Reinhard

Autor: Full W. (realjey)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Danke erstmal für den Link, sieht sehr gut aus. Vom routing generell 
habe ich glaube alles eingehalten. Allerdings stellen sich mir weiterhin 
2 Fragen (kann auch damit zusammenhängen das ich das Dokument jetzt 
nicht 100% gelesen habe :).

1. Wenn ich nun alle Diff-Pairs auf die gleiche Länge tunen möchte, 
verhält sich Altium etwas seltsam. Wenn ich nun den Style "miltered with 
lines" oder "miltered with arcs" einstelle muss ich den Gap schon extrem 
groß einstellen (>35mil) damit Altium tatsächlich für beide Tracks die 
45°-Regel einhält. Wenn ich einen Gap >35mil einstelle wird das "innere" 
pair immer automatisch mit 90°-Winkeln geroutet. >35mil sind für mich 
aber nicht machbar, da ich den Platz einfach nicht habe. Bitte schaut 
euch mal den Screenshot an. Kann ich das nun so lassen, hab ich ein 
setting vergessen?

2. Wie gehe ich mit den Vias beim length tuning um (also dazugehörige 
Vias um die Diff-Pairs von einen auf den anderen Layer zu routen)? Ich 
meine wenn ich in jedem Diffpair die gleiche Anzahl an Vias habe, stimmt 
die Länge ja wieder. Was aber, wenn ich bei DIFF-Pair-1 nur einmal auf 
einen anderen Layer muss, bei Diff-Pair-2 aber 2mal (also 4 Vias 
insgesamt). So weit ich weiss, berücksichtigt Altium die Vias beim 
length tuning nicht. Wie berechne ich nun die zusätzlichen Längen die 
durch die Vias entstehen?

Danke schonmal und schönes Wochenende!

Autor: Grendel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
full well schrieb:
> Wie berechne ich nun die zusätzlichen Längen die
> durch die Vias entstehen?

Manuell.

(ja geht wirklich nicht anders)

Autor: Full W. (realjey)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aber wie genau? :)

Autor: Grendel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na Du kennst ja hoffentlich den Lagenaufbau?
Also kennst Du auch den Abstand von einer zur anderen Lage.

Autor: Full W. (realjey)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
d.h. wenn ich folgenden Layerstack habe (Siehe Screenshot) und jetzt von 
Layer-LVDS1 zu Layer-TOP per VIA route, muss ich
3 x 0.3mm = 0.9mm addieren? Oder 4 x 0.3mm?

Autor: Grendel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
4x

Autor: fullwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat noch jemand was zu dem 45°-Problem zu sagen? :)

Autor: Reinhard Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
fullwe schrieb:
> Hat noch jemand was zu dem 45°-Problem zu sagen?

Platz her oder hin, es ist ohnehin nicht gut, wenn der Abstand der 2 
Schleifenarme nur so gross ist wie der Abstand innerhalb des Paars - da 
gibt es Kopplungseffekte des Signals auf sich selbst, die nicht einfach 
zu berechnen sind, und die vor allem nur bei einem der beiden Leiter 
wirken.

Macht man den Abstand deutlich grösser, um das zu verringern, 
verschwindet auch das 45 Grad-Problem. So wie gezeichnet wäre ja der 45 
Grad-Abschnitt zu kurz, um einen Einfluss zu haben, deswegen macht ihn 
Altium garnicht erst. Vielleicht sieht es anders aus, wenn man statt 2 x 
45 Grad einen Halbkreis verwendet (Punkt 1 gilt trotzdem).

Gruss Reinhard

Autor: Reinhard Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
full well schrieb:
> und jetzt von
> Layer-LVDS1 zu Layer-TOP per VIA route, muss ich
> 3 x 0.3mm = 0.9mm addieren? Oder 4 x 0.3mm?

Nichts davon ist richtig. Vias haben generell eine andere Impedanz als 
die Leiterbahn, also ist 1mm Via-Hülse keineswegs = 1mm Leiterbahn. Dazu 
kommt die Tatsache, dass Vias i.A. nicht nur von der einen auf die 
andere Lage gehen, sondern weiter zu anderen Lagen, also Stichleitungen 
bilden, und auch beim Durchgang durch GND-Lagen zusätzliche 
Kapazitätlast bringen. Eine allgemein gültige Angabe ist schon deshalb 
unsinnig, weil die genauen Eigenschaften von der Geometrie des ganzen 
Vias abhängen und daher selbst bei gleichen Durchmessern sich von Via zu 
Via unterscheiden können.

Eine Software, die das alles berechnet, gibt es meines Wissens nicht zu 
bezahlbaren Preisen. Eine Korrektur von etwa der Länge des Vias ist 
besser als ganz ignorieren, mehr aber auch nicht. Notfalls müsste man 
den Effekt eines Vias an einem Testmuster mit geeignetem Equipment 
nachmessen. Ich gehe aber davon aus, dass viele real existierende 
Leiterplatten ohne genaue Berücksichtigung der Vias erstellt wurden und 
trotzdem funktionieren, wenn man nicht zuviele Vias einbaut.

Gruss Reinhard

Autor: fullwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke...

aber ich weiss nicht so ganz ob hier Altium nicht doch einfach buggy 
(oder von mir falsch eingestellt ist). Selbst wenn ich den Gap 10mal so 
groß wie die max. Amplitude (2mm zu 0.2mm) mache, verwendet AD bei mir 
für einen der Tracks 90°-Winkel.

Reinhard Kern schrieb:
> Platz her oder hin, es ist ohnehin nicht gut, wenn der Abstand der 2
> Schleifenarme nur so gross ist wie der Abstand innerhalb des Paars - da
> gibt es Kopplungseffekte des Signals auf sich selbst, die nicht einfach
> zu berechnen sind, und die vor allem nur bei einem der beiden Leiter
> wirken.

Verstanden, aber siehe oben...

Autor: fullwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das passiert übrigens auch wenn ich "...with arc" auswähle :/

Autor: fullwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab nochmal im AD-Forum nachgefragt. War tatsächlich falsch eingestellt.

Hier die Antwort:

there is a setting called "increase mitter radius", while you are tuning 
press the 2 (NOT on the keypad, but above the qw) to increase the 
mitter.

You can find these settings if you press the tilde  ('~') button while 
tuning.


Jetzt hab ich auch 45°-Tracks :)

Autor: Full W. (realjey)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muss noch einmal auf euch zurück kommen. Habe wieder einen elementaren 
Fehler begangen :/ Ich hatte das 10-Layer-PCB an den Hersteller 
geschickt,hatte und aber für Prepreg und Core den Standart "FR4/0.3mm" 
eingestellt. Jetzt kam die Platine und ist eben 3mm dick geworden, d.h. 
das bestimmte Pins nicht mehr am anderen Ende ankommen und ich sie nicht 
richtig löten kann :/

Ich hätte gerne wieder so 1.5mm bis 1.8mm PCB-Dicke.

Kann mir jemand ein gutes Material (hab leider keine Ahnung was es alles 
so auf dem Markt gibt) nennen, welches gut geeignet ist und mir die 
gewünchte Dicke bei 10-Lagen liefert?! Aber auch gleichzeitig nicht zu 
teuer ist...

Danke!

Autor: Grendel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich wunderte mich damals als ich geantwortet hatte schon beim dem 
Screenshot - dachte eigentlich das wäre nur erstmal zum rumspielen so 
eingestellt gewesen. ;-)
Sowas bespricht man am besten vorher mit dem Platinenhersteller!


10 Lagen kannst Du auch dünner als 1.5mm bekommen, das geht alles.
(mit entsprechend angepassten Leiterstrukturen für Impedanzen!)

Autor: MiSchl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Leiterplattenaufbauten können selbst konfiguriert und berechnet werden.
Die Ausgangsmaterialien sind ab Herstellwerk in versch. Dicken 
lieferbar.
Ein Hersteller für Basismaterial ist z.B. Isola
Hier kann man Lagenaufbauten beispielhaft einsehen / berechnen:
http://www.isola.de/d/multical/MultiCal3.html

Grundsätzlich wird der Lagenaufbau von Entwicklung / Layout vorgegeben 
(natürlich auch vorher berechnet). Da gibt es auch einige Dinge zu 
beachten.
Hier wurde mal ein ML-10 vorgestellt : 
Beitrag "Unterschied zwischen Core und Prepreg"

Wichtig:
Nicht jeder LP-Hersteller nutzt die gleichen Ausgangsmaterialien, das 
kann (muß) aber vorher erfragt werden, sonst sind die Berechnungen nur 
Schätzungen. Die unterschiedlichen Ausgangsmaterialien haben 
unterschiedliche el. Eigenschaften ....
Nicht jeder LP-Hersteller hat "alle" Materialdicken auf Lager.

Wichtig ist aber die Erkenntnis: veränderter Lagenaufbau mit veränderten 
Ausgangsmaterialien führt zu geänderten Leiterbreiten!!!

Eine Änderung "Auf Zuruf" wird kein gutes Ergebnis liefern.
Auch hier hilft einen umfangreiche Google-Suche weiter!!!
Support bieten: LP-Hersteller oder auch der Verbände wie FED oder VdL...

An sich ist es aber ein sehr umfangreiches Thema....

Viel Erfolg, MiSchl

Autor: Reinhard Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wenn du den Lagenaufbau von 3 auf 1,5 mm änderst, werden deine 
Leiterbahnen tendenziell schmäler - da hast du Glück gehabt, oft muss 
man nach Änderung der Lagen von vorne anfangen, weil nichts mehr passt.

Gruss Reinhard

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.