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
> 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.
Innerhalb einer nicht allzu grossen Platine sind Bustreiber nur selten erforderlich.
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
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
Deine Rechung bestimmt dem Mindestwert eines ohmschen Lastwiderstandes. Besser: Voh = Vdd-0,4V bei 8mA. Also 0,4V/8mA = 50 Ohm.
Ü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.
>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
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 ;-).
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.
>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
> 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.
>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.
>Wobei die Verzögerung auf der SDCK Leitung dem engegenwirkt.
wieso wirkt die SDCK-Leitung dieser Verzögerung entgegen?
Frank
> 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.
> 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).
>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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.