Hallo,
Ich bastel gerade an einem kleinen Prozessorboard mit einem TI
OMAP-Prozessor. Die haben inzwischen alle ein mDDR/DDR2 Memory
Interface. Ich brauche nur 128Mb, d.h. ein einzelner DDR SDRAM IC ist
mir genug, auch reicht mir eine Speichertaktrate von 133Mhz (PC266).
Am liebsten würde ich jetzt einfach einen mDDR-Baustein nehmen, z.B.
MT46H64M16LF. Das hätte die Vorteile einer kleineren CAS-Latency (2.0,
2.5 oder 3.0), gegenüber CAS-Latency von 4.0 + Additional Latency (AL)
bei DDR2.
Allerdings habe ich Sorgen bezüglich der Terminierung. Theoretisch
müssen die SSTL-2 (DDR) und SSTL-18 (DDR2) Pins immer auf Vtt gezogen
werden. Das kostet eine Menge Saft (mehrere mW pro Pin), Platz auf dem
PCB, und macht das Routing aufwändiger. DDR2 hat nun On-Die-Terminierung
(ODT) und würde mir die zusätzlichen Widerstände ersparen, ausserdem
könnte man ODT abschalten, oder zumindest per Software den
Terminierungswiderstand erhöhen.
Jetzt lese ich in einer Application Note von TI zum DaVinci (der
vermutlich das exakt gleiche Interface wie der Omap hat), dass parallele
Terminierung in dieser Applikation (diskrete Chips, keine DIMMs) sogar
"permitted", also verboten ist. Die Signalqualität wäre auch so gut
genug:
http://focus.ti.com/lit/an/spraal6a/spraal6a.pdf
In diesem Fall würde ich zu dem günstigeren und weniger komplizierten
mDDR tendieren.
Gibt es hier im Board vielleicht DDR-SD-RAM- oder
Terminierungs-Experten, die mir bei der Entscheidung weiterhelfen
können? Hat vielleicht jemand noch gute Dokumentation? Ich hab weit und
breit insbesondere zu mDDR SD-RAM keine PCB Design Guides oder Reference
Designs gefunden.
Rasfunk wrote:
> Jetzt lese ich in einer Application Note von TI zum DaVinci (der> vermutlich das exakt gleiche Interface wie der Omap hat), dass parallele> Terminierung in dieser Applikation (diskrete Chips, keine DIMMs) sogar> "permitted", also verboten ist. Die Signalqualität wäre auch so gut> genug:
Ich habe zwar keine Ahnung zu deiner Frage, aber "permitted" heißt so
ungefähr das Gegenteil von verboten, nämlich zulässig.
Matthias
Argh, kleiner Faux pas. Im Detail steht dort:
"No terminations of any kind are required in order to meet signal
integrity and overshoot requirements. Serial terminators are permitted,
if desired, to reduce EMI risk; however, serial terminations are the
only type permitted."
Insofern bleibt das Grundproblem bestehen.
Ich hab inzwischen ein Freescale Ref-Design für den i-MX31 gefunden, für
das Schematics verfügbar sind, und das diskrete mobile DDR Bausteine
verwendet (Anmerkung: Beagle etc. verwenden ja alle den Micron
Package-On-Package Chip mit NAND und DDR-SDRAM).
Erkenntnis: Da werden die DQs mit 10R seriell am DDR-IC terminiert. Die
clock noch parallel zwischen CK und CK# mit 120R. Sonst nix.
Freue mich trotzdem noch über weitere Erfahrung, Tipps und Hinweise, da
die ganze Geschichte kniffelig ist und ich nicht allzuviele PCBs in die
Tonne kloppen will ;-)
Dieses genannte Papier ist für die LowPower-SDRAMs geschrieben - es gibt
von Micron auch noch weiter (TN4614, TN4606, TN4611 u.a.). Siehe:
http://www.micron.com/support/part_info/all_technotes
Zu deinem Terminierungsproblem bei 133 MHz mein Minimalansatz:
- differentielle Clk mit 100 Ohm zwischen CLK und nCLK am RAM. Saubere
Flanken am Takt sind essentiell.
- Adressen, Control: nichts, bestenfalls Serienwiderstand 33 Ohm an der
Quelle
- Daten: nichts, bestenfalls Serienwiderstand 33 Ohm in der Mitte
Idealerweise sollten auch die Leiterbahnen z.b. 50 Ohm Impedanz haben -
die wiederum abhängig ist von der Breite, dem Abstand zur nächsten
Masselage sowie dem Platinenmaterial. Das ist aber trotzdem nicht
kritisch, auch wenn die Quellimpedanz (33 Ohm + Innenwiderstand der
Signalquelle) um 10% oder 20% neben der Leitungsimpedanz liegen, so ist
das immer noch viel besser als ohne den zusätzlichen Serienwiderstand.
Schlechte Terminierung hat Auswirkungen auf die Flankenform - deshalb
wichtig beim Takt. Daten und Adressen werden aber in der Mitte
abgetastet und hatten schon eine gewisse Zeit zur Beruhigung.
Das wird deshalb gehen, weil du nur mit einem Baustein arbeiten willst
und vermutlich die Leitungslängen entsprechend kurz sein werden.
Die üblichen Terminierungsvorschläge mit einer aktiven Quelle mit Vtt
(die übrigens Source- und Sinkbetrieb können muss) kommen aus der
PC-Technik, wo mehrere Module (die jeweils auch mehrere Chips
beinhalten) in recht großzügiger Entfernung vom Prozessor platziert
sind. Da ist die aktive Terminierung dann auch nötig und es gibt
spezielle Spannungsregler für diesen Zweck.
Eigentlich wollte ich nur auf die weiteren, interessanten Micron-Papiere
verweisen ...
...die ganze Diskussion um die Terminierung hat natürlich nur dann Sinn,
wenn es sich um Leitungslängen handelt, die über ca. 1/10 der
Wellenlänge der auftretenden Frequenzen sind (wobei hier nicht die
Wiederholfrequenz der Signale, sondern die durch die Flankensteilheit in
der Fourriertransformation sich ergebenden zählen!). Bleibt man unter
ca. 5cm, so kann man auf die Terminierung auch verzichten, was bei der
Anzahl von Leitungen zwischen OMAP und mRAM eine Menge Bauteile einspart
und Übersichtlichkeit bringt.
Man muss die Signale des RAM-Interfaces in 3 Gruppen einteilen und die
Leitungen innerhalb dieser Gruppen gleich lang halten (siehe Bild):
Steuersignale incl. Clock, D0-15 und D16-31. Die erste Gruppe muss
gleichzeitig mit CLK am mRAM ankommen und für die beiden anderen Gruppen
kann man im OMAP den Abtastpunkt getrennt festlegen.
Mit 100µ Leiterbahnen und Laser-Vias zwischen den jeweiligen Außenlagen
(1/2 und 5/6) kommt man mit insgesamt 6 Lagen aus und spart gegenüber 8
oder mehr Lagen noch etwas.