SDRAM-Abschlusswiderstände: Werden sie benötigt?

Für ein Projekt, das ich entwerfe, verwende ich ein IS42s32800 (TSOP) SDRAM mit einem LPC1788 (QFP) Mikrocontroller. Auf der Leiterplatte habe ich 4 Schichten mit einer Masseebene direkt unter der oberen Signalschicht und einer VDD-Ebene direkt über der unteren Signalschicht. Die durchschnittlichen Leiterbahnen zwischen der CPU und dem RAM sind 60 mm lang, wobei die längste Leiterbahn 97 mm lang ist, die Taktleitung 53 mm lang ist und auf keiner Leitung Abschlusswiderstände montiert sind. Was mich interessiert, ist, ob es absolut notwendig ist, Abschlusswiderstände auf DRAM-Leitungen zu haben oder nicht. Würde dieses Design ohne sie funktionieren oder sollte ich es nicht einmal ohne die Widerstände versuchen?

Was sagt das Datenblatt?

Antworten (2)

Wenn die Frequenz/Anstiegszeit und der Abstand hoch genug sind, um Probleme zu verursachen, dann benötigen Sie eine Terminierung.

Übertragungsleitungsmodell

Bei einer längsten Leiterbahn von 97 mm werden Sie wahrscheinlich ohne sie davonkommen (anhand der Ergebnisse der Berechnungen unten). Wenn Sie ein PCB-Paket haben, das IBIS-Modelle und Simulationen auf Platinenebene verarbeitet (z Sie benötigen sie aus den Ergebnissen.

Wenn Sie diese Funktion nicht zur Verfügung haben, können Sie mit SPICE einige grobe Berechnungen durchführen.
Ich hatte ein kleines Durcheinander mit LTSpice , hier sind die Ergebnisse (fühlen Sie sich frei, Dinge zu korrigieren, wenn jemand einen Fehler sieht)

Wenn wir annehmen:

  • Die Anstiegszeit Ihres RAM-Eingangssignals beträgt etwa 2 ns
  • PCB ist FR4 mit einem Er oder ~4,1
  • Die Kupferdicke der Leiterplatte beträgt 1 Unze = 0,035 mm
  • Spurhöhe über Grundebene = 0,8 mm
  • Leiterbahnbreite = 0,2 mm
  • Spurlänge = 97 mm
  • Der RAM-Dateneingang beträgt 10 kΩ parallel zu 5 pF (Kapazität aus Datenblatt, Widerstand für einen typischen LVTTL-Eingang ausgewählt, da nichts angegeben ist - das Datenblatt ist ziemlich schlecht, zum Beispiel wird der Leckstrom auf S. 21 mit 10 A angegeben!?)
  • Die Treiberimpedanz beträgt 100 Ω (entnommen aus den hohen/niedrigen Ausgangswerten und dem Strom des Datenblatts -> Vh = Vdd - 0,4 bei 4 mA, also 0,4 V / 4 mA = 100 Ω)

Wenn Sie wCalc (ein Übertragungsleitungsrechner-Tool) verwenden , das auf den Mikrostreifenmodus eingestellt ist, und die Zahlen eingeben, erhalten wir:

  • Zo = 177,6 Ω
  • L = 642,9 pH/mm
  • C = 0,0465 pF/mm
  • R = 34,46 mΩ/mm
  • Verzögerung = 530,4 ps

Wenn wir nun diese Werte mit dem verlustbehafteten Übertragungsleitungselement in LTSpice eingeben und simulieren, erhalten wir:

Stripline

Hier ist die Simulation der obigen Schaltung:

Streifenleitung Sim Zdrv = 100 Ohm

Aus diesem Ergebnis können wir ersehen, dass wir bei einer Ausgangsimpedanz von 100 Ω keine Probleme erwarten sollten.

Nur aus Interesse, sagen wir, wir hätten einen Treiber mit einer Ausgangsimpedanz von 20 Ω, das Ergebnis wäre ganz anders (selbst bei 50 Ω gibt es eine Über-/Unterschwingung von 0,7 V. Beachten Sie, dass dies teilweise auf die Eingangskapazität von 5 pF zurückzuführen ist, die ein Klingeln verursacht. Das Überschwingen bei 2 ns wäre ohne Kapazität geringer [~ 3,7 V], also wie Kortuk darauf hinweist, überprüfen Sie auch konzentrierte Parameter, auch wenn Sie nicht als TLine behandelt werden - siehe Ende):

Streifenleitung Sim Zdrv = 20 Ohm

Eine Faustregel lautet: Wenn die Verzögerungszeit (Zeit für die Signalübertragung vom Treiber zum Eingang) mehr als 1/6 der Anstiegszeit beträgt, müssen wir die Spur als Übertragungsleitung behandeln (beachten Sie, dass einige sagen 1/8, andere sagen wir 1/10, was konservativer ist) Mit einer Verzögerung von 0,525 ns und einer Anstiegszeit von 2 ns, was 2 / 0,525 = 3,8 (<6) ergibt, müssen wir es als TLine behandeln. Wenn wir die Anstiegszeit auf 4 ns erhöhen -> 4 / 0,525 = 7,61 und dieselbe 20-Ω-Simulation erneut durchführen, erhalten wir:

Streifenleitung Zdrv = 20 Ohm Tr = 4 ns

Wir können sehen, dass das Klingeln viel geringer ist, also müssen wahrscheinlich keine Maßnahmen ergriffen werden.

Um die Frage zu beantworten, vorausgesetzt, ich bin mit den Parametern in der Nähe, dann ist es unwahrscheinlich, dass Sie Probleme haben, wenn Sie sie weglassen - zumal ich eine Anstiegs- / Abfallzeit von 2 ns gewählt habe, die schneller ist als das LPC1788-Datenblatt (S. 88 Tr min = 3 ns, Tfall min = 2,5 ns)
Um sicher zu gehen, würde es wahrscheinlich nicht schaden, einen 50-Ω-Vorwiderstand an jeder Leitung anzubringen.

Lumped-Component-Modell

Wie oben erwähnt, können wir, selbst wenn die Leitung keine Übertragungsleitung ist, immer noch ein Klingeln haben, das durch die konzentrierten Parameter verursacht wird. Die Spur L und der Empfänger C können viel Klingeln verursachen, wenn das Q hoch genug ist.
Als Faustregel gilt, dass als Reaktion auf eine perfekte Schritteingabe ein Q von 0,5 oder weniger nicht klingelt, ein Q von 1 16 % Überschwingen und ein Q von 2 44 % Überschwingen hat.
In der Praxis ist kein Schritteingang perfekt, aber wenn der Signalschritt eine signifikante Energie über der LC-Resonanzfrequenz hat, wird es zu einem Nachschwingen kommen.

Wenn wir also für unser Beispiel mit einer Treiberimpedanz von 20 Ω die Leitung einfach als konzentrierten Schaltkreis behandeln, ist Q:

Q = L C R S = 62.36 N H 9.511 P F 20 Ω = 4.05

(Kapazität ist 5 pF Eingangskapazität + Leitungskapazität - Leitungswiderstand wird ignoriert)

Die Antwort auf eine perfekte Schritteingabe wird sein:

v Ö v e R S H Ö Ö T = 3.3 v e π ( 4 Q 2 ) 1 = 2.23 v

Die Überschwingspitze im ungünstigsten Fall beträgt also 3,3 V + 2,23 V = ~ 5,5 V

Für eine Anstiegszeit von 2 ns müssen wir aufgrund der Anstiegszeit die LC-Resonanzfrequenz und darüber die spektrale Energie berechnen:

Ruffrequenz = 1 / (2PI * sqrt(LC)) = 1 / (2PI * sqrt(62,36nH * 9,511pF)) = 206MHz

Ruffrequenz = 1 2 π L C = 1 2 π 62.36 N H 9.511 P F = 206MHz

Eine Anstiegszeit von 2 ns hat eine signifikante Energie unterhalb der (Faustregel) "Knie" -Frequenz, die lautet:

0,5 / Tr = 0,5 / 2 ns = 250 MHz, was über der oben berechneten Ruffrequenz liegt.

Bei einer Kniefrequenz, die genau der Klingelfrequenz entspricht, beträgt das Überschwingen etwa die Hälfte der perfekten Schritteingabe. Bei einer ~1,2-fachen Kniefrequenz sehen wir also wahrscheinlich etwa 0,7 der perfekten Schrittantwort:

Also 0,7 * 2,23 V = ~1,6 V

Geschätzte Überschwingspitze mit 2 ns Anstiegszeit = 3,3 V + 1,6 V = 4,9 V

Die Lösung besteht darin, Q auf 0,5 zu reduzieren, was a entspricht L C 0,5 = 162 Ω Widerstand (160 Ω reichen).
Mit dem 100-Ω-Treiberwiderstand von oben würde dies einen 60-Ω-Vorwiderstand bedeuten (daher würde das „Hinzufügen eines 50-Ω-Vorwiderstands nicht schaden“ oben)

Simulationen:

Zusammengewürfelt

Perfekte Schrittsimulation:

Lumped Step Response

2 ns Anstiegszeitsimulation:

Klumpte Anstiegszeit von 2 ns

Lösung (mit 100 Ω Rdrv + 60 Ω Vorwiderstand = 160 Ω insgesamt R1 hinzugefügt):

Geklumpte kritisch gedämpfte Lösung

Wir können sehen, dass das Hinzufügen des 160-Ω-Widerstands die erwartete kritisch gedämpfte Reaktion bei 0 V Überschwingen erzeugt.

Die obigen Berechnungen basieren auf Faustregeln und sind nicht ganz genau, sollten aber in den meisten Fällen nahe genug kommen. Das ausgezeichnete Buch „High Speed ​​Digital Design“ von Jonhson und Graham ist eine ausgezeichnete Referenz für diese Art von Berechnungen und vieles mehr (lesen Sie das NEWCO-Beispielkapitel für ähnlich wie oben, aber besser – vieles davon basierte auf Erkenntnissen daraus Buch)

@OliGlaser, messen wir in der realen Welt im Allgemeinen L und C eines Mikrostreifens (für ein konzentriertes System) oder berechnen wir es einfach, um eine fundierte Vermutung für einen Widerstand für ein Q von 0,5 zu erhalten, und passen diesen Wert dann empirisch an ?
Ich würde sagen, es hängt von Ihrem Projekt und Ihren Tools ab. Wenn Sie High-End-PCB-Tools verwenden, werden diese Dinge und mehr automatisch für Sie erledigt, wenn Sie die richtigen Einschränkungen angeben. Wenn Sie keine teuren Tools verwenden, lohnt es sich auf jeden Fall, zumindest die anfänglichen Schätzungen durchzuführen, um abzuwägen, ob Sie auf Probleme stoßen könnten - es dauert nicht lange und kann möglicherweise später viele Probleme vermeiden. Wenn Sie sich nicht sicher sind, können Sie jederzeit Pads hinzufügen, damit bei Bedarf ein Abschlusswiderstand angebracht werden kann (verschiedene Werte können ausprobiert werden - empirisch ist in Ordnung, wenn es funktioniert).
Beachten Sie auch, dass Sie das Q nicht auf 0,5 genau haben müssen, darunter ist es auch in Ordnung (es ist darüber, wo das Klingeln beginnt - unterdämpft). 0,5 ist nur der optimale Wert (kritisch gedämpft) für die schnellste Anstiegszeit ohne Überschwingen. Wenn Sie R (überdämpft) erhöhen, verlangsamt sich die Anstiegszeit und wird schließlich zu einem Problem, aber Sie haben normalerweise einen gewissen Spielraum.

Altera empfiehlt ihre Verwendung mit einigen Arten von SDRAM in diesem Dokument, sagt aber, dass sie vermieden werden können, indem interne Terminierung für das FPGA und SDRAM verwendet wird, falls dies angeboten wird. Keine der FPGA-Karten, die ich mit SDRAM habe, hat eine externe Terminierung an den Anschlüssen, und die Geräte haben keine interne Terminierung. Es sieht so aus, als ob sie idealerweise verwendet werden sollten, aber in der Praxis werden sie oft weggelassen. Du solltest davonkommen.

Ich auch nicht - aber der Hersteller meines Entwicklungsboards hat sie verwendet, also dachte ich, ich sollte es auch tun
@ user9663 Wenn Sie Emissionstests durchführen, denke ich, dass die Abschlusswiderstände eine gute Idee sind, um ein Klingeln zu verhindern. Um ehrlich zu sein, habe ich sehr wenig Erfahrung mit SDRAM.