Forum: Mikrocontroller und Digitale Elektronik Busleitungen Leitungslänge


von Matthias Krämer (Gast)


Lesenswert?

Hallo,

nun hab ich schon in einigen beiträgen gelesen, dass beim Datenbus 
Addressbus etc. man sich keine gedanken machen muss ob die einzelnen 
Busleitungen 2cm oder 3cm länger sind als manch andere...

aber wieso geht das? Innerhalb welcher Zeit müssen die Bits ankommen - 
innerhalb der Setup-Time oder Hold-Time (abhängig von dem ob es sich um 
einen Eingang oder Ausgang handelt) - ja. Aber gibt es einen Mindestwert 
für die Setup-Zeiten oder Hold-Zeiten (meistens ja sogar 0ns)-> da würde 
man ja gar kein oder sehr kleines spiel haben...

bei einer FR4 Leiterbahn bewegen sich die einzelnen bits ja mit 14cm/ns 
-> bei 14cm unterschied zwischen den einzelnen Datenleitungen wäre der 
zeitliche unterschied 1ns...

Natürlich ist das alles ziemlich untypisch, dass das passieren wird, 
weil man natürlich unterhalb von 10cm bleibt... aber trotzdem innerhalb 
welcher Zeit müssen die einzelnen Bits ankommen? Innerhalb der 
Setup-Time?

Matthias Krämer

von Rudolph (Gast)


Lesenswert?

Die Frage ist doch vor allem auch, wie schnell Dein Bus ist.
Bei 'nem AVR mit 16 MHz hat man also 62,5 ns pro Takt, das muss man 
erstmal
auf den Bus bekommen, eher wird's ein vielfaches davon.
Da kümmert es gerade mal garnicht wenn die Signale mit 1 ns Versatz 
ankommen.

Und sowas wie einen Bus gibt es ohnehin immer weniger, jedenfalls stirbt 
parallel ohnehin und die µC's haben mehr und mehr integriert.

von Matthias Krämer (Gast)


Lesenswert?

ich meine natürlich eher SDRAMs, die dann mit 133MHz betrieben werden 
--> 7.5ns pro Takt --> und dann ist 1ns knapp 14% der 7.5ns....

7.5ns * 14cm/ns = 105cm können mit 7.5ns durchlaufen werden.

Matthias Krämer

von Andreas K. (a-k)


Lesenswert?

Wird das jetzt zur Epidemie? Jahrelang kümmert's keine Sau und die Leute 
schliessen ihre SRAMs an den AVRs an wie sie wollen. Kümmern sich auch 
nicht drum, dass Atmel jenseits von 8MHz von HCs abrät, weil's ja 
trotzdem funktioniert. Ist wohl auch ok so, weil man einem '573 bei 
miesem Layout und ohne VCC/GND-Planes möglicherweise mit 74HC besser 
dran ist als mit 74AC/74AHC.

Und nun auf einmal ist irgendein Virus ausgebrochen und jeder dritte 
Thread macht sich ins Hemd wegen einer halben Nanosekunde für die paar 
cm Leitung zwischen SRAM und AVR. WAS IST HIER LOS? Seit ihr zum ersten 
Mal den Begriffen Setup/Hold Time begegnet?

von Andreas K. (a-k)


Lesenswert?

Setup/hold times am Beispiel für einen Eingang:
5nsec setup time: Eingang muss spätestens 5nsec vor T anliegen.
20nsec hold time: Eingang darf sich frühestens 20nsec nach T ändern.
Das ist alles Leute. Keine Zauberei. Wenn's 100nsec vorher und 200nsec 
nachher sind stört das auch nicht.

von Andreas K. (a-k)


Lesenswert?

> 7.5ns * 14cm/ns = 105cm können mit 7.5ns durchlaufen werden.

Und wenn du dann mal einen guten Oszi dranhältst, wirst du feststellen, 
dass diese rechnerische Laufzeit das geringste deiner Probleme ist.

von Matthias Krämer (Gast)


Lesenswert?

>Bei 'nem AVR mit 16 MHz hat man also 62,5 ns pro Takt, das muss man
>erstmal
>auf den Bus bekommen, eher wird's ein vielfaches davon.

heißt dass, das der AVR z.B. mit einer viel höheren Frequenz läuft als 
der externe Bus EBI und dadurch man ein paar Nanosekunden sozusagen 
geschenkt bekommt, die dann die Differenz zwischen den einzelnen 
ankommenden Bits ausmacht..

also bei 180MHz CPU Takt und 133 MHz SDRAM (wie oben genannt) --> 5.55ns 
pro CPU-Takt und 7.5ns pro Bustakt --> man braucht mindestens zwei 
CPU-Zyklen --> 11.1ns

diese 11.1ns > tclk-to-outut + tsetup + thold + tleiterbahn --> wenn das 
stimmt ist alles im grünen bereich?

Matthias

von Markus (Gast)


Lesenswert?

>5nsec setup time: Eingang muss spätestens 5nsec vor T anliegen.
>20nsec hold time: Eingang darf sich frühestens 20nsec nach T ändern.

die werte bewegen sich ja eher in hold time = 0ns und setup time 2-5ns;

aber im prinzip ist sowieso zu achten, dass die leitungslänge kurz ist, 
weil ansonsten kapazitätsbelag und vor allem auch die induktivität 
steigt und somit das signal schlechter wird.

von Andreas K. (a-k)


Lesenswert?

> die werte bewegen sich ja eher in hold time = 0ns und setup time 2-5ns;

War ein Beispiel. Die exakten Zahlen sind für's Verständnis unwichtig. 
Man kann dann auch mal einer setup time von -3nsec (minus 3) begegnen, 
ohne dass es einen aus der Kurve schmeisst.

> aber im prinzip ist sowieso zu achten, dass die leitungslänge kurz ist,
> weil ansonsten kapazitätsbelag und vor allem auch die induktivität
> steigt und somit das signal schlechter wird.

Jau. Aber zwischen AVR und RAM sind zig Leitungen. Wer Controller, Latch 
und RAM an drei entgegengesetzte Enden seiner Platine plaziert, kriegt 
doch schon bei Layouten den Vogel. Das regelt sich also gewissermassen 
von selber.

von Ingo (Gast)


Lesenswert?

hallo Andreas,

für mich ist das noch etwas unverständlich, warum man sich keine sorgen 
machen muss obwohl die hold-time 0ns entspricht... bei der setup-time 
von z.B. 4ns hab ich es jetzt so verstandenn, dass innerhalb dieser 4ns 
das Bit ankommen muss...

kann man dass mit den bieden Frequenzen von µC (die um einiges höher 
ist) und dem EBI erklären, so dass mind. zwei CPU-Takte von nöten sind, 
um die daten zu empfangen und man so z.B. 12ns zeit hat?

Ingo

von Andreas K. (a-k)


Lesenswert?

> bei der setup-time von z.B. 4ns hab ich es jetzt so verstandenn,
> dass innerhalb dieser 4ns das Bit ankommen muss...

So kann Panik aufkommen. Nö. Es heisst, dass das Bit MINDESTENS 4ns 
vorher (vor was?) ankommen muss. Darf aber auch schon 2 Stunden vorher 
da sein. Und darf auch noch 3 Tage (>=0ns) danach anliegen.

von Andreas K. (a-k)


Lesenswert?

Andersrum ausgedrückt: Es darf sich innerhalb der Zeit von 4ns vorher 
und 0ns nachher nicht ändern. Womit es also das Gegenteil von deiner 
These ausdrückt. Nun beruhigt?

von Ingo (Gast)


Lesenswert?

>vorher (vor was?) ankommen muss.

da ist genau mein denkfehler.. welchen zeitbezug haben den die 4ns setup 
time? ist die für alle datenbusleitungen gleich (also gleich lang und 
zur gleichen zeit beginnend?)

wenn es einen zeitpunkt gibt, ab dem diese 4ns für alle inputs anfängt 
und ein bit erst 6ns später ankommt ist es doch zu spät, oder?

Ingo

von Andreas K. (a-k)


Lesenswert?

Vielleicht klappt's so: Die setup time entspricht den 1-2 Stunden, die 
du vor dem Abflug nach Mallorca am Airport sein solltest und wenn du zu 
spät kommst (setup time violation) oder vor dem tatsächlichen Abflug 
wieder ausrückst (hold time violation) fliegen sie halt ohne dich.

EDIT: Oder, wenn nicht eingehalten, sie werden sauer und verfrachten 
dich als Terrorist (Behinderung des Verkehrs) nach Gitmo. Um den 
Vergleich etwas passender zu gestalten.

von Andreas K. (a-k)


Lesenswert?

> wenn es einen zeitpunkt gibt, ab dem diese 4ns für alle inputs anfängt
> und ein bit erst 6ns später ankommt ist es doch zu spät, oder?

Wenn man auf den Kopf steht, sieht die Welt irgendwie verkehrt aus. Und 
so geht es dir. Die 4ns fangen nicht irgendwann an, sondern enden nur 
irgendwann. Nämlich mit dem Referenzzeitpunkt, was immer das ist - NB: 
ich würde mich da gern etwas weniger abstrakt ausdrücken, weiss aber 
immer noch nicht um welche Signale es eigentlich geht.

von Felix (Gast)


Lesenswert?

Da will ich auch mal ne frage zu stellen...
Timings im Datenblatt:
http://www.atmel.com/dyn/resources/prod_documents/doc6221.pdf
Seite 763 ..

Also die Setup Zeit sagt wann vor Clock Fallend die Daten da sein 
müssen, die Hold Zeit wie lange die Daten nach Clock Fallend noch 
anliegen müssen.

In dem Fall also 0.2ns vor Clock da und bis 1.1ns nach Clock.. das heißt 
ja bei 100MHz Takt also 10ns sind 8.7ns Zeit die Daten an den Controller 
anzulegen, also knapp 130cm darf quasi die längste Leitung sein (?) was 
ja schon relativ unrealistisch ist..

Die Out Valid Time sagt wann der Controller die Daten vor Clock anlegt 
bzw. nach Clock noch anliegen hat ?

THX

von Andreas K. (a-k)


Lesenswert?

> In dem Fall also 0.2ns vor Clock da und bis 1.1ns nach Clock.. das heißt
> ja bei 100MHz Takt also 10ns sind 8.7ns Zeit die Daten an den Controller
> anzulegen, also knapp 130cm darf quasi die längste Leitung sein (?) was
> ja schon relativ unrealistisch ist..

Das hast du in wirklich jeder Hinsicht falsch verstanden. Aber noch 
deutlicher als vorhin kann ich mich nicht mehr ausdrücken.

von Ingo (Gast)


Lesenswert?

>Vielleicht klappt's so: Die setup time entspricht den 1-2 Stunden, die
>du vor dem Abflug nach Mallorca am Airport sein solltest und wenn du zu
>spät kommst (setup time violation) oder vor dem tatsächlichen Abflug
>wieder ausrückst (hold time violation) fliegen sie halt ohne dich.

das hab ich verstanden - aber der fall, dass ich zu spät am flughafen 
bin (die daten nicht innerhalb der setup time ankommen) darf ja nicht 
auftreten. Und einen direkten Zeitbezug gibt es somit auch, weil das 
flugzeug nur einmal startet.

ok die daten dürfen früher ankommen als die 4ns --> die setup time 
könnte biliebig lange sein. Jedoch werden die daten nicht beliebig früh 
auf die reise geschickt vom µC z.B. an einen speicher. --> ich muss 
wissen wie lang die längste strecke eines bits ist und diese zeit auf 
der längsten leiterbahn auf alle bits umrechnen und diese somit 
entsprechend früh losschicken - mnanche kommen dann 6ns vorher an und 
das letzte 4ns (was der setup-time im datenblatt entspricht) an - und 
alles ist gut...

beim rückflug muss ich wider die längste leitung in der berechnung 
berücksichtigen...


so?

von Andreas K. (a-k)


Lesenswert?

> Also die Setup Zeit sagt wann vor Clock Fallend die Daten da sein
> müssen, die Hold Zeit wie lange die Daten nach Clock Fallend noch
> anliegen müssen.

Wobei dein "Clock" hier die NRD Leitung ist, und sich das auf dessen 
steigende Flanke bezieht. So du SMC19/20 meinst.

von Andreas K. (a-k)


Lesenswert?

> ok die daten dürfen früher ankommen als die 4ns --> die setup time
> könnte biliebig lange sein. Jedoch werden die daten nicht beliebig früh
> auf die reise geschickt vom µC z.B. an einen speicher.

Hättest du die Güte, nicht mittem im Satz das Schlachtfeld zu wechseln. 
Eben noch Lesezyklus, jetzt auf einmal Schreibzyklus. Bleib mal bei 
einem und verstehe den, dann nimm den nächsten.

von Ingo (Gast)


Lesenswert?

sorry, da rattert es dann plötzlich zu schnell im gehirn -. aber so 
müsste es stimmen, oder?

von Andreas K. (a-k)


Lesenswert?

Kleiner gut gemeinter Tip: Wenn du mit diesem Kenntnisstand ein 133MHz 
SDRAM an einen ARM9 kleben willst, dann wird das höchstwahrscheinlich 
nicht aufgrund deiner Rechnung funktionieren, sondern allenfalls 
deshalb, weil Atmel diese Rechnung wahrscheinlich schon gemacht und das 
Verhalten von SDRAMs im Timing des Controllers berücksichtigt hat.

Und wenn du davon mehrere dranhängen willst: Vergiss es. Sei froh wenn's 
mit einem funktioniert. Weiteres zu diesem Thema setzt Kenntnisse 
voraus, für die man in einem E-Technik-Studium längere Zeit büffeln darf 
(behaupte ich als dummer Informatiker jetzt mal - und würde davon selber 
die Finger lassen). Weil's mit Zeiten allein nicht getan ist.

von Andreas K. (a-k)


Lesenswert?

> sorry, da rattert es dann plötzlich zu schnell im gehirn -. aber so
> müsste es stimmen, oder?

Keine Ahnung. Hat für mich zu schnell gerattert.

von Ingo (Gast)


Lesenswert?

also so wie ich das aus deiner erklärung herausgehört habe, ist es doch 
so, dass jedes Bit die im Datenblatt angegebene Setup-Time möglichst 
auch einhalten sollte. Daher fängt man mit dem DAtensenden so früh an, 
dass das Bit mit der längsten Leitung früh genug ankommt, damit die 
Setup-Time eingehalten werden kann. Dass die anderen Bits schon viel 
länger am SDRAM anliegen ist völlig egal...

so hab ich das verstanden...

von Andreas K. (a-k)


Lesenswert?

> auch einhalten sollte. Daher fängt man mit dem DAtensenden so früh an,
> dass das Bit mit der längsten Leitung früh genug ankommt, damit die
> Setup-Time eingehalten werden kann. Dass die anderen Bits schon viel
> länger am SDRAM anliegen ist völlig egal...

Also bei welchen Zyklus sind wir grad? Lesezyklus oder Schreibzyklus? 
Konkret bei welchen Signalen und welchen Zeiten im Datasheet (Name!)?

von Ingo (Gast)


Lesenswert?

setup-time ist doch nur bei einem schreibzyklus vorhanden? also wenn die 
daten vom µC in den SDRAM geschrieben werden. Ein Datensheet hab ich 
nicht...

aber wenn die setup-time 4ns ist, die die daten am sdram anliegen 
müssen, müssen die daten spätestens beim µC abgeschickt werden, so dass 
gilt t = tsetup + tleiterbahn(längste) --> so dass manche Bits (auf 
kürzeren Bahnen) länger als die 4ns setup time warten müssen und das Bit 
welches die längste strcke zurücklegen muss genau die 4ns setup time hat 
bevor es in den sdram geschrieben wird.

Ingo

von Andreas K. (a-k)


Lesenswert?

> setup-time ist doch nur bei einem schreibzyklus vorhanden?

Nein. Beim Lesezyklus gibt's das auch, diesmal seitens des Controllers.

> aber wenn die setup-time 4ns ist, die die daten am sdram anliegen
> müssen, müssen die daten spätestens beim µC abgeschickt werden, so dass
> gilt t = tsetup + tleiterbahn(längste)

Mal so herum ausgedrückt: Wenn die Laufzeit auf der Leitung gross genug 
ist, um dir die Suppe zu versalzen, dann ist diese einfache Rechnung 
schon falsch, weil Aspekte von Hochfrequenztechnik und Platinenlayout 
mit einbezogen werden müssen. Also mach die Leitung kurz und vergiss die 
Laufzeit. Oder studier E-Technik, mit ein paar Postings lässt sich das 
nicht ersetzen.

von Volker (Gast)


Lesenswert?

d.h. die buslängen sind nur ab bestimmte frequenzen bezüglich 
high-speed-design-rules kürzer zu halten? weil die rise time steigt etc. 
- ansonsten müsste terminiert werden

von Ingo (Gast)


Lesenswert?

ja sowie ich das verstanden habe, spielen bei höheren frequenzen nur 
noch die high-speed high-frequency effekte eine rolle, warum die max. 
buslänge kürzer sein muss...

daher muss auch bereits die clk-leitung kürzer ausgeführt werden als die 
datenleitungen.

Ingo

von Andreas K. (a-k)


Lesenswert?

> d.h. die buslängen sind nur ab bestimmte frequenzen bezüglich
> high-speed-design-rules kürzer zu halten?

Wobei dann unter Frequenz nicht (nur) die Datenrate zu verstehen ist, 
sondern auch die Flankensteilheit. Je steiler die Flanke, desto kürzer 
die ohne zusätzliche Massnahmen vertretbare Leitungslänge.

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.