Forum: Mikrocontroller und Digitale Elektronik Load Capacitance AT91RM9200


von Bernd (Gast)


Lesenswert?

Hallo,

an einen EBI (Daten- und Adressbus des µC), hab ich zwei Flashs und zwei 
SDRAMs installiert.

Die Load Kapazität vom µC ist für jeden Pin 10pF. die beiden 
Flash-Speicher haben eine Kapazität von 30pF bzw. 10pF (für Input und 
Output angegeben), die SDRAMs haben jeweils max. 6pF. --> ohne die 
Leiterbahnkapazität zu berücksichtigen hängt also insgesamt eine 
kapazität von 52pF an einem Pin des µC, der 10pF abkann.

Daher ist es wahrscheinlich von Nöten Bustreiber zu installieren, oder? 
Um die zu große Kapazität zu bewerkstelligen. Wenn ich mir einen 
Bustreiber anschaue, hat dieser aber auch schon alleine pro Pin 7.5pF, 
so dass ich pro IC (Speicher) einen Bustreiber installieren muss? 
Gleichzeitig benötige ich trotzdem 4 * 7.5pf = ca. 30pF die der µC nicht 
aufweist.

Bsp. für einen Bustreiber für 3.3V
http://www.ortodoxism.ro/datasheets2/4/08gg3jyae2y0f8839asu1lu0h1py.pdf

oder hab ich mich bei der load Kapazität von 10pF beim AT91RM9200 vertan

(im Datenblatt hab ich dazu gar nichts passendes gefunden)
atmel.com/dyn/resources/prod_documents/doc1768.pdf

sonder nur in einer Application Note
http://atmel.com/dyn/resources/prod_documents/doc2620.pdf

Bernd

von Andreas K. (a-k)


Lesenswert?

> Die Load Kapazität vom µC ist für jeden Pin 10pF.

Das ist nicht die Kapazität, die er treiben kann, sondern diejenige 
Last, die der Pin mit in die Leitung einbringt. Eine maximale Last gibt 
es meist nicht, nur werden mit steigender Lastkapazität die Flanken 
langsamer und damit das Zeitverhalten insgesamt.

von Andreas K. (a-k)


Lesenswert?

Innerhalb einer nicht allzu grossen Platine sind Bustreiber nur selten 
erforderlich.

von Bernd (Gast)


Lesenswert?

ah ok... d.h. zusammen mit dem jeweiligen Widerstand der ICs gibt das 
ein schönes RC-Glied und damit langsamere Rise-Times auf den 
leitungen...

Nimmt man für den R den Widerstand bei High-State von jedem IC in 
Betracht?

am langsamsten geht es ja dann auf den Datenleitungen D0-D7 und den 
Adressleitungen zu, da diese von jedem IC benötigt werden, sowie der 
OE-Leitung.

Bernd

von Bernd (Gast)


Lesenswert?

also wenn ich jetzt die R_out (high state) ausrechne komm ich auf 634 
Ohm, bei 56pF ergibt das eine Rise Time von ca. 78ns und somit nur noch 
einer max. Frequenz von 12.8MHz auf dem Daten und Addressbus.

Oder hab ich für R falsche Werte verwendet? R = max. VCC / max. 
Output-Strom

Bernd

von Andreas K. (a-k)


Lesenswert?

Deine Rechung bestimmt dem Mindestwert eines ohmschen Lastwiderstandes.

Besser: Voh = Vdd-0,4V bei 8mA. Also 0,4V/8mA = 50 Ohm.

von Andreas K. (a-k)


Lesenswert?

Übrigens: Warum nicht einfach mal das Datasheet lesen? Immerhin war 
Atmel sogar so freundlich, das Timing in Abhängigkeit von der 
Lastkapazität in grosser Detailfreude darzulegen.

von Bernd (Gast)


Lesenswert?

>Deine Rechung bestimmt dem Mindestwert eines ohmschen Lastwiderstandes

aber mein Widerstand ist doch viel größer als 50 Ohm beim µC? Wie kann 
das ein Mindestwert sein? 3.6V / 8mA = 450 Ohm?

Ich dachte man geht bei dieser Rechnung vom worse-case aus.

Bernd

von Andreas K. (a-k)


Lesenswert?

Na dann erklär nochmal, woher du die 634 kriegst, ich hatte diesen Teil 
nicht nachgerechnet weil so oder so falsch.

Ich nehme an, du beziehst dich auf das Absolute Maximum Rating vom Pin, 
und dort auf den DC Output Current. Nur hast du dabei grosszügig das 
"DC" übersehen. DC heisst hier Dauerstrom aka ohmsche Last, nicht 
Impulsstrom aka kapazitive Last. Mit deiner Logik wäre der Pin schon von 
seiner eigenen Pinkapazität überfordert ;-).

von Andreas K. (a-k)


Lesenswert?

Und was bei der Rechnung mit dem zulässigen(!!!) Strom rauskommt ist 
nicht der Innenwiderstand. Sondern eben der Strom der maximal dauerhaft 
fliessen darf, also der minimal zulässige Lastwiderstand.

Zur Illustration sei das Datasheet vom ATMega32 empfohlen, weil Atmel da 
freundlicherweise die Lastcharakteristik der eingebauten Pintreiber 
grafisch dargestellt hat (i/o pin sink/source current vs voltage). Was 
da zu sehen ist stimmt zwar nicht dem Wert nach aber doch dem Prinzip 
nach auch beim AT91RM9200.

von Bernd (Gast)


Lesenswert?

>Besser: Voh = Vdd-0,4V bei 8mA. Also 0,4V/8mA = 50 Ohm.

da hab ich nur nicht Vdd-0.4V sondern für den High-State max. VCC 
genommen. Output High-Level Voltage und Ioh = 8mA

und die Timings im Datenblatt geben an für die Datenleitungen D0-D15
SDRAMC19 Rise Time 1.3ns
SDRAMC20 Fall Time 0.03ns  --> oder wird das anders interpretiert?

und pro pF Load Capacitance die dranhängt verzögert sich das ganze um 
0.044 ns/pF bei der Rise Time und ebenfalls bei der Fall time.

--> bei einer Gesamtkapazität von 56pF ergibt sich eine Verzögerungszeit 
(nach dieser Rechnung) von 2.46ns.

Der SDRAM kann max. bei 80MHz arbeiten, wenn der Controller auf 180MHz 
läuft. bei 80MHz ergibt sich eine Zeit von 12.5ns und da machen die 
2.46ns nichts aus --> man braucht keinerlei Bustreiber etc. und kann es 
ohne bedenken anschließen?

Die Verzögerung muss ich dann nur beim Timing (Setup hold time) 
berücksichtigen bzw. hinzufügen, oder?

Bernd

von Andreas K. (a-k)


Lesenswert?

> SDRAMC19 Rise Time 1.3ns
> SDRAMC20 Fall Time 0.03ns

Nö. Rise/fall times und setup/hold times sind durchaus verschiedene 
Dinge.

> und pro pF Load Capacitance die dranhängt verzögert sich das ganze um
> 0.044 ns/pF bei der Rise Time und ebenfalls bei der Fall time.

Wobei die Verzögerung auf der SDCK Leitung dem engegenwirkt.

Wenn du anfängst, mit einstelligen Nanosekunden rumzurechnen, solltest 
du bedenken das du mit dem Äquivalent von ein paarhundert MHz rechnest 
und das Platinenlayout dementsprechend auslegen musst.

Um es deutlicher zu sagen: Du operierst hier in Bereichen weit jenseits 
deines (und meines) Kenntnisniveaus und wenn das am Ende funktionieren 
sollte, dann nicht weil du richtig gerechnet sondern weil du Glück 
gehabt hast.

Ein ARM9 mit SDRAM ist nicht wirklich der beste Einstieg in ein solches 
Thema.

von Bernd (Gast)


Lesenswert?

>Zur Illustration sei das Datasheet vom ATMega32 empfohlen, weil Atmel da
>freundlicherweise die Lastcharakteristik der eingebauten Pintreiber
>grafisch dargestellt hat (i/o pin sink/source current vs voltage). Was
>da zu sehen ist stimmt zwar nicht dem Wert nach aber doch dem Prinzip
>nach auch beim AT91RM9200.

d.h. der lastwiderstand geht gegen unendlich wenn Voh gegen VCC geht, 
weil der strom gegen null mA geht. mehr als trockene theorie kann ich 
hier aber nicht rauslesen.

von Frank (Gast)


Lesenswert?

>Wobei die Verzögerung auf der SDCK Leitung dem engegenwirkt.

wieso wirkt die SDCK-Leitung dieser Verzögerung entgegen?

Frank

von Andreas K. (a-k)


Lesenswert?

> d.h. der lastwiderstand geht gegen unendlich wenn Voh gegen VCC geht,

Wenn du ihm umdrehst ergibt der Satz sogar Sinn: Mit steigendem 
Lastwiderstand geht Voh gegen Vdd. Nur hat das rein garnichts mit dem 
Innenwiderstand zu tun. Der steckt nämlich in der Steigung der Kurve 
drin.

von Andreas K. (a-k)


Lesenswert?

> wieso wirkt die SDCK-Leitung dieser Verzögerung entgegen?

Sorry, ich war geistig beim Schreibzyklus. Da ist es so, beim Lesezyklus 
ist es umgekehrt, da addiert sich das (weshalb der Pin für SDCK dicker 
ist, d.h. der Innenwiderstand geringer).

von Frank (Gast)


Lesenswert?

>Wenn du anfängst, mit einstelligen Nanosekunden rumzurechnen, solltest
>du bedenken das du mit dem Äquivalent von ein paarhundert MHz rechnest
>und das Platinenlayout dementsprechend auslegen musst.

wenn er mit 80MHz Takt den SDRAM ansteuern möchte - 12.5ns - sind die 
knapp 2.5ns zusätzliche Verzögerung kein Problem , weil die Setup und 
Hold-Zeiten sich im Rahmen von ca.5ns spielt und somit noch genügend 
zeit auf der strecke für 20cm leiterbahn oder ähnlichem bleibt.

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.