Hallo,
es wird eine Setup-Time z.B. für das Signal CS angegeben, welche im
Datenblatt des Mikrocontrollers steht. Gleichzeitig hat der
angeschlossene SDRAM auch eine Setup-Time für CS.
z.B. minimale Setup-Time µC 2ns und minimale Setup-Time SDRAM ist 3ns
--> man muss die größere von beiden beachten (klar) und wieviel overhead
sollte man da noch hinzufügen bei setup-zeiten und hold-zeiten? Gilt das
dann für alle Signale?
Günther
Hey Günther,
steht im Mikrocontroller-Datenblatt eine Setup-Time für CS oder eine
allgemeine Setup-Time? Die Setup-Time im SRAM Datenblatt ist die Zeit,
die bei anlegen eines Signals an SRAM gilt. Die Setup-Time im Datenblatt
des Mikrocontrollers gilt vermutlich für Signale, die du dort anlegt.
Also beide sollten beachtet werden. Und im Normalfall sind das schon die
Worst-Case Anforderungen. Steht ja auch meist min bzw. max dabei, d.h.
wenn du diese einhältst funzt es in jedem Fall. Hab ich die Frage
richtig verstanden?
Gruß Dude
>steht im Mikrocontroller-Datenblatt eine Setup-Time für CS oder eine>allgemeine Setup-Time?
im datenblatt vom µC ist halt auch ein Timing-Diagramm für die anbindung
eines SDRAMS an den µC abgebildet, da der µC die Anschlüsse etc. für
einen SDRAM vorsieht...
Günther
Also wenn im Mikrocontroller-Datenblatt ne Setup-Time für das SRAM
steht, würde ich mich trotzdem an die des SRAM-Datenblatts halten. Die
werdens wohl wissen, was deren RAM braucht. Aber viel werden die sich
doch sicher nicht unterscheiden?
im Datenblatt vom mikrocontroller sind die in abhängigkeit von der
Kapazität angegeben 0.015 ns/pF (die pF beziehen sich wahrscheilich auf
die leitung und den eingang vom sdram)
der sdram hat 8.8pF pro Pin und die leitung (keine ahnung in welcher
größenordnung man das kalkulieren muss)
0.015 ns/pF * (8.8 + 2) pF = =0.162ns und im datenblatt vom sdram sind
es 2ns ?!?
www.atmel.com/dyn/resources/prod_documents/1768s.pdf
Seite 641 z.B. SDRAMC1
>Also wenn im Mikrocontroller-Datenblatt ne Setup-Time für das SRAM>steht, würde ich mich trotzdem an die des SRAM-Datenblatts halten.
ich dachte, dass ich die timing vom sdram mit denen im mikrocontroller
datenblatt vergleichen muss und diese miteinander übereinstimmen müssen,
damit ich den sdram korekt ansprechen kann?
Günther
Also bin mir jetzt nich so sicher. Da steht doch z.B.
SDRAMC1 ist die Zeit, die das Signal SDCKE vor einer Taktflanke von SDCK
als high ausgegeben werden kann. Diese ist als
SDCKE = tCLMCK + 1,2 ns - 0,015 ns/pF
angegeben. Also Leitungs- und Pinkapazitäten wirken sich so aus, dass
das Signal SDCKE erst etwas später high ist. Und tCLMCK ist die halbe
Periodendauer des Masterclocks. Damit müsste die Zeit doch länger als
die 2 ns sein, die vom SDRAM Datenblatt mindestens gefordert werden. Hab
ich nu völlig das Thema verfehlt?
Gruß Dude
d.h. SDCKE = tCLMCK + 1,2 ns ist die minimale länge der setup-time?
mit tCLMCK = 6.3ns min wäre dass dann 7.4ns
>Damit müsste die Zeit doch länger als die 2 ns sein, die vom SDRAM >Datenblatt
mindestens gefordert werden
wenn das so stimmt, ja... aber genau sagt mir diese zeit 7.4ns dann,
wenn die setup-time vom sdram für SDCKE z.B. 2ns ist?
Günther
Also das SDRAM hat ne mindest Setup-Zeit von 2ns. D.h. das Signal, Daten
oder CE oder sonst was, muss mindestens 2ns vor der Taktflanke anliegen,
damit das Signal stabil eingelesen werden kann. Dein SDRAM-Controller
schmeißt das Sigal nu 7,4ns vor der Taktflanke raus. Das bedeutet, die
Anforderungen des SDRAMs werden lang eingehalten. N Problem würds geben,
wenn es umgekehrt wäre.
(Wenn ich das nu richtig aufm Schirm hab hier)
Gruß
jetzt fängt es anfang zu dämmern..
also die setup-zeit eines Signals wie z.B. SDCKE vom mikrocontroller
wird z.b. 7.4ns for der Taktflanke von CKE abgefeuert und muss 2ns vor
dieser selben Flanke beim SDRAM spätestens ankommen?
Wenn die Signale sag ich mal 3ns vor der eigentlichen 2ns langen
Setup-Time am SDRAM ankommen ist egal, oder?
Und wie funktioniert das dann mit der Hold-Time?
Was ich noch nicht ganz verstehe ist aber der kleine Abzug 0.015 ns/pF -
ist das der minimale zeitliche Betrag der aus der Leitungskapazität und
der Eingangskapazität des SDRAMs z.B. resultiert?
Günther
Wenn du keine Leitungs- und Pinkapazität hast, dann gilt der Wert für
die Setup-Time von:
SDRAMC1 = tCLMCK + 1.2ns
Eine Kapazität durch Leitungen oder Pin, verursacht eine Verzögerung
eines Signalwechsels. Diese Verzögerung wird durch - 0,015 ns/pF mit
eingerechnet, da das Signal dadurch erst etwas später am SDRAM anliegt.
Und zur Hold-Time:
Hold-Time des SDRAM-Controllers is ja
SDRAMC2 z.B. und die is
tCHMCK - 1.4ns + 0.023 ns/pF
mit tCHMCK als halbe Taktperiode des MAsterclock.. Ist also mindestens
SDRAMC2 = 6,3ns - 1,4ns + x
müsstest du mal mit den Anforderungen des SDRAMs vergleichen. Aber die
werden sicherlich geringer sein. Und hier spielt die Verzögerung durch
die Kapazitäten positiv mit rein, da die Hold-Zeit dadruch verlängert
wird.
Wir meinen jetzt das gleiche. Hoffe nur, dass es auch richtig ist ;-)
Gruß
hab grad nochmal alles durchdacht... ist es nicht so, dass der
mikrocontroller für eine bestimmte zeit (die hold-time) die anliegende
Adresse z.B. halten muss z.B. 5ns --> innerhalb dieser 5ns muss die
Taktflanke am SDRAM angekommen sein und die Setup-Time von 2ns muss sich
darin befinden???
Zihat
also, wenn ich da recht habe sollte, dann müsste es umgekehrt so sein:
tCHMCK - 1.4ns + 0.023 ns/pF = ca. 5ns (Hold-Time)
d.h. die Setup-Time vom SDRAM z.B. 3ns müsste dann solange sein, dass
mit der Taktflanke das Signal an den µC übertragen wird - dort muss der
Wert ca. 5ns (Hold-Time) anliegen. Wenn das Signal später eintrifft muss
diese Hold-Time größer werden, weil es länger dauert bis das Signal am
µC-Pin ankommt.
normalerweise müsste dann die Hold-Time vom SDRAM größer sein, als die
Setup-Time vom µC - was aber wahrscheinlich nicht sein wird - weil 7.5ns
hat ein SDRAM nicht... also müsste das auch mit 2ns Hold-Time vom SDRAM
und 7.5ns Setup-Time vom µC gehen - eine Erklärung fehlt mir hier noch.
Zihat
Die minimale Hold-Time des SDRAMs is bestimmt auch nur 2ns so um den
dreh. Diese muss durch SDRAMC2 mindestens erfüllt werden. Mit SDRAMC2 =
5ns dürfte die Hold-Time des SDRAMs wohl eingehalten werden.
die Hold-Time vom SDRAM ist 0.8ns - also ziemlich klein gegenüber der
Setup-Time vom µC 7.5ns
aber wie hängt das zusammen?
Wenn Daten vom SDRAM an den µC geschickt werden, welche Zeit muss größer
sein als die andere?
Günther
Also wovon ich vorhin die ganze Zeit gesprochen habe ist die Richtung
vom µC zum SDRAM. In die andere Richtung gehen ja unr die Daten. Für die
gilt von C Seite aus:
D0-D15 in Setup before SDCK Rising Edge
D0-D15 in Hold after SDCK Rising Edge
D16-D31 in Setup before SDCK Rising Edge
D16-D31 in Hold after SDCK Rising Edge
Das sind die Zeiten, die die Daten vor Taktflanke stabil am C anliegen
müssen. Dazu müstest du dann noch im Datenblatt vom SDRAM schauen, ob
dies eingehalten wird. Dort findet sich bestimmt eine Angabe, wieviele
ns vor der Taktflanke die Daten ausgegeben werden.
also wenn die Daten vom SDRAM rausgeschickt werden, werden diese Daten
die Hold-time gehalten? Und innerhalb dieser Zeit müssen die Daten am µC
angekommen sein?
Dann müsste allerdings die Hold-Time viel größer sein, das kann also
nicht sein...
hmm
Günther
ist das die Output Data Hold Time? mit 3ns?
tRAS min 50ns und max 100µs
tRC (rw cycle time) 68ns
tRP (Row precharge time) 20ns
tRCD (RAS to CAS delay) 20ns
tRRD (Row active to row active delay) 16ns
Günther
Also ich versuchs nochmal zusammenzufassen, wie ich es verstanden habe:
Setup-Time ist die Zeit, die ein Signal minestens vor der Taktflanke
stabil anliegen muss, damit dieses Signal sauber gelesen werden kann.
Hold-Time ist die Zweit, die ein Signal mindestens noch nach der
Taktflanke anliegen muss, damit dieses sauber gelesen werden kann.
Dein µC hat beim lesen von Daten eine Anforderung an Setup- und
Hold-Time, die mindestens erfüllt werden müssen. Diese sind
SDRAMC19: D0-D15 in Setup before SDCK Rising Edge
SDRAMC20: D0-D15 in Hold after SDCK Rising Edge
SDRAMC21: D16-D31 in Setup before SDCK Rising Edge
SDRAMC22: D16-D31 in Hold after SDCK Rising Edge
stehen im µC Datenblatt.
Analog dazu, muss im SDRAM Datenblatt eine Angabe darüber stehen,
wieviele ns vor und nach ener Taktflake die Daten vom SDRAM stabil
ausgegeben werden. Diese Zeiten heißen vermutlich irgendwas mit "Time to
Data valid" und "Time to data invalid" und müssen größer sein, als die
Setup- und Holdzeiten des µC.
In die andere Richtung, also vom µC zum RAM, gelten die Setup- und
Holdzeiten des RAMs, 2ns und 0,8ns. Diese müssen durch die Zeiten aus
dem µC Datenblatt, "D0-D15 Out Valid before SDCK Rising Edge" für die
Daten, "SDCKE High before SDCK Rising Edge" für SDCKE und so weiter
mindestens eingehalten werden. Die Zeit, in der die Signale also stabil
vom µC ausgegeben werden müssen größer sein als Setup- und Holdzeit des
RAMs.
Gruß Dude
was ich an diesem SDRAM noch nicht ganz verstehe ist, diese Rise-Time
berechnung - wie weiß man denn wie groß die Rise-Time ist? Aus welchen
Wert ergibt sich das?
Seite13 Note 3
If tr & tf is longer than 1ns, transient time compensation should be
considered,
i.e., [(tr + tf)/2-1]ns should be added to the parameter.
Zihat
@ Bernd (Gast)
>mit 80MHz läuft da eh nichts, weil der SDRAM kann nur 66MHz oder mehr>als 80MHz --> 66MHz ist die Taktrate.
???
Glaub ich nicht. Der läuft sogar bis runter auf 1 MHz. Alles zwischen
1..133 MHz geht.
MFG
Falk