Forum: Platinen SDRAM Leitungslängen


von Mark B. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

folgende Beiträge habe ich schon  gelesen:

Beitrag "Berechnung der max. Differenz der Leitungslänge"
Beitrag "SDRAM Layout, STM32F7"
Beitrag "Richtiges SDRAM Layout"

Im Anhang ist ein SAME70 Evalboard mit 166MHz SDRAM zu sehen.

Ich bin kein Profi und mache jetzt zum ersten mal ein ähnliches Design. 
Als ich mir die Layouts von verschiedenen Evalboards angeschaut habe 
(166MHz SDRAM) habe ich auch schön fleißig versucht Meander zu legen wie 
auf den Evalboards, bis ich gemerkt habe dass ich ein Platzproblem habe. 
Dann habe ich mal mein Kopf benutzt und bin zu dem selben Ergebnis 
gekommen wie Falk B. in den o.g. Posts.

Die Frage die ich mir dann gestellt habe ist: Wieso geht man denn diesen 
"aufwendigen" Weg, Meander zu Routen, wenn es noch nicht kritisch ist? 
Meine Frage bezieht sich speziell auf die Designer der Evalboards mit 
"langsamen" SDRAM.

Grüße
Mark B.

von Falk B. (falk)


Lesenswert?

Mark B. schrieb:
> Die Frage die ich mir dann gestellt habe ist: Wieso geht man denn diesen
> "aufwendigen" Weg, Meander zu Routen, wenn es noch nicht kritisch ist?

Weil es hipp ist, cool aussieht, das CAD-Tool es kann und man auch wenn 
es Probleme gibt immer sagen kann, man hat sich an die heiligen Vorgaben 
gehalten.

von René F. (Gast)


Lesenswert?

Mark B. schrieb:
> Die Frage die ich mir dann gestellt habe ist: Wieso geht man denn diesen
> "aufwendigen" Weg, Meander zu Routen, wenn es noch nicht kritisch ist?
> Meine Frage bezieht sich speziell auf die Designer der Evalboards mit
> "langsamen" SDRAM.

So geht man eben auf Nummer sicher und kann später das Layout 
ausschließen.

von Mark B. (Gast)


Lesenswert?

Das war eben tatsächlich auch meine Schlussfolgerung. Wenn es fähige 
Designer sind, dann kann es ja eigentlich auch nur dieser Grund sein, 
sich unangreifbar machen.
Besten Dank.

VG,
Mark B.

von Gustl B. (-gb-)


Lesenswert?

Mark B. schrieb:
> sich unangreifbar machen.

Ich glaube er meinte mit

René F. schrieb:
> kann später das Layout
> ausschließen.

etwas anderes. Und zwar wenn du eine Schaltung entwirfst, dann gibt es 
sehr viele Fehlerquellen. Wenn du alles auf Kante nähst dass es gerade 
so funktionieren müsste, was machst du dann wenn es nicht funktioniert? 
Dann hast du ganz viele mögliche Fehlerquellen die du alle einzeln 
überprüfen müsstest was dann aber kaum geht weil die ja zusammenspielen.
Wenn du aber z. B. beim Layout lieber auf Nummer sicher gehst und dann 
die Schaltung funktioniert, dann hast du schon einen Punkt den du als 
Fehlerquelle ausschließen kannst. Das macht das Debugging einfacher.

Ich habe das auch nicht einsehen wollen. Vor allem weiß man als Laie 
nicht wo die Grenze ist und kann das nicht einschätzen. Bin ich jetzt an 
der Kante und es funktioniert nur noch mir viel Glück oder habe ich das 
schon overdesignt? Das ist auch nicht einfach weil man mit mehr 
Optimierung eigentlich immer zusätzliche Sicherheit bekommen kann, wo 
soll man die Optimiererei also beenden und zufrieden sein?
Und da kommt Erfahrung ins Spiel. Allerdings kostet das Zeit und Geld. 
Das kannst du aber vielleicht teilweise sparen wenn du dir anguckst was 
Andere gebaut haben und was auch funktioniert.

Z. B. hier:
https://sigrok.org/wiki/Sysclk_LWLA1034

Da ist SRAM drauf und wird wohl mit 133 MHz betrieben. Und ja, der SRAM 
IC ist zwischen FPGA und USB Buchse, also genau dort wo man den USB IC 
vermuten würde. Aber den USB IC hat man auf dem Bild 
https://sigrok.org/wimg/2/2b/Sysclk_lwla1034_pcb_top2.jpg über das FPGA 
gesetzt und zieht das USB2 einmal quer über die Platine auf der 
Rückseite https://sigrok.org/wimg/9/90/Sysclk_lwla1034_pcb_bottom2.jpg .
Funktioniert das fehlerfei? Mit den so unterschiedlich langen Leitungen 
am SRAM? Klar! Ich habe das Teil hier und war erstmal erschüttert als 
ich es geöffnet hatte. Aber wenn man überlegt, das sind vielleicht 5 cm 
Längenunterschied maximal. 30 cm entsprechen 1 ns. Also reden wir von < 
200 ps Laufzeitunterschied. Und das bei einer Periodendauer von 7,5 ns. 
Das ist also in der Tat völlig egal. Schön ist das natürlich nicht und 
wenn man Zeit hat dann kann man das besser machen.

Hier ist 133 MHz DRAM ohne Längenausgleich:
https://sigrok.org/wiki/ASIX_OMEGA

von Falk B. (falk)


Lesenswert?

Gustl B. schrieb:
> Und das bei einer Periodendauer von 7,5 ns.
> Das ist also in der Tat völlig egal. Schön ist das natürlich nicht

Dieses "Schönheitsempfinden" geht eher in Richtung Pedanterie und 
Overegineering!

"So einfache wie möglich, so genau wie nötig!"

Das ist einer der Grundsätze der Ingenieurskunst!

> wenn man Zeit hat dann kann man das besser machen.

Warum? Um dein Ego zu füttern?

von C. A. Rotwang (Gast)


Lesenswert?

Mark B. schrieb:

> Die Frage die ich mir dann gestellt habe ist: Wieso geht man denn diesen
> "aufwendigen" Weg, Meander zu Routen, wenn es noch nicht kritisch ist?

Auf welche Analysen stützt sich deine Aussage das es nicht kritisch 
wäre?

Genau, auf garkeine oder eine sehr oberflächliche (im wahrsten Sinne des 
Wortes).

Der Skew wird nur zu einem Teil durch die Tracklänge bestimmt, ebenfalls 
und einen nicht zu geringen Einfluß hat die Homogenität der 
HF-Eigenschaften (Dielektrizität) des Prepregs und Interne des 
ansteuernden Schaltkreis. Man kann nicht immer davon ausgehen das der 
Speicher von einem modernen FPGA getrieben wird, bei dem man das timing 
in subnano-bereich feinjustieren kann.

Noch komplexer wird es bei gesockelten Speicher, etwas was beim 
SDRAM-Einsatz im PC in den Anfangszeiten üblich war.

Und im Unterschied zu beispielsweise CRC abgesicherten 
Kommunikationskanälen, will man bei SDRAM als Programmspeicher keine 
Bitfälscher, weil die ggf. das System böse crashen lassen. Du willst 
doch nicht das dir der Augenlaser statt einer Sehschärfenkorrektur den 
String "Exception fault" auf die Hornhaut nagelt ;-)

Und dann kommt die Frage nach den möglichen Kosten und Zeitaufwand für 
einen PCB-Respin. Also wenn die Annahme über ist nicht kritisch zu 
leichtsinnig war und der Speicher läuft nicht sabil, dann muss ein neues 
PCB gemacht werden, auf das man 4 Wochen warten darf ...

Da ein ausführliches Beispiel für die Berechnung/Analyse des 
skew-budgets:
https://www.nxp.com/docs/en/application-note/AN1722.pdf

Auf die dort gezeigte Weise schätzt man das Risiko mit Kopf ab, und 
nicht nach Pi*Daumen/Fensterkreuz.

von Gustl B. (-gb-)


Lesenswert?

Falk B. schrieb:
> "So einfache wie möglich, so genau wie nötig!"

Vollkommen richtig. Das bedeutet aber nicht, dass man es so baut, dass 
es gerade so funktioniert, sondern so, dass es zuverlässig funktioniert.
Dieser kleine Unterschied ist für einen Laien wie mich aber sehr 
schwierig weil die Grenzen unbekannt sind.

: Bearbeitet durch User
von Michael K. (mab)


Lesenswert?

Gustl B. schrieb:
> 30 cm entsprechen 1 ns.

Sind das nicht eher IL 140mm bzw AL 165mm /ns?!

Gruß

von Michael K. (mab)


Lesenswert?

C. A. Rotwang schrieb:
> Noch komplexer wird es bei gesockelten Speicher, etwas was beim
> SDRAM-Einsatz im PC in den Anfangszeiten üblich war.

Was ist denn gesockelter SDRAM. Gibt oder gab es diesen überhaupt? Also 
in der Bauform DIP/DIL? Evtl. PLCC oder ähnlich?
Ausser Du meinst SDRAM auf einer Modulplatine die wiederum in einen 
Modulsockel kommt, das war aber nicht in den Anfangszeiten.

Gruß

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Michael K. schrieb:
> Was ist denn gesockelter SDRAM. Gibt oder gab es diesen überhaupt? Also
> in der Bauform DIP/DIL? Evtl. PLCC oder ähnlich?

Ein DIMM, wie er millardenfach benutzt wird.

https://www.elektronik-kompendium.de/sites/com/1409031.htm

von Michael K. (mab)


Lesenswert?

Falk B. schrieb:
> Ein DIMM, wie er millardenfach benutzt wird.


Wie ich es schon schrieb:
Michael K. schrieb:
> Ausser Du meinst SDRAM auf einer Modulplatine die wiederum in einen
> Modulsockel kommt, das war aber nicht in den Anfangszeiten.

Und ob millardenfach in Zusammhang mit SDRam Modulen zutreffend ist, nun 
ja....
Und PC Anfangszeit müsste man auch mal definieren.

Gruß

von Michael K. (mab)


Lesenswert?

Mark B. schrieb:
> Die Frage die ich mir dann gestellt habe ist: Wieso geht man denn diesen
> "aufwendigen" Weg, Meander zu Routen, wenn es noch nicht kritisch ist?
> Meine Frage bezieht sich speziell auf die Designer der Evalboards mit
> "langsamen" SDRAM.

Ist denn dieser Weg überhaupt so aufwendig?

Weg 1: Längenausgleich mittels Meander.
Vorteil: Man verbessert insgesamt das Verhalten und die Zuverlässigkeit 
der Baugruppe. Oder anders: Man erhöht die Toleranz gg. Abweichungen 
aller Art.
Nachteil: Der Einstiegslevel liegt halt höher und das richtige Werkzeug 
ist auch teurer.

Weg 2: Längenausgleich einfach ignorieren.
Vorteil: Weniger Einlernzeit, billigere SW, evtl. günstigere LP.
Nachteil: Weniger Toleranz gg. andere Fehler, evtl. Fehlfunktion und 
Unsicherheit ob man es nicht doch zu locker gesehen hat.


Aus meiner Sicht ist Weg 1 letztendlich leichter. Die Anfangsinvestition 
ist natürlich höher, aber auf Dauer bekommt man dies gutverzinst zurück.

Gruß

von georg (Gast)


Lesenswert?

Michael K. schrieb:
> Man erhöht die Toleranz gg. Abweichungen
> aller Art.

Es ist auch eine schlechte Idee, das Gesamtbudget an erlaubten 
Toleranzen schon an einem einzigen Punkt aus reiner Faulheit 
aufzubrauchen.

Michael K. schrieb:
> Längenausgleich einfach ignorieren.

Das ist die Methode Falk. Alles was mehr als 50 Hz benötigt ist nicht 
nur Voodoo, sondern es braucht auch kein Mensch. Die Designer von 
Motherboards oder Handyplatinen haben alle keine Ahnung, jedenfalls 
nicht so viel wie Falk.

Georg

von Kurator (Gast)


Lesenswert?

Michael K. schrieb:
> Und PC Anfangszeit müsste man auch mal definieren.

Nein, da muss man nachlesen -> 20. August 1981

https://de.wikipedia.org/wiki/IBM_Personal_Computer

Da ein Blick aufs motherboard:

https://en.wikipedia.org/wiki/IBM_Personal_Computer#/media/File:IBM_PC_Motherboard_(1981).jpg

 wobei dessen RAM wahrscheinlich noch DRAM statt SDRAM ist. SDRAM wurde 
ca. 1992 eingeführt, da hatte man PC, XT und AT hinter sich und war 
schon im 32 bit Zeitalter angekommen.

von Michael K. (mab)


Lesenswert?

Kurator schrieb:
> wobei dessen RAM wahrscheinlich noch DRAM statt SDRAM ist. SDRAM wurde
> ca. 1992 eingeführt, da hatte man PC, XT und AT hinter sich und war
> schon im 32 bit Zeitalter angekommen.

Nicht wahrscheilich sondern mit Sicherheit DRAM.
SDRam kam auf mit dem Pentium 1. 486er mit SDRam sind mir nicht bekannt.

Gruß

von Falk B. (falk)


Lesenswert?

georg schrieb:
>> Längenausgleich einfach ignorieren.
>
> Das ist die Methode Falk. Alles was mehr als 50 Hz benötigt ist nicht
> nur Voodoo, sondern es braucht auch kein Mensch. Die Designer von
> Motherboards oder Handyplatinen haben alle keine Ahnung, jedenfalls
> nicht so viel wie Falk.

Das mit dem sinnerfassenden Lesen musst du noch mal üben.

"Du schaffst das!" (tm)

Ich habe mich mit keiner Silbe GEGEN einen Längenausgleich 
ausgesprochen, wohl aber immer wieder ein relistisches Augenmaß dabei 
eingefordert. Denn der Längenausgleich ist ein ähnlicher Fetisch wie 
eine Massefläche, wo jeder Hobbybastler mit drei LEDs meint, ohne diese 
keine brauchbare Platine hinzukriegen. Ebenso ist Längenausgleich kein 
Wundermittel und Selbstläufer, man kann da auch einiges vermurksen, vor 
allem wenn man krampfhaft auf sub-Millimeter die Längen ausgleichen 
will. Alles schon erlebt.

von georg (Gast)


Lesenswert?

Falk B. schrieb:
> Das mit dem sinnerfassenden Lesen musst du noch mal üben

Du kannst ja nicht mal die Überschrift erfassen, da ist von SDRAM die 
Rede und nicht von 3 LEDs.

Die Dinosaurier haben sicher auch auf den Meteoriten geschaut und gesagt 
"das kann nicht sein, das hats früher nie gegeben - das ignorieren wir 
einfach".

Natürlich kann man Elektronik im Stil der 60er Jahre konstruieren, 
allerdings wahrscheinlich keine SDRAM-Platine. Suum cuique.

Georg

von Mark B. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,



wie ich sehe habe ich wohl eine kleine Diskussion entfacht. Es sind aber 
leider Antworten dabei, die gefühlt überhaupt nichts mit meiner Frage zu 
tun haben: 1981, 1992, Pentium 1...



Michael K. schrieb:

> Nachteil: Der Einstiegslevel liegt halt höher und das richtige Werkzeug

> ist auch teurer.



Naja, ich nutze Kicad und die Meanderfunktion macht einen guten Eindruck 
und lässt sich auch einfach bedienen. Das klingt jetzt etwas 
widersprüchlich, wo ich doch das Wort "aufwendig" benutzt habe. Ich 
scheue den Aufwand auch nicht. Ich hinterfrage nur und möchte dazu 
lernen.





Da ich bei meinen Prototypen gerne auch mal meinen Kopf benutze und 
nicht einfach irgendwelche Evalboarddesigns übernehmen möchte, wollte 
ich mir das nochmal genauer anschauen. (Ja richtig, auch wenn das für 
Einige klar ist). Was die ganze Timingausrechnerei angeht habe ich noch 
nicht die nötige Praxiserfahrung. Das wollte ich jetzt mal ändern und 
habe angefangen mir für die Zukunft eine kleine Exceltabelle zu 
erstellen, u.a. mit Hilfe diesen Beitrags (ich weiß es gibt echt gute 
Leute unter euch, die das mal eben im Kopf ausrechnen und diesen 
Excelkram nicht brauchen):



https://www.mikrocontroller.net/articles/SDRAM-Timing



Da kommt mir etwas komisch vor, siehe Bild im Anhang. Kann das mal bitte 
jemand prüfen?
Warum spielt denn bei dem Schreibzugriff die Ausgabezeit des SDRAM eine 
Rolle?





Jedenfalls - Beim genauen Lesen der Datenblätter stößt man dann 
plötzlich auf Data-input-setup-Zeiten von 8ns. Da frage ich mich wie 
kann das sein. Ein ach so toller 600MHz Mikrocontroller (RT1064) und ein 
166MHz SDRAM (IS42S16160J-6BLI). Man könnte aber auch 0.6ns haben wenn 
man den uC mit einem Strobe-Signal speisen würde. Und ausgerechnet 
dieser Pin des uCs wird auf dem Evalboard nicht benutzt.

von Michael K. (mab)


Lesenswert?

Mark B. schrieb:
> Naja, ich nutze Kicad und die Meanderfunktion macht einen guten Eindruck
> und lässt sich auch einfach bedienen.

Das ist doch schon mal was.

Und 166MHz SDRam Clk ist auch kein Hexenwerk.

Setze CPU und Ram einigermassen dicht beieinander, drehe sie sinvoll 
zueinander und beachte die Routeprioritäten des Herstellers.
Ich setze mal als minimum 4 Lagen an, 6 Lagen sind eine Erleichterung.
Ein angepasster Lagenaufbau ist auch nützlich. Stichwort Impedanz.

Ein Längenausgleich auf +/- 8mm in Relation zur Clk Leitung (=Referenz) 
würde ich als ausreichend ansehen.

Auf geht's

Frage noch: Ist der E70 der konkrete Chip oder nur ein Beispiel?

von W.S. (Gast)


Lesenswert?

Michael K. schrieb:
> Ist denn dieser Weg überhaupt so aufwendig?
>
> Weg 1: Längenausgleich mittels Meander.
...
> Weg 2: Längenausgleich einfach ignorieren.
...

Weg 3: erstmal die beteiligten Leitungen, deren erforderlichen 
Zeitrahmen und deren Länge näher anschauen und ggf. den SDRAM etwas 
umplazieren und dann besser routen. Zumeist hilft das bei dem Zeugs, was 
man am µC benutzt, bereits sehr, um die Längendifferenzen so klein zu 
halten, daß sie entweder keine oder nur ne marginale Rolle spielen.

W.S.

von Michael K. (mab)


Lesenswert?

W.S. schrieb:
> Zumeist hilft das bei dem Zeugs, was
> man am µC benutzt, bereits sehr, um die Längendifferenzen so klein zu
> halten, daß sie entweder keine oder nur ne marginale Rolle spielen.

Auch eine Möglichkeit, aber unterhalb welcher Differenz beginnt denn 
Marginal?

: Bearbeitet durch User
von C. A. Rotwang (Gast)


Lesenswert?

Mark B. schrieb:
> Da kommt mir etwas komisch vor, siehe Bild im Anhang. Kann das mal bitte
> jemand prüfen?

Prüf doch selber, oben gibt es einen Link zu Details der 
Speicherinterface-Berechnung.

Und als nächstes schaust Du mal mit dem scope wie die Signale 
tatsächlich aussehen. Dann kommst du sicher schnell drauf das die 
Flankenzeiten auch in Rechnung einfliessen.

Und wenn du schon die Flanken und damit den Umschaltpunkt zwischen '1' 
und '0' im Eye hast, überlegst du mal was passiert wenn der Datenbus 
heftig schaltet (Zufallsfolge PRBS23 ist so ein Klassiker beim RAM 
ausmessen) und der Ausgangspegel am Ausgang einbricht. von den 
vermeidlichen 6 ns Timingreserve bleibt da nicht viel übrig. 
Alsosolltest Du dir was einfallen lassen, wie du den Pegel stützt.

Ach ja, Terminierung will auch beachtet werden, bringt zwar nicht 
unbedingt viel, aber wenn man sonst schon alles auf Kante näht, könnten 
gerade dort die entscheidenden 500 ps verloren gehen. Aber auch dazu 
finden sich Erklärungen im erwähnten Link.

von W.S. (Gast)


Lesenswert?

Michael K. schrieb:
> Auch eine Möglichkeit, aber unterhalb welcher Differenz beginnt denn
> Marginal?

Wenn es in den min..max Angaben des IC-Herstellers liegt.

W.S.

von Gustl B. (-gb-)


Lesenswert?

Michael K. schrieb:
> Sind das nicht eher IL 140mm bzw AL 165mm /ns?!

https://de.wikibooks.org/wiki/Digitale_Schaltungstechnik/_Signallaufzeit/_Leitungen

Also so 20 cm/ns.

von C. A. Rotwang (Gast)


Lesenswert?

Gustl B. schrieb:
> Michael K. schrieb:
>> Sind das nicht eher IL 140mm bzw AL 165mm /ns?!
>
> 
https://de.wikibooks.org/wiki/Digitale_Schaltungstechnik/_Signallaufzeit/_Leitungen
>
> Also so 20 cm/ns.

Da wird aber die Rechnung ohne parasitäre Kapazitäten gemacht.

Diese Formel kann man benutzen wenn man ein frei in Luft hängendes Stück 
Draht als Verzögerungselement benutzt, bei tracks auf dem PCB dagegen 
gilt es den 'Kondensator' aus Signal-track, GND-plane und 
PCB-Dieelektrikum mit umzuladen, was sich im Oszilloskopbild als 
verschliefene Flanke darstellt und so am Zeit-Budget frisst.

Und darauf kommt es bei digitalen Signalen an.

Bei analogen Signalen auf Leitungen dagen schaut man sich lediglich den 
Verkürzungsfaktor (velocity rate) an.

von Michael K. (mab)


Angehängte Dateien:

Lesenswert?

Gustl B. schrieb:
> Also so 20 cm/ns.

Die Formeln samt Ergebnis im Anhang.

Gruß

von Mark B. (Gast)


Lesenswert?

Hallo,

der E70 war nur ein Beispiel weil ich den zuerst nehmen wollte. Jetzt 
wird es ein Rt1064.

Es wird auch mindestens eine 6 lagige PCB und der SDRAM liegt schon sehr 
nahe am uC weil die Abmessungen der Platine sehr klein sind und noch 
Kamera und LCD Signale geroutet werden müssen. Aber das ist nicht der 
Punkt.

Kann mir jemand sagen wie ich herausfinden kann wer den Artikel 
geschrieben hat?
https://www.mikrocontroller.net/articles/SDRAM-Timing
Oben steht nur "Aus der Mikrocontroller.net Artikelsammlung, mit 
Beiträgen verschiedener Autoren (siehe Versionsgeschichte)". Wo finde 
ich die Versionsgeschichte?

Da muss doch irgendjemand von euch direkt sehen ob es sich da um einen 
Tippfehler handelt oder doch richtig ist.

von Michael K. (mab)


Lesenswert?

Michael K. schrieb:
> Gustl B. schrieb:
>> Also so 20 cm/ns.
>
Die Formeln samt Ergebnis im Anhang.

Der angenommene Er gilt für LP in FR4. Mit speziellen Materialien wie 
z.B. Rogers gehen auch noch andere Werte, dies dürfte für diesen Thread 
hier aber keine Rolle spielen.

Ausserdem kann der Er für die AL noch mit dem Material und der Dicke des 
Lötstoplackes variieren. Als gute Faustformel taugen die Werte aber 
schon.

Gruß

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Mark B. schrieb:
> Kann mir jemand sagen wie ich herausfinden kann wer den Artikel
> geschrieben hat?

Das war ich, vor langer Zeit. Und naja, so dolle ist er nicht geraten, 
da fehlen aussagekräftige Bilder 8-0

>Oben steht nur "Aus der Mikrocontroller.net Artikelsammlung, mit
>Beiträgen verschiedener Autoren (siehe Versionsgeschichte)". Wo finde
>ich die Versionsgeschichte?

https://www.mikrocontroller.net/wikisoftware/index.php?title=SDRAM-Timing&action=history

Und ja, das ist ein Tippfehler, SDRAM und uC wurden verwechselt. Gut 
aufgepaßt und mitgedacht!

von Michael K. (mab)


Lesenswert?

Mark B. schrieb:
> der E70 war nur ein Beispiel weil ich den zuerst nehmen wollte. Jetzt
> wird es ein Rt1064.

Habe mir gerade das Kurzdatenblatt zum RT1064 angeschaut.

Zitat:
'The SEMC is a multi-standard memory controller
optimized for both high-performance and low pin-count.
It can support multiple external memories in the same
application with shared address and data pins. The
interface supported includes SDRAM, NOR Flash,
SRAM, and NAND Flash, as well as 8080 display
interface.'

Das heisst dann wohl der SDRam Speicher teilt sich die Leitungen mit den 
anderen Speichertypen. Das macht die Sache nicht einfacher.
Grundsätzlich gilt vor allem das SDRam auf einem abfallenden Ast sitzt. 
Die großen Hersteller haben sich da schon länger zurückgezogen. Das 
bedeutet Mittel bis Langfristig Lieferprobleme und steigende Preise.
Selbst DDR(1) ist eigentlich schon überholt.

Gruß

von Falk B. (falk)


Lesenswert?

Michael K. schrieb:
> Das macht die Sache nicht einfacher.
> Grundsätzlich gilt vor allem das SDRam auf einem abfallenden Ast sitzt.
> Die großen Hersteller haben sich da schon länger zurückgezogen. Das
> bedeutet Mittel bis Langfristig Lieferprobleme und steigende Preise.
> Selbst DDR(1) ist eigentlich schon überholt.

Mag sein, aber es gibt sogar noch SRAM. Nicht an jeden kleinen bis 
mittelgroßen Mikrocontroller oder Mikroprozessor kann und will man GDDR5 
RAM anschließen ;-)

Selbst der NE555 ist nach über 50 (?) Jahren noch im Geschäft. SDRAM 
wird es auch noch mindestens 10 Jahre, eher mehr. Daß die Mengen und 
Marktanteile kleiner werden ist da nebensächlich.

von Michael K. (mab)


Lesenswert?

Falk B. schrieb:
> Mag sein, aber es gibt sogar noch SRAM.

Da kann ich keinen Zusammenhang erkennen.

Falk B. schrieb:
> Selbst der NE555 ist nach über 50 (?) Jahren noch im Geschäft.

Das mag stimmen, geht aber am Thema vorbei.

Falk B. schrieb:
> Nicht an jeden kleinen bis
> mittelgroßen Mikrocontroller oder Mikroprozessor kann und will man GDDR5
> RAM anschließen ;-)

Ob man es kann oder will entscheidet letztendlich der Markt. Wenn es 
einfach keine Chips mehr gibt geht der Ofen halt aus.

Und bei SDRam habe ich jahrelang die Abkündigungen bekommen, jetzt gibt 
es nicht mal mehr diese. Es bleiben halt die üblichen Nischenhersteller, 
wie z.B. die Eingangsfoto erkennbare Fa. ISSI.
Aber auch die müssen irgendwann upgraden, dann bleiben halt noch die 
Broker, viel Spass bei Qualität und Preis.

Man muss einfach grundsätzlich verstehen das der Markt für DRams im 
wahrsten Sinne dynamich ist und nicht vergleichbar mit anderen 
Bauteilen.

Daher ist es keine gute Idee jetzt noch auf 15 bis 20 Jahre alte 
Technologie zu setzen.
Aktuell lichten sich bereits 2 Generationen weiter, also DDR2, die 
Reihen erheblich.
Die aktuelle, in der Industrie angewandte Technik lautet DDR3(L). Hier 
ergibt sich auch das beste PLV.
Ein Verweis auf GDDR5 halte ich für daneben.

Und ja, es ist durchaus möglich CPU's mit SDRam Interface mit DDR2 zu 
verheiraten.

Auch hier gilt wieder: Die Anfangsinvestition ist natürlich höher, aber 
auf Dauer bekommt man dies gutverzinst zurück.

Gruß

: Bearbeitet durch User
von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Es gibt auch memory controller die Verzögerungen (pro Bytegruppe oder 
sogar pro Bit) per Software einstellen können. Das entspannt das Routing 
auf der Leiterkarte deutlich da man damit nochmal feinjustieren kann.

von Falk B. (falk)


Lesenswert?

Michael K. schrieb:
> Falk B. schrieb:
>> Mag sein, aber es gibt sogar noch SRAM.
>
> Da kann ich keinen Zusammenhang erkennen.

SRAM ist noch älter als SDRAM und trotzdem noch verfügbar!

>> Nicht an jeden kleinen bis
>> mittelgroßen Mikrocontroller oder Mikroprozessor kann und will man GDDR5
>> RAM anschließen ;-)
>
> Ob man es kann oder will entscheidet letztendlich der Markt.

Nö, die Technologie und der Preis.

>Wenn es
> einfach keine Chips mehr gibt geht der Ofen halt aus.

> Und bei SDRam habe ich jahrelang die Abkündigungen bekommen, jetzt gibt
> es nicht mal mehr diese. Es bleiben halt die üblichen Nischenhersteller,
> wie z.B. die Eingangsfoto erkennbare Fa. ISSI.
> Aber auch die müssen irgendwann upgraden, dann bleiben halt noch die
> Broker, viel Spass bei Qualität und Preis.

Stimmt. Aber dann ist das halt so. Das sind aber "nur" Probleme bei 
langlebigen Produkten wie INdustrieelektronik, Bahntechnik, etc. Der 
Konsumerkram läuft in DEUTLICH kürzeren Lebenszyklen und nutzt meist 
aktuelle, wenn nicht gar brandneue ICs.

> Man muss einfach grundsätzlich verstehen das der Markt für DRams im
> wahrsten Sinne dynamich ist und nicht vergleichbar mit anderen
> Bauteilen.

Sicher.

> Daher ist es keine gute Idee jetzt noch auf 15 bis 20 Jahre alte
> Technologie zu setzen.

Im Prinzip ja, aber manchmal gibt es nur wenig Alternativen. Und eine 
bekannte, bewährte Lösung in Form eines "alten" Mikrocontrollers etc. 
hat da, zumindest aus Sicher der Entwicklung, deutlich Vorteile. Aus 
sicht der Langzeitverfügbarkeit sieht's halt anders aus 8-0

> Aktuell lichten sich bereits 2 Generationen weiter, also DDR2, die
> Reihen erheblich.
> Die aktuelle, in der Industrie angewandte Technik lautet DDR3(L). Hier
> ergibt sich auch das beste PLV.
> Ein Verweis auf GDDR5 halte ich für daneben.

Es war ein übertriebenes Beispiel. Und dennoch, es gibt genügend 
Anwendungen unterhalb der DDR3 Speicherklasse.

> Und ja, es ist durchaus möglich CPU's mit SDRam Interface mit DDR2 zu
> verheiraten.

Na dann mal viel Spaß!

> Auch hier gilt wieder: Die Anfangsinvestition ist natürlich höher, aber
> auf Dauer bekommt man dies gutverzinst zurück.

Das kann man so allgemein gar nicht sagen! So eine Brücke von SDRAM auf 
DDR2 baut man nicht einfach mal so! Das lohnt sich bestenfalls bei hohen 
und HÖCHSTEN Stückzahlen! Bauteilverfügbarkeit ist wichtig, aber sie ist 
nicht das Einzige Kriterium zur Auswahl von Bauteilen.

von Mark B. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,



seht euch mal bitte das angehängte Bild an. Werden die Daten am µC 
wirklich bei der fallenden Flanke ausgegeben und bei der darauf 
folgenden steigenden Flanke am SDRAM Daten eingelesen oder ist das im 
Datenblatt des µCs falsch?

von Michael K. (mab)


Lesenswert?

Falk B. schrieb:
> Das kann man so allgemein gar nicht sagen! So eine Brücke von SDRAM auf
> DDR2 baut man nicht einfach mal so!

Ich habe die Hardware in Form von CPU E70 mit DDR2 innerhalb von 3 Tagen 
entworfen. Das ist natürlich nicht die gesamte Entwicklungszeit, sondern 
nur der Teil zur Ram Anbindung im Schaltplan.
Mehr Probleme machte die übliche Linux Boot SW, die wollte partout das 
Ram nicht kennen. Da musste der Programmierer dann händisch ran, hat 
irgenwas um eine Woche gebraucht.

Man muss halt akzeptieren das man die Hälfte der Speicherkapazität 
verliert, das ist aber OK, billiger ist es immer noch.

Das Sparvolumen beträgt für mich einige tausend Eur im Jahr, mit 
steigender Tendenz.

++++++++++++++++++++++++++++++

Wie so viele Threads hier im Form schwächelt auch dieser an fehlenden 
Infos bzw. einer Zielvorgabe des TO, wie z.B:
Hobby/Gewerblich?
Stückzahl?
Wie lange soll geliefert werden?
Erfahrung bzw. Wissen des TO?

So lange man dies alles nicht hat ist es schon ein wenig stochern im 
Nebel.

Gruß

von Mark B (Gast)


Lesenswert?

Michael K. schrieb:
> Wie so viele Threads hier im Form schwächelt auch dieser an fehlenden
> Infos bzw. einer Zielvorgabe des TO, wie z.B:
> Hobby/Gewerblich?
> Stückzahl?
> Wie lange soll geliefert werden?
> Erfahrung bzw. Wissen des TO?
> So lange man dies alles nicht hat ist es schon ein wenig stochern im
> Nebel.

Meiner Meinung nach schwächeln die meisten Threads an kurzen knackigen 
hilfreichen Antworten.
Wieso musst Du das denn wissen? Das hat überhaupt nichts mit meiner 
ursprünglichen Frage zu tun.
Ob ein SDRAM bald nicht mehr verfügbar ist oder seit wann es diese 
Technologie gibt und was Deiner Meinung nach besser ist, hilft mir und 
anderen Lesern nicht.
Das ist schön und gut zu wissen. Wie man sich die Leiterbahnimpedanzen 
ausrechnet oder Ausbreitungsgeschwindigkeiten ausrechnet ist auch sehr 
wichtig aber das hat auch nichts mit meiner Frage zu tun.
Es gibt dutzende Threads die das ausführlich behandelt haben und 
sicherlich auch dutzende Antworten darunter, die ebenfalls nichts mit 
dem Thema zu haben.

Entweder irre ich mich oder Falk B. und Michael K. nutzen meinen Thread 
nur, um zu zeigen wer mehr Ahnung hat. Es ist ja nicht so als hättet Ihr 
offenbar keine Zeit zu antworten, denn die Antworten kommen im 
30min-Takt.
Durch Eure nichtsbeitragenden Antworten gehen meine Fragen unter und 
derjenige der eine Antwort liefern könnte, hat keine Lust sich hier 
durchzuscrollen.
Meine Frage mit dem Tippfehler wurde auch nur beantwortet weil ich 
nachgehakt habe, wer dass denn verfasst hat. Zumindest habe ich das 
Gefühl, vielleicht irre ich mich da.

Ich wette ihr könntet ganz schnell sagen, ob die Taktflanke falsch 
eingezeichnet ist und was Sache ist, aber ich glaub Ihr wollt nicht 
wirklich helfen. Falls dem so ist, dann schreibt doch bitte keine 
Füllantworten.
Genau diese Detailfragen sind nicht mal eben aus einem Datenblatt 
herauslesbar oder in Büchern detailiert beschrieben. Für uns Neulinge 
ist es manchmal schwer da durchzublicken, vorallem wenn jeder Hersteller 
seine Diagramme anders darstellt oder wenn hier und da mal Wörte 
vertauscht werden.

In älteren Büchern oder Datenblättern wurde teilweise noch viel mehr ins 
Detail gegangen. Leider ist das wohl heutzutage nicht mehr so wichtig, 
denn das weiß ja wohl jeder.

Wie die Impedanzen oder Ausbreitungsgeschwindigkeiten ausgerechnet 
werden findet man in etlichen Büchern. Die Gleichung kann ich hier auch 
ganz schnell posten und dass die Geschwindigkeit bei einer Stripline 
langsamer ist als Microstrip ist ja wohl auch klar, weil das e_reff 
kleiner ist bei einer Microstripleitung.
Aber auf die Details kommt es manchmal an, die nicht in jedem Buch 
stehen, und das habt Ihr euch über die Jahre durch Erfahrung etc. 
angeeignet.

Also nochmal zu meiner Frage. Kann mir jemand sagen ob die Flanke in dem 
Datenblatt falsch eingezeichnet ist und ob das Sinn macht?

Bitte keine Antworten hier in meinem Thread, die nichts mit dieser Frage 
zu tun haben.

von Falk B. (falk)


Lesenswert?

Mark B. schrieb:
> seht euch mal bitte das angehängte Bild an. Werden die Daten am µC
> wirklich bei der fallenden Flanke ausgegeben und bei der darauf
> folgenden steigenden Flanke am SDRAM Daten eingelesen oder ist das im
> Datenblatt des µCs falsch?

Vermutlich ja, denn es ist SEHR ungewöhnlich, am uC die Daten mit der 
fallenden Taktflanke auszugeben. Diese Spielchen mit Ausgabe auf der 
einen und Abtastung auf der anderen macht man nur bei SPI, da hat es bei 
moderaten Bitraten ein paar Vorteile (man kann sich mit einfacher 
Taktverteilung und diversen Nachlässigkeiten durchmogeln). Bei schon 
recht flotten 166MHz SDRAM hat es satte Nachteile, nämlich die 
Verdopplung der Mindestperiodendauer!

AFAIK ist bei allen SDRAM und abgeleiteten Technologien alles auf die 
steigende Taktflanke bezogen, so wie bei normaler, synchroner Logik. 
Darum gibt es auch für sowas oft eine PLL oder DLL, um einen 
phasenrichtigen Takt vom uC an den SDRAM zu kriegen. War zumindest bei 
den FPGAs immer der Fall. Damit kann man vor allem die Verzögerungen der 
Ausgangstreiber für den Takt kompensieren, zusätzlich natürlich auch die 
Laufzeit auf der Leitung, aber die ist meist deutlich kleiner.

: Bearbeitet durch User
von Mark B. (Gast)


Lesenswert?

Vielen Dank für Deine Antwort!

Kurze Erläuterungen weshalb ich da etwas skeptisch war (fehlendes Wissen 
spielt auch eine Rolle).
Das Timing-Diagram des SDRAMs habe ich wohl fälschlicherweise so 
interpretiert, als würden die Daten (Befehle) vom uC zwischen T0 und T1 
ausgegeben werden. Und die fallende Taktflanke im uC Datenblatt hat die 
Verwirrung noch komplett gemacht. In anderen uC Datenblättern ist sie 
wohl richtig eingezeichnet - mit steigenden Taktflanken.
Das heißt, das Diagram muss so gelesen werden, dass der erste READ 
Befehl (siehe T0) schon bereits bei T0 minus 1 Zyklus am uC Ausgang 
angelegt wurde. Und dass der READ Befehl an der Stelle T0 für den 
nächsten Zyklus gilt.(?)

von C. A. Rotwang (Gast)


Lesenswert?

Mark B. schrieb:

> Das heißt, das Diagram muss so gelesen werden, dass der erste READ
> Befehl (siehe T0) schon bereits bei T0 minus 1 Zyklus am uC Ausgang
> angelegt wurde. Und dass der READ Befehl an der Stelle T0 für den
> nächsten Zyklus gilt.(?)

Kann man das so pauschal festlegen oder ist es nicht abhängig davon, was 
als CAS Latency (CL)  (Bits 6:4) Configuration register eingestellt 
wurde?

von Mark B. (Gast)


Lesenswert?

C. A. Rotwang schrieb:
> Kann man das so pauschal festlegen oder ist > es nicht abhängig davon, was als 
CAS Latency > (CL) (Bits 6:4) Configuration register
> eingestellt wurde?

Ich mit meinem Halbwissen habe das so verstanden. Die CAS Latenz 
beschreibt die Anzahl der nötigen Taktzyklen die der SDRAM braucht, um 
die angeforderten Datenbytes an seinen Datenpins stabil anzulegen 
nachdem der erste READ Befehl und natürlich die Signale an den 
Adresspins eingelesen wurden.
Bei der Analyse der Timings, sprich Laufzeitunterschiede (was mich ja 
momentan interessiert) zwischen Taktsignal und Befehlsignale + 
Adresssignale, spielt die CAS Latenz keine Rolle. Bei einem 
Schreibzugriff auf den SDRAM sendet der uC, in meinem Fall, das 
Taktsignal zu dem SDRAM. Der uC legt dann die gewünschte Adresse und den 
WRITE Befehl an seine Ausgangspins. Diese liegen aber erst eine gewisse 
Zeit nach der steigenden Taktflanke an den Ausgängen des uCs stabil an. 
In dem letzten Bild von mir ist das TDVO, in dem SDRAM-Timing Artikel 
ist das TC2O. Theoretisch sollte man hier den max. Wert nehmen. Da der 
aber nicht gemessen bzw. angegeben wurde, nimmt man in erster Näherung 
den 1ns Wert und verdoppelt (?) ihn um "auf Nummer sicher zu gehen". 
Oder vielleicht auch verdreifachen. Da fehlen mir die Erfahrungwerte. 
Messen wäre vielleicht noch die sicherste Methode aber die Pins sind bei 
mir nicht zugänglich. Für meine Analyse reicht das auch erst einmal. Na 
jedenfalls, hat man dann noch eine gewisse Laufzeit auf den 
Verbindungsleitungen und eine geforderte Mindeststabilisierungszeit 
(Setup time) an den SDRAM Eingangspins (für alles Signale). Und diese 
Signale müssen dann VOR der nächsten steigenden Taktflanke am SDRAM 
anliegen und eine gewisse Zeit danach gehalten werden.
Bei der Timing Analyse ist es also wichtig sich alle Signale zwischen uC 
und SDRAM bzgl Laufzeit und Setup- und Holdzeiten, relativ zur 
Taktflanke gesehen, anzuschauen. Und die CAS Latenz ist die innere SDRAM 
Verarbeitungszeit.

Ich hoffe ich hab das jetzt nicht völlig falsch beschrieben.

von Falk B. (falk)


Lesenswert?

Mark B. schrieb:

> Bei der Analyse der Timings, sprich Laufzeitunterschiede (was mich ja
> momentan interessiert) zwischen Taktsignal und Befehlsignale +
> Adresssignale, spielt die CAS Latenz keine Rolle.

Richtig.

> ist das TC2O. Theoretisch sollte man hier den max. Wert nehmen.

Ja.

> Da der
> aber nicht gemessen bzw. angegeben wurde, nimmt man in erster Näherung
> den 1ns Wert und verdoppelt (?) ihn um "auf Nummer sicher zu gehen".

Schwer zu sagen.

> Oder vielleicht auch verdreifachen.

Das ist zuviel. Der doppelte Wert ist hier schon recht konervativ. 
Juristen würden dir aber auch sagen, daß ohne eine explizite max. Angabe 
alles erlaubt ist, bis in den Milliekundenbereich ;-)

> Bei der Timing Analyse ist es also wichtig sich alle Signale zwischen uC
> und SDRAM bzgl Laufzeit und Setup- und Holdzeiten, relativ zur
> Taktflanke gesehen, anzuschauen. Und die CAS Latenz ist die innere SDRAM
> Verarbeitungszeit.

Ja.

von Mark B. (Gast)


Lesenswert?

Vielen Dank für deine Investierte Zeit an Euch und Falk B.

Mark B.

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.