Forum: Mikrocontroller und Digitale Elektronik setup-time sdram und µC


von Günther (Gast)


Lesenswert?

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

von Dude (Gast)


Lesenswert?

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

von Günther (Gast)


Lesenswert?

>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

von Dude (Gast)


Lesenswert?

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?

von Günther (Gast)


Lesenswert?

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

von Zihat (Gast)


Lesenswert?

>0.015 ns/pF * (8.8 + 2) pF = =0.162ns und im datenblatt vom sdram sind
>es 2ns ?!?

da stimmt was nicht?

von Dude (Gast)


Lesenswert?

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

von Günther (Gast)


Lesenswert?

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

von Dude (Gast)


Lesenswert?

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ß

von Günther (Gast)


Lesenswert?

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

von Dude (Gast)


Lesenswert?

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ß

von Zihat (Gast)


Lesenswert?

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

von Dude (Gast)


Lesenswert?

@ Zihat: Jo genau so ist es. Du hast es auf den Punkt gebracht ;-)

von Zihat (Gast)


Lesenswert?

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

von Dude (Gast)


Lesenswert?

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.

von Günther (Gast)


Lesenswert?

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

von Dude (Gast)


Lesenswert?

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.

von Günther (Gast)


Lesenswert?

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

von Günther (Gast)


Lesenswert?

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

von Dude (Gast)


Lesenswert?

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

von Günther (Gast)


Lesenswert?

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

von Zihat (Gast)


Lesenswert?

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

von Bernd (Gast)


Lesenswert?

mit 80MHz läuft da eh nichts, weil der SDRAM kann nur 66MHz oder mehr 
als 80MHz --> 66MHz ist die Taktrate.

von Falk B. (falk)


Lesenswert?

@ 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
Noch kein Account? Hier anmelden.