Moin Moin, ich möchte an einen µC mit integriertem SD-RAM Controller auch SDRAM verwenden, da es ja deutlich günstiger ist als SRAM in gleicher größe. Jetzt hab ich ab und an gelesen, das man für SD-RAM unbedingt 4-Lagen braucht. Ist es möglich SD-RAM auch auf einem 2-Lagen Bord ordentlich zum laufen zu bekommen (100MHz) ? Hab bislang nur 2 Lagen geroutet. Board-Größe spielt eine untergeordnete Rolle, ist also genug Platz vorhanden auch für große Masseflächen. Analogteil braucht keine große Genauigkeit (ein ADC mit 8Bit Auflösung). Sonst ist nur ein SPI-Bus vorhanden (MMC), zweiter µC Grüße Jörg
hi, wie kommst du darauf, das man min. 4 lagen braucht. Aus EMC Sicht ist es natürlich besser, aber die Funktion sollte auch auf 2 Lagen gehen. Oder was meinst du?
Ja, ich meine nur die Funktion. Irgendwo habe ich mal gelesen, die Signale würden sonst nicht "sauber" genug sein, wobei viele Bords die ich sehe die kompletten SD-RAM Signale auf einem Layer haben. Leider finde ich die Quelle nicht mehr. EMV ist natürlich ne andere Sache ...
@ Jörg >Ja, ich meine nur die Funktion. Irgendwo habe ich mal gelesen, die >Signale würden sonst nicht "sauber" genug sein, wobei viele Bords die >ich sehe die kompletten SD-RAM Signale auf einem Layer haben. Leider >finde ich die Quelle nicht mehr. Naja, die Leitungen sollten a) entweder recht kurz sein (<10cm) oder b) impedanzrichtig layoutet (50..75 Om) Aber selbst bei 4 Layern werden die Leitungen dann schon recht breit (auf grund des "dicken" Substrats). Mit kuzen Leitungen, bischen Vorsicht beim Layout vom Takt und guter Abblockung sollte man einen SD-RAM auch auf einem Dual-Layer Board gut zum laufen kriegen. MfG Falk
Also die 4 Lagen bringen natürlich nur etwas, wenn du zumindest eine davon als GND Fläche auslegst. 100MHz ist schon recht viel, da wird die Bedeutung des kurzen Stromrückflusses merkbar. Aber musst du das Teil mit 100MHz takten? Kann dein Prozessor oder DSP das überhaupt? Nur weil die SDRAMs 100/133MHz schaffen heißt das noch lange nicht, dass der SDRAM Controller diese Frequenz auch schafft. So übern Daumen würd ich sowieso mal überlegen, ob es ab Taktfrequenzen von 50MHz nicht ohnehin sinnvoller wäre reine GND und VCC Flächen zu verwenden. Die Impedanzen einer Leitung werden ab diesem Frequenzbereich bedeutsam. Aber nichts desto trotz, wirst ein SDRAM auf einem 2 fach Layer sicher zum Laufen bekommen. Wie bereits Dirk angemerkt hat, wären 33 Ohm Serienwiderstände empfehlenswert. Platziere sie am besten direkt beim SDRAM und (!) beim Controller, sofern die Address- und Datenleitungen länger sein sollten. Pufferkapazitäten von 1n, 100n und 10µ sind auch sehr empfehlenswert. 1n und 100n sollten dabei für jeden VCC Pin vorgesehen werden. Halte die Verbindung zwischen GND Pins und GND so kurz wie möglich.
Bei der Anzahl der Laen kann auch eine Rolle spielen, wieviel Platz man für des Layout bzw. die Leiterbahnen hat.
@Thomas P. >Also die 4 Lagen bringen natürlich nur etwas, wenn du zumindest eine >davon als GND Fläche auslegst. 100MHz ist schon recht viel, da wird die >Bedeutung des kurzen Stromrückflusses merkbar. Nennen wir es mal lieber impedanzrichtiges Layout. >Aber musst du das Teil mit 100MHz takten? Kann dein Prozessor oder DSP >das überhaupt? >Nur weil die SDRAMs 100/133MHz schaffen heißt das noch lange nicht, dass >der SDRAM Controller diese Frequenz auch schafft. So übern Daumen würd >ich sowieso mal überlegen, ob es ab Taktfrequenzen von 50MHz nicht >ohnehin sinnvoller wäre reine GND und VCC Flächen zu verwenden. Die >Impedanzen einer Leitung werden ab diesem Frequenzbereich bedeutsam. Es ist egal ob man dn SDRAM/Controller mit 100 oder nur 50 MHz betreibet, die Flanken der Ausgangstreiber sind gleich schnell. Und damit sind die Reflexionen die gleichen. >Aber nichts desto trotz, wirst ein SDRAM auf einem 2 fach Layer sicher >zum Laufen bekommen. Naja, ob ER es schafft steht noch aus. Dass es prinzipiell möglich ist, ist eine andere Frage. >Wie bereits Dirk angemerkt hat, wären 33 Ohm Serienwiderstände >empfehlenswert. Platziere sie am besten direkt beim SDRAM und (!) beim >Controller, sofern die Address- und Datenleitungen länger sein sollten. >Pufferkapazitäten von 1n, 100n und 10µ sind auch sehr empfehlenswert. 1n >und 100n sollten dabei für jeden VCC Pin vorgesehen werden. Halte die >Verbindung zwischen GND Pins und GND so kurz wie möglich. Die 1nF kann er sich schenken. 100nF in 0805 oder 0603 reichen vollkommen. MfG Falk
Ich finde, dass sich die Frage eigentlich nicht stellt. Die wenigen Euros mehr sollte man in den meisten Fällen investieren, und sei es 'nur', um die EMV-Eigenschaften zu verbessern.
@EFA
>Ich finde, dass sich die Frage eigentlich nicht stellt. Die wenigen
Welche Frage?
MfG
Falk
Also die Daten / Adressleitungen zum SD-RAM sind ca. 2cm lang, wenn ich einen Serienwiderstand rein mache, dann werden die natürlich etwas länger. Ist das sinnvoll Serienwiderstände reinzumachen? Im bisherigen Layout habe ich auch darauf geachtet, das ich die Leitungen alle gleich lang halte (das was ich schon angefangen habe). Die SD-RAM Chips können max. 166MHz die wir noch hier haben. Der µC kann bis 100MHz, da er über kein internes Flash bzw. SRAM verfügt, macht es auch sinn den SD-RAM schnell laufen zu lassen, zumal der µC mit ca. 200MHz läuft. Sofern es die Applikation nachher zulässt oder der Kunde, werde ich den Takt natürlich reduzieren können. 2 Layer Platinen können wir selber herstellen (kosten dann rund 15-20€ alles in allem), 4 Layer müssten extern für ca. 90€ hergestellt werden. Ist also schon ein Preisunterschied. In der Serienfertigung nachher nichtmehr .. Da der Prozessor mit Flash/SD-RAM aber sowieso schon rund 80€ kosten, werde ich wohl die "paar" Euro in das Bord investieren und 4 Lagen routen. Selbst wenn es 'nur' die EMV verbessert. Ist ja auch schon einiges Wert. Außerdem wird mein Layout dadurch sogar was einfacher zum routen. An den VCC sind immer 100nF / 1µF, teilweise zusätzlich 10µF laut Datenblätter. Jetzt habe ich aber noch ein paar Fragen... An dem Daten/Adressbus habe ich noch NOR-Flash/NAND-Flash/LCD etc. dran, muss ich diese vom SD-RAM mit Bustreibern abtrennen oder ist das dem SD-RAM egal? Oder vor jeden "Busteilnehmer" Bustreiber verwenden? Wie gesagt, das SD-RAM ist quasi direkt am Prozesor, zum LCD sind es aber schon ein paar cm mehr, gesamt wäre der Datenbus ca. 10cm lang, ebenso der Adressbus. Ich habe bislang noch nichts mit SD-RAM gemacht, weis daher nicht wie empfindlich das reagiert. Bei der CF habe ich schon Bustreiber/Bustrenner drin.. Jetzt noch ne kleine Prinzipfrage .. was ist eigentlich wirklich schneller (Applikation aus dem RAM), externes SRAM (10ns) oder SDRAM (CL2 100MHz, laut Datenblatt 7.5ns), beides 32Bit angebunden. Meine Frage bzgl. den Spannungen im VCC-Layer stelle ich ins Platinenforum, weil es eigentlich da hin gehört... Vielen Dank schonmal! Grüße
Ach und ich hab auf der Suche im Internet noch irgendwas von aktiver Terminierungsbausteinen gelesen, aber nix genaueres dazu (Bauteilbezeichnung und wann die eingesetzt weren)... kann mir da auch einer ein Tipp zu geben?
>@EFA > >>Ich finde, dass sich die Frage eigentlich nicht stellt. Die wenigen > >Welche Frage? Die Frage, ob ein 2-seitiges Design genügt. >2 Layer Platinen können wir selber herstellen (kosten dann rund 15-20€ >alles in allem), 4 Layer müssten extern für ca. 90€ hergestellt werden. >Ist also schon ein Preisunterschied. In der Serienfertigung nachher >nichtmehr .. Da es in der Serienfertigung kaum noch einen Unterschied macht, sind die Kosten für die wenigen Prototypen imho vernachlässigbar.
@EFA >Da es in der Serienfertigung kaum noch einen Unterschied macht, sind die >Kosten für die wenigen Prototypen imho vernachlässigbar. Deshalb habe ich mich ja auch für 4-Lagen entschieden ;)
Bustreiber brauchst nur, wenn der Controller die Kapazität der Leitung und Eingänge nicht treiben kann. Im schlimmsten Fall musst halt mit der Taktfrequenz runter gehen. Ich hab ein Board entwickelt mit ARM9 der am externen Speicherbus 4x SDRAM, 1x NAND, 1x NOR, 1x CPLD und einmal Ethernet treibt. Ganz ohne zusätzliche Treiber, funktioniert tadellos. Aber ich spiel da mit den 12 Lagen in einer ganz anderen Liga... Aber wennst auf Nummer sicher gehen willst, dann verwendest eben Bustreiber. Bei mir sind Signalleitungen schon mal bis 10cm lang, deswegen ist eine Terminierung unerlässlich. Achte darauf, dass die Taktleitungen der SDRAMs alle gleich lang sind, sonst könntest bei längeren Leitungen Laufzeitunterschiede bekommen.
@Jörg >Also die Daten / Adressleitungen zum SD-RAM sind ca. 2cm lang, wenn ich >einen Serienwiderstand rein mache, dann werden die natürlich etwas >länger. >Ist das sinnvoll Serienwiderstände reinzumachen? Im bisherigen Layout Nein! >habe ich auch darauf geachtet, das ich die Leitungen alle gleich lang >halte (das was ich schon angefangen habe). +/- 1cm macht bei den Frequenzen noch nix. GGf kann man sich sogar mehr leisten (für die Adress/Datenleitungen) >2 Layer Platinen können wir selber herstellen (kosten dann rund 15-20€ >alles in allem), 4 Layer müssten extern für ca. 90€ hergestellt werden. >Ist also schon ein Preisunterschied. In der Serienfertigung nachher >nichtmehr .. ???? Und da überlegst du noch? Das würde ich in 4 Lagen machen und gut! Wegen läppischen 70 Euro die in dem Prototypen "gespart" werden könnten lohnt sich der Stress und Risiko nicht! >routen. An den VCC sind immer 100nF / 1µF, teilweise zusätzlich 10µF >laut Datenblätter. Das passt. >Jetzt habe ich aber noch ein paar Fragen... An dem Daten/Adressbus habe >ich noch NOR-Flash/NAND-Flash/LCD etc. dran, muss ich diese vom SD-RAM >mit Bustreibern abtrennen oder ist das dem SD-RAM egal? Oder vor jeden >"Busteilnehmer" Bustreiber verwenden? Wie gesagt, das SD-RAM ist quasi >direkt am Prozesor, zum LCD sind es aber schon ein paar cm mehr, gesamt >wäre der Datenbus ca. 10cm lang, ebenso der Adressbus. Ich habe bislang Naja, das geht gerade noch. Die Address sowie Steuerleitungen sind ja unidirektional, da würde ich ne Serienteminierung auf jeden Fall reinmachen (33 Ohm, dicht am uC). ebenso für den Takt zum SDRAM. >Jetzt noch ne kleine Prinzipfrage .. was ist eigentlich wirklich >schneller (Applikation aus dem RAM), externes SRAM (10ns) oder SDRAM >(CL2 100MHz, laut Datenblatt 7.5ns), beides 32Bit angebunden. Ich würde tippen SRAM mit 10ns. Das sollte sich aber bei etwas Cache auch dem uC nicht wesentlich bemerkbar machen. MfG Falk
> Dass es prinzipiell möglich ist, ist eine andere Frage.
Nö, das ist ein Fakt.
Ich bins nochmal .. Nachdem ich jetzt endgültig mit dem Routen angefangen habe und mir noch ein paar AN zum Thema SD-Ram angeschaut habe, habe ich noch eine Frage... Um die Datenleitungen exakt gleich lang zu halten (innerhalb 0.2mm) müsste ich solche "Zick-Zack" Leitungen einbauen. Ist das OK oder bekomme ich dadurch irgendwelche Probleme? Und nochmal zur Bestätigung: Ich muss die Daten UND Adressleitungen gleich lang halten, den Takt so kurz wie möglich. An die Datenleitungen mache ich ein Serienwiederstand am µC rein (33R) und dann am SD-Ram einen Pull-Up auf 3.3V Vref (laut einer AN). An die Steuer-&Adressleitungen mache ich ebenfalls ein Serienwiederstand rein und eine R-C-Terminierung. Alle weiteren Peripherien schließe ich über Bustreiber an.. Möchte nur sichergehen, das ich das Board nicht gleich in den Müll schmeißen muss wenn es da ist, weil das RAM nicht funktioniert g. Wollte schon auf SRAM umsteigen, aber irgendwann muss man sich ja auch mal weiterbilden und SDRAM nutzen ;) Außerdem ist SRAM zu teuer (brauche min. 32MB).. Nochmal vielen Dank!
Also die Taktleitungen müssen gleich lang sein, nicht Adress- und Datenleitungen. Zickzack ist in Ordnung. Keine Pullups und keine RC Terminierung. Mit den Serienwiderständen hast du bereits ausreichend terminiert. Serienwiderstand direkt beim µC und zusätzlich Serienwiderstände beim SDRAM sofern diese nicht unmittelbar bei einander liegen.
Also müssen nur die Taktleitungen von beiden SD-RAM Chips gleich lang sein? SDCK vom µC zu CLK-SDRAM1 gleich lang SDCK vom µC zu CLK-SDRAM2 Hatte in einer Application Note gelesen (http://www.cirrus.com/en/pubs/appNote/an218rev1.pdf, Seite 4), das D0-D31 möglichst die gleiche Länge haben sollen, ebenfalls A0-Axx. Da war nur die Rede davon, das CLK möglichst kurz sein sollte. Ist es also egal, wenn D0 bsp. 3cm lang ist, D1 4cm und D2 5cm (nur ein Beispiel) ? Nunja, schaden tut es doch sicherlich nicht und platz für so "Zick-Zack" Leitungen hätte ich genug... aber wenn es nicht nötig ist brauche ich mir die Arbeit nicht zu machen ;) Ich verwende einen AT91SAM9260 ARM9. SD-RAM liegt max. 2cm vom µC weg, dann mache ich nur serienwiderstände an den µC und gut ist.
@ Jörg >Also müssen nur die Taktleitungen von beiden SD-RAM Chips gleich lang >sein? JAIN. Bei den beiden Taktleitungen kann man ohne nennenswerten Aufwand das Ganze auf +/-1mm trimmern, aber selbst +/-1cm sollte ohne Probleme laufen. Man sollte sich die Grössenordung mal vor Augen halten Lichtgeschwindigkeit im Vakuum ~ 30cm/ns ---"--- auf FR4 ~15-20cm/ns -> Laufzeit 50-66ps/cm Da brennt bei 133 MHZ SD-RAMs noch nix an. >SDCK vom µC zu CLK-SDRAM1 gleich lang SDCK vom µC zu CLK-SDRAM2 >Hatte in einer Application Note gelesen >(http://www.cirrus.com/en/pubs/appNote/an218rev1.pdf, Seite 4), das >D0-D31 möglichst die gleiche Länge haben sollen, ebenfalls A0-Axx. Da >war nur die Rede davon, das CLK möglichst kurz sein sollte. Ist es also >egal, wenn D0 bsp. 3cm lang ist, D1 4cm und D2 5cm (nur ein Beispiel) ? Das passt schon. Ich sag mal bis 5cm Unterschied macht das gar nichts (=250ps Laufzeitdifferent), mehr geht wahrscheinlich auch noch. >Nunja, schaden tut es doch sicherlich nicht und platz für so "Zick-Zack" >Leitungen hätte ich genug... aber wenn es nicht nötig ist brauche ich >mir die Arbeit nicht zu machen ;) Eben. Mach die Taktleitungen auf +/-1cmgenau und gut ist. >Ich verwende einen AT91SAM9260 ARM9. SD-RAM liegt max. 2cm vom µC weg, >dann mache ich nur serienwiderstände an den µC und gut ist. Yep. MFG Falk
Hi, ich hab mal über google diesen Text gefunden. Ich möchte für ein Projekt für die Hochschule eine Platine mit Eagle erstellen, auf der SD-RAM verbaut werden soll. Ich finde nirgends Maße davon, gibts da schon ne fertige Library? Und worauf muss ich sonst achten? Hab das noch nie gemacht
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.