Forum: Platinen PCB Design SDRAM


von auswanderer (Gast)


Lesenswert?

Hi,

ich erstelle gerade ein PCB mit einem STM32F429 und 8MB externem SDRAM 
fuer einen Prototypen, ist das erste Mal dass ich sowas baue.
Ohne length matching haette ich Laengen zwischen 45-60mm fuer fast alle 
Signale, ausser den Bank Select BA0 und BA1, bei denen sind es nur 25mm.
Der memory controller laeuft bei mir mit 84 MHz.

Ich hab mit einige PCB Design Guidelines und Artikel durchgelesen, die 
machen da eher eine Wissenschaft daraus - ok ist es auch wenn man ins 
Detail schaut.

Vielleicht habt ihr ein paar praktische Tips zu den Laengen?

1) Sind 45-60mm bei 84MHz in einem Bereich wo ich was anpassen sollte? 
Gibt es da eine Daumenregel mit der ich arbeiten kann?
2) Was ich in bisherigen Artikeln nicht rauslesen konnte, wir kritisch 
sind die Bank Select Signale? Das wuerde mich einiges an Flaeche kosten 
die zu verlaengern, sind die wie die anderen Adressleitungen zu 
behandeln oder unkritisch?

: Verschoben durch Moderator
von Falk B. (falk)


Lesenswert?

auswanderer schrieb:
> Hi,
>
> ich erstelle gerade ein PCB mit einem STM32F429 und 8MB externem SDRAM
> fuer einen Prototypen, ist das erste Mal dass ich sowas baue.
> Ohne length matching haette ich Laengen zwischen 45-60mm fuer fast alle
> Signale, ausser den Bank Select BA0 und BA1, bei denen sind es nur 25mm.
> Der memory controller laeuft bei mir mit 84 MHz.
>
> Ich hab mit einige PCB Design Guidelines und Artikel durchgelesen, die
> machen da eher eine Wissenschaft daraus - ok ist es auch wenn man ins
> Detail schaut.
>
> Vielleicht habt ihr ein paar praktische Tips zu den Laengen?
>
> 1) Sind 45-60mm bei 84MHz in einem Bereich wo ich was anpassen sollte?

Ja, wenn gleich nicht die Taktfrequenz sondern die minimale Anstiegszeit 
entscheidend ist, siehe Wellenwiderstand.

> Gibt es da eine Daumenregel mit der ich arbeiten kann?

Mehr oder weniger.

> 2) Was ich in bisherigen Artikeln nicht rauslesen konnte, wir kritisch
> sind die Bank Select Signale?

Genau so so kritisch wie alle anderen Eingangssignale, denn die müssen 
ebenso Setup- und Holdzeiten einhalten, incl. guter Signalform.

> Das wuerde mich einiges an Flaeche kosten
> die zu verlaengern, sind die wie die anderen Adressleitungen zu
> behandeln

Ja.

> oder unkritisch?

Siehe oben. Aber du hast eine Längendifferenz von ca. 35mm, das sind 
~180ps Laufzeit, die kann man bei 84 MHz noch verschmerzen.

Beitrag "Re: SDRAM Leitungslängen"

von W.S. (Gast)


Lesenswert?

auswanderer schrieb:
> Vielleicht habt ihr ein paar praktische Tips zu den Laengen?

Eigentlich nur einen kleinen Tip aus der Praxis:
Plaziere deinen SDRAM neben deinen µC, schau dir die Luftlinien an und 
suche dir nach Gefühl die Position und Ausrichtung deines SDRAM's, die 
dir am ehesten geeignet erscheint. Dann all die Signale mal routen und 
wenn du zwischendurch merkst, daß es dir gefühlsmäßig mißfällt, dann 
alles zurück, Positionen ändern und nochmal.

Mit ein bissel Gefühl für HF-Dinge kriegt man das gut genug hin, daß es 
zuverlässig funktioniert. Ich würde da am Anfang keinen Aufwand mit 
Mäandrieren aller möglichen und unmöglichen Signale treiben.

Ach nochwas: Vor Jahren hat mir ein App-Ing von NXP gesagt: einfach in 
alle Steuerleitungen einen 22..33 Ohm Widerstand einschleifen. Es gibt 
die Dinger ja als Vierfach-Widerstände 'ARCnnn' (Zahl hab ich grad 
vergessen).

W.S.

von Andi (Gast)


Lesenswert?

> Vielleicht habt ihr ein paar praktische Tips zu den Laengen?

Nicht nur zu den Längen:

Leitungsimpedanzen beachten.

Rückströme beachten.

Die Controlleitungen sollten nicht kürzer als Daten und Adressen sein.

Jede Lane möglichst auf einer Lage routen.

Möglichst wenige Vias, keine Lagenwechsel 'unterwegs'.

Leitungsabstände einhalten, sprich die Leitungen nicht auf das 
produktionstechnisch Mögliche aneinander kuscheln.
Insbesonders Clock und Controlleitungen mit entsprechendem Abstand zu 
anderem Kupfer verlegen.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

auswanderer schrieb:
> 1) Sind 45-60mm bei 84MHz in einem Bereich wo ich was anpassen sollte?
> Gibt es da eine Daumenregel mit der ich arbeiten kann?

Erfahrungsgemäß (und mit viel Googeln) muss man eigentlich nur kucken, 
dass das Taktsignal das längste aller Signale zum SDRAM ist. Der Rest 
ist mehr oder weniger ziemlich egal.

von Hans W. (Firma: Wilhelm.Consulting) (hans-)


Lesenswert?

W.S. schrieb:
> Ach nochwas: Vor Jahren hat mir ein App-Ing von NXP gesagt: einfach in
> alle Steuerleitungen einen 22..33 Ohm Widerstand einschleifen. Es gibt
> die Dinger ja als Vierfach-Widerstände 'ARCnnn' (Zahl hab ich grad
> vergessen).

Ich würde den bei allen leitungen an der quelle einbauen...

Bei 84MHz ist das noch nicht ganz so kritisch. Ich bin mir aber nicht 
sicher ob du beim Stm32 an den impedanzen vernünftig drehen kannst... so 
20-30Ohm sollten aber zum anpassung gehen.

Ich habe schon ein design am tisch gehabt, das mit ach und krach die emv 
industrie geschafft habt und immer wieder instabil gelaufen ist.

Es stellte sich heraus, dass der prozessor bei seinem interface doch 
nicht sooo toll anpassen konnte wie der FAE behauptet hat. Mit ein paar 
widerständen war dann der haushaltsgrezwert kein problem mehr und 
abstürze gabs auch keine mehr.

Sicher ein extremfall aber um das ging es oben ja ;)

73

von Falk B. (falk)


Lesenswert?

Mampf F. schrieb:
> Der Rest
> ist mehr oder weniger ziemlich egal.

Das ist mal wieder das andere Extrem und wenn man es wörtlich nimmt 
vollkommen falsch!

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Falk B. schrieb:
> Mampf F. schrieb:
>> Der Rest
>> ist mehr oder weniger ziemlich egal.
>
> Das ist mal wieder das andere Extrem und wenn man es wörtlich nimmt
> vollkommen falsch!

Hmm ja zugegeben, hast du da recht :)

Ich meinte damit eher dann: Kurze, direkte Leitungen mit möglichst 
keinen Durchkontaktierungen - aber ohne Length- oder Impedanzmatching. 
Nur den Clock länger als die anderen Signale lassen und direkt am 
Ausgang des µCs einen 22R-Widerstand in Reihe bauen :)

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.