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
>0.015 ns/pF * (8.8 + 2) pF = =0.162ns und im datenblatt vom sdram sind >es 2ns ?!? da stimmt was nicht?
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
hier mal das datenblatt vom sdram, weil ich leider kein solche zeit finde http://www.samsung.com/global/system/business/semiconductor/product/2007/7/7/595936ds_k4s51xx32d_rev10.pdf Günther
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
mit 80MHz läuft da eh nichts, weil der SDRAM kann nur 66MHz oder mehr als 80MHz --> 66MHz ist die Taktrate.
@ 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
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.