Forum: Platinen PCI-Bus Design: Referenzplanes und Crosstalk


von Reto H. (huberret)


Lesenswert?

Hallo,

ich habe eine PCI Karte gebaut und bräuchte mal ein bisschen 
Expertenhilfe. Sie wird soweit erkannt, funktioniert aber nicht 
zuverlässig (Abstürze des Systems, Hänger etc.)
Nun habe ich gelesen, dass ich für ein sauberes Design Referenzplanes 
bräuchte um Crosstalk und Impedanzsprünge zu vermeiden.

Leider habe ich aber keine Ahnung wie solche Referenzplanes aussehen 
sollten. Ich habe zwar Groundplanes auf top und bottom layer aber was 
ist mit Referenzplanes für die verschiedenen Signale gemeint?


Vielen Dank für die Hilfe,

Reto

: Verschoben durch Moderator
von Dieter (Gast)


Lesenswert?

Hast du mal ein Bild, rein aus Interesse? Und vielleicht eine kurze 
Beschreibung? Das finde ich immer sehr interessant, wenn jemand 
PC-Karten konstruiert.

Auf deine eigentliche Frage kann ich dir leider nichts antworten :-\

von Reinhard Kern (Gast)


Lesenswert?

Reto H. schrieb:
> Ich habe zwar Groundplanes auf top und bottom layer aber was
> ist mit Referenzplanes für die verschiedenen Signale gemeint?

Das geht so nicht - man kann zwar auf derselben Ebene (coplanar) auch 
Referenz-GND verlegen, aber das ist selbst für einen Fachmann schwierig 
und für jemand ohne jede Ahnung überhaupt nicht machbar, in der Praxis 
sind da ja Bauteile und Leiterbahnen im Weg.

Gemeint ist mit reference plane eine Massefläche auf der Innenlage eines 
Multilayers. Muss eine bestimmte Impedanz eingehalten werden, so muss 
als erstes ein geeigneter layer stack geplant werden oder ein geeigneter 
Standard eines Leiterplattenherstellers ausgewählt werden. D.h. dass 
Leiterbahnen in Microstrip, Stripline o.ä. Konfiguration auf einer 
bestimmten Ebene bei einer bestimmten Breite die gewünschte Impedanz 
haben.
Das muss eben vorab berechnet werden oder das Layoutsystem kann das im 
Design berechnen.

Reto H. schrieb:
> Leider habe ich aber keine Ahnung wie solche Referenzplanes aussehen
> sollten.

Weiterbilden, und zwar erheblich, oder an einen Fachmann übergeben. Es 
gibt von manchen Softwareherstellern (Mentor, Zuken...) und deren 
Vertreibern auch Lehrgänge dazu, die setzen aber selbstverständlich 
Kenntnisse in HF-Technik voraus.

Übrigens, einfach nur eine GND-Plane einzufügen ist völlig unsinnig, das 
Layout muss neu erstellt werden mit HiSpeed-Knowhow.

Gruss Reinhard

von Christian B. (luckyfu)


Lesenswert?

Hast du die PCI Designrules denn auch beachtet? Ich hab auch schonmal 
einen PCI Master geroutet und kann mich noch daran erinnern, daß 
spezielle Forderungen zu den Leitungslängen existierten.
Es gab 2 unterschiedliche: Datenleitungen untereinander und die Clock 
Leitungen zu den Datenleitungen.
PCI ist so langsam, daß die Impedanz noch nicht wirklich problematisch 
ist. Wenn du also die Leitungen halbwegs gleich behandelst (nicht eine 
direkt auf der Top Seite vom SVB Pin zum Controller führen und andere 
mit 10 Lagenwechseln Beispielsweise) sollte die Impedanz nicht das 
Problem darstellen. Wohl aber die Laufzeit. Bei den vielen Leitungen im 
PCI hat man schnell 2-3cm Längenunterschied. Das wird aber nicht mehr 
toleriert.

Wohlgemerkt schadet ein Impedanzkontrolliertes Design natürlich nicht. 
Aber das ist halt auch nicht so trivial sondern setzt schon einige 
Kenntnisse in verfügbaren nöglichen Basismaterialkombinationen voraus 
(Lagenaufbau) sowie einige Grundkenntnisse im Routing derartiger Signale

von Georg A. (georga)


Lesenswert?

Ich habe jetzt schon mehrere PCI-Designs sowohl mit fertiger Bridge 
(PLX90*) als auch eigenen FPGAs (Hostbridge bzw. Device) gemacht und 
hatte trotz anfangs eher schludriger Layouts noch nie Probleme, die sich 
aufs Layout zurückführen hätten lassen. Es war eigentlich immer der Chip 
oder mein VHDL schuld ;) Manchmal auch der Treiber, insb. bei DMA kann 
man gut danebenlangen...

Es muss auch nicht Multilayer sein, es gibt genügend käufliche Karten, 
die nur doppelseitig sind und auch einwandfrei gehen. Ok, der Takt 
sollte nicht gerade 10cm Umweg fahren, aber freiwillig macht man das ja 
auch nicht. Fertige PCI-Chips haben ohnehin ein Pinlayout, das den Pins 
am Slot entspricht.

Rück mal mit etwas mehr Infos raus, zB. verwendeter Chip und 
Layoutauschnitten.

von Reto H. (huberret)


Lesenswert?

Vielen Dank für Eure Antworten. Also eigentlich handelt es sich nicht 
mal um eine PCI Karte. Es ist nur ein Adapter von unserem Spezial-PCI 
Stecker auf den Standard Mini PCI. Ich dachte mir daher, das sei nicht 
wirklich kritisch...
Unser Spezialstecker funktioniert mit anderen Modulen problemlos.

Christian B. schrieb:
> PCI ist so langsam, daß die Impedanz noch nicht wirklich problematisch
> ist. Wenn du also die Leitungen halbwegs gleich behandelst (nicht eine
> direkt auf der Top Seite vom SVB Pin zum Controller führen und andere
> mit 10 Lagenwechseln Beispielsweise) sollte die Impedanz nicht das
> Problem darstellen. Wohl aber die Laufzeit. Bei den vielen Leitungen im
> PCI hat man schnell 2-3cm Längenunterschied. Das wird aber nicht mehr
> toleriert.

Die Leitungen sind ziemlich gleich lang. Ich habe darauf geschaut, dass 
möglichst wenige Kreuzungen entstehen und ich gerate routen kann.
Aber allgemein sind die Leitungen ziemlich lang. Das ist wohl auch das 
Hauptproblem, es sind ziemlich lange stubs entstanden...

Georg A. schrieb:
> Rück mal mit etwas mehr Infos raus, zB. verwendeter Chip und
> Layoutauschnitten.

Wie gesagt, ausser zwei Steckern ist da nicht viel drauf. Ich werde mein 
Design jetzt mechanisch mal umstellen, sodass die Leitungen kürzer 
werden. Wenn ich damit fertig bin zeige ich euch mal ein paar Bilder.

Trotzdem nochmals zurück zu den Referenzplanes: ein paar einfache 
Regeln, welche schon zu einer Verbesserung führen könnten gibt es also 
nicht?

von STMler (Gast)


Lesenswert?

Reto H. schrieb:
> Trotzdem nochmals zurück zu den Referenzplanes: ein paar einfache
> Regeln, welche schon zu einer Verbesserung führen könnten gibt es also
> nicht?

Doch: Massefläche auf Innenlage durchgängig nicht zerschnitten.
Wenn Signale auf beiden Aussenlagen, dann auch zwei Masseflächen wenn es 
der Platz erlaubt.

Mindestens 4 Layer also.

von Reto H. (huberret)


Lesenswert?

4 Layer habe ich eh schon, sonst geht das Entflechten vom pitch des 
Steckers her gar nicht.
Also zusammenfassend auf allen Lagen Masseflächen ohne floatende Inseln?

von Georg A. (georga)


Lesenswert?

Von welchen Abmessungen reden wir hier? Vor gut 16 Jahren hat mal ein 
Kollege an der Uni einen passiven PCI-Extender gebastelt. Das war eine 
PCI-Platine (ca. 8cm hoch). Alle Leitungen von unten gingen nach oben 
auf eine DIN-Leiste (64polig). Von da gings per Flachbandkabel ca. 20cm 
auf eine weitere Platine, wo nach 5cm der PCI-Slot und diverse 
LA-Abgriffe waren. Total gruselig, das Ding hat aber nur ganz selten 
(1mal pro Stunde) oder so Probleme gemacht, und das auch nur mit der 
dort eingesteckten HW. Die Grafikkarte (war damals auch auch PCI) war 
davon völlig unbeindruckt. Zum Debuggen einer PCI-HW hats jedenfalls 
gereicht.

Wenn also dieses eigentlich maximal-verkackte Design (relativ gesehen) 
so gut funktioniert hat, kann man sich ja kaum was Schlimmeres 
vorstellen ;)

von Reinhard Kern (Gast)


Lesenswert?

Reto H. schrieb:
> Also zusammenfassend auf allen Lagen Masseflächen ohne floatende Inseln?

Nein, du hast überhaupt nicht verstanden, wobei es bei Referenzebenen 
geht. Deine zerstückelten Füllflächen nützen dafür überhaupt nichts, und 
wenn du auch noch floatende Inseln hast, dann ist das so ungefähr das 
Schlechteste was du überhaupt veranstalten kannst.

Google mal nach Microstrip und Stripline. Es geht darum, dass unter / 
über einer Leiterbahn eine Massefläche vorhanden ist, und das überall 
und ohne Unterbrechung! Zweckmässig ist es, nur Leiterbahnen mit 
kritischen Signalen so zu verlegen und das auf bestimmten Ebenen, 
während man auf anderen Ebenen unkritische Signale verlegt, die brauchen 
dann keine Referenz-Ebene mit GND. Aber da kannst du wohl gleich ganz 
von vorne anfangen.

Zeichnung zum Einstieg:
http://web.mit.edu/geda/arch/i386_rhel3/versions/20060124/share/wcalc-1.0/stripline.png?dur=5778

Gruss Reinhard

von Michael (Gast)


Lesenswert?

Sind wir ehrlich. So was kann man einfach nicht ohne Erfahrung 
erfolgreich erledigen. Erfahrung ist das A und O beim Platinendesign. 
Und solche Aufgaben kann einfach nur jemand routen der entweder 
jahrelange Erfahrung hat oder das beruflich jeden Tag macht. Ich würde 
mir da jemanden suchen, der sowas beherrscht und die passenden Tools 
besitzt. Klar geht es auch mit Hobbysoftware wie Eagle oder Konsorten 
aber ... naja muss jeder selbst wissen ob er sich das antun will. 
Außerdem kann es sich kein Hobbyist leisten da drei / vier Fehlversuche 
hinzulegen. 4 Lagen kann man ja noch bezahlen aber bei PCI würde ich 
minimum 6 Lagen anlegen. Wenn man wenig Erfahrung hat, dann kann man 
auch schlecht ans Limit rangehen.

von Georg A. (georga)


Lesenswert?

> aber bei PCI würde ich minimum 6 Lagen anlegen.

Aber sonst ist gesundheitlich noch alles in Ordnung? ;)

Consumer-PCI (33MHz) ist schnarchlahm und sehr robust. Abermillionen 
PC-Boards aus den letzten Ecken Chinas haben problemlos mit 4 Lagen 
funktioniert. Und selbst nur zwei sind kein grösseres (elektrisches) 
Problem, das Routen ist halt etwas anstrengend.

Von daher glaube ich eher, dass beim TO was anderes faul ist.

von Michael X. (Firma: vyuxc) (der-michl)


Lesenswert?

PCI ist ein full resonant bus bei dem man auf die setup/hold zeiten 
achtgeben sollte. Man kann sich durchaus was mit seinem Layout versauen. 
Die maximale Buslänge liegt so bei ~30cm (12"). Darüber kann es 
funktionieren, muß aber nicht. Als Karte ist ein geschluderter Aufbau 
oft noch tragbar, du hast aber einen Adapter gebaut, mit 2 Steckern 
mehr. Das killt dir in Verbindung mit deinem nicht vorhandenen 
Lagenaufbau die Signale.

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.