Hallo Wieder mal ne kleine Bestätigungsfrage: Stimmt es, dass diese typischen kleinen SRAM-ICs (ca8-32 k x 8 Bit) von ihrer Ansteuerung her völlig kompatibel sind? (ausser Adressbreite, maximale Geschwindigkeit und evtl. Pinzuordnung) Gruss Michael
Hallo, was ist "typisch"? Bei den CMOS-Rams 2kx8 (6216), 8kx8 (6264), 32kx8 (62256) und deren Abkömmlingen kann man sagen ja. Bei den Cache-Rams soweit auch, auch kompatibel zu den CMOS-Rams, wenn man sie z.B. an einen AVR hängt. Die Cache-Rams haben meist noch spezielle Ansteuerzyklen, um schneller zugreifen zu können, die variieren von Hersteller zu Hersteller durchaus. Im Zweifelsfalle also der Blick ins Datenblett. Am Memory-Interface von 8515, Mega8515 und Mega162 liefen bei mir mir bisher eigentlich allem die ich gerade in einer Kiste fand. Gruß aus Berlin Michael
> Am Memory-Interface von 8515, Mega8515 und Mega162 liefen bei mir mir > bisher eigentlich allem die ich gerade in einer Kiste fand. Das wollte ich hören, danke :-)
hört sich so in etwas an wie: speicherzugriffsverfahren - synchron & asynchron : lesen / schreiben ich glaube so eine nettes und vor allem einfaches und überschaubares tutorial wäre echt toll, ich weiß aber nicht ob ich das zustande bekommen würde.
> ich glaube so eine nettes und vor allem einfaches und überschaubares > tutorial wäre echt toll, ich weiß aber nicht ob ich das zustande > bekommen würde. Einen Leser hättest du auf jeden Fall :-) (Wobei das ansteuern von diesen Standard-SRAMs eigentlich wirklich nicht schwer, und die Datenblätter meist ausführlich sind.)
Daumenregel: SRAMs die man irgendwo rausgezogen hat oder reinstecken kann (d.h. DIP-Gehäuse verfügbar) sind einfach gestrickt und bis auf 3,3V/5V-Versorgung ziemlich identisch anzusteuern. Muss man sie aus/einlöten (also nicht in DIP-Gehäuse erhältlich), dann wird die Chose komplizierter.
> was hat denn nun die gehäuse form mit zugriffszyklen zu tun ? ;)
Daumenregel :-)
Noch ne Frage zu den 8515ern - wie schnell bzw. langsam wollen die ein
SRAM? Ich vermute mal, die Geschwindigkeit, die man bieten muss, hängt
von der Taktfrequenz ab?
Hallo, @Jaipur Boucheron: naja, das ist doch aber logisch... Teste, wie oft in der Sekunde Du einen SRAM im DIL-Gehäuse mit 2 Fingern von der Tischplatte aufnehmen und wieder ablegen kannst. Nun cersuche das mit einem SMD-Typ. Gibt es Einfluß auf die Zugriffszyklen oder nicht? ;-) Gruß aus Berlin Michael
Hallo, bei den alten CMOS-Rams dürfte das langsamst, was Du findest -15 sein, das sind da 150ns, da sind da sind dann eben Waits ab ca. 8MHz fällig. -12 und -10 dürften höchstens bei 16MHz an die Grenze kommen. Die Cache-Rams fangen wohl so bei -25 an, da das sind aber 25ns... :) Gruß aus Berlin Michael
Michael U. wrote:
> -12 und -10 dürften höchstens bei 16MHz an die Grenze kommen.
Erklär mal wie ein 120ns RAM die Daten bei 16MHz in <1 Takt (<62,5ns)
die Daten liefern soll.
Hallo, das XMEM-Interface benötigt 4 Takte, es läuft asyncron... Interessant finde ich in dem Zusammenhang, daß in der Befehlsbeschreibung für lds und sts jeweils 2 Takte angegeben sind. Wieviele Takte braucht ein AVR bei lds r0,0x0060 lds r1,0x0061 lds r2,0x0062 ??? Gruß aus Berlin Michael
6 Takte ist, doch klar. Gegenfrage: Wie lange braucht folgender Code auf einem mega8151 ohne waitstates: lds r0,0x1060 lds r1,0x1061 lds r2,0x1062 Du hast auch meine vorhergehende Frage noch nicht beantwortet.
also ich würde mich schon darüber freuen wenn mich jetzt mal jemand wenigstens ein bisschen über die timings aufklären könnte. ich bin mir hier leider immer noch nicht im klaren welche werte ich einhalten muss. mir gelingt es leider nur sehr schwer diese diagramme zu lesen, danke!
Es ist etwas schwer zu sagen, da eine Menge Timingparameter stimmen müssen. Mal einige aus dem Datenblatt zusammengefasst: 2/Fclk - 20ns muss größer sein als die Zugriffszeit vom SRAM. Hier sind 100ns ist die Grenze. Weiterhin muss gelten: 1/Flck - 50ns muss größer sein, also das SRAM braucht um die Daten anzulegen wenn man OE\ aktiviert (meist als TdOE bezeichnet). Damit dieser Wert bei 16MHz ohne Waitstate eingehalten wird, braucht man schon einen RAM mit <35ns. Ich hatte aber auch mit 55ns RAMs keine Probleme. Allerdings darf der Bus dann nicht belastet sein, also keine weiteren Sachen wie lange Leitungen, LCDs o.a. am Bus hängen ! Die Werte habe ich versucht aus dem Datenblatt zu interpretieren, also keine Garantie dass diese Aussagen stimmen !
Hallo, @Benedikt K.: doch habe ich, siehe oben: "das XMEM-Interface benötigt 4 Takte, es läuft asyncron..." Damit ist die Zykluszeit bei 16MHz ohne Wait 250ns. Kritisch ist offenbar die Datenvorhaltezeit, der Übergang Adresse Low -> Daten im Takt 2 ist nicht sicher definiert. Diagramme Datenblatt Mega8515 ab Seite 26. Deshalb ja auch meine Frage oben: lds r0,0x1060 braucht 2 Zyklen Das XMEM-Interface braucht aber 4 Zyklen. Was macht der AVR, wenn direkt ein zweiter lds folgt bis XMEM fertig ist? Dauert dieser lds (und folgende) dann 4 Zyklen oder gar 7 mit gesetzen Wait-Zyklen? Gruß aus Berlin Michael
Hallo, ich habe nur ein Datenblatt von HM62256 zur Hand, beim langsamsten angegeben mit -8 ist die Write cycle time 85ns, die Write pulse width 55ns, das würde also noch in die 62,5ns bei 16MHz reinpassen. Da /WR als leztes aktiv wird, startet es den Schreibvorgang. Die Daten müssen erst 35ns vor dem Ende von /WR gültig sein, die liegen aber schon bei der fallenden Flanke von /WR, also 62,6ns vorhher an, das passt auch. Gut, bei 120ns ist es zu knapp, da dürfte Write pulse width bei 90ns. Bei 1 Wait (/WR ist dann 125ns aktiv) müßte auch das schon gehen). Gruß aus Berlin Michael
zurück zu den speicherzugriffsverfahren: synchron - lesen / schreiben allgemein gilt: gültigkeit der adresse, gültigkeit des datums, übernahme des datums - der master legt die adresse für eine ganz bestimmte zeit auf den bus, innerhalb dieser zeit muss der slave reagieren können. bei einem 8051 liegt diese zeit bei einer freuqnz von 12MHz zwischen 300ns bis 500ns. in dieser zeit muss die zeit von dem speicher liegen. diese liegen um die 70ns. das ganze pasiert nach dem anlegen von dem /RD bzw /WR signal, das ist so zusagen der startschuss. der 8051 hält also seine daten viel länger als notwendig "offen" falls ich falsch liegen sollte, würde ich mich natürlich über jede berichtigung freuen :)
> was hat denn nun die gehäuse form mit zugriffszyklen zu tun ? ;)
Ähnlich viel, wie die sinkende menschliche Geburtenrate mit dem Rückgang
der Storchenpopulation. Ursächlich garnichts.
Es ist nur so, dass die einfach gebauten asynchronen SRAMs technisch
überwiegend aus Zeiten stammen, in denen man noch oft mit DIL Gehäuse
arbeitete. Komplexere SRAM Ansteuerungen, wie beispielsweise
burst-SRAMs, sind dann nur noch in SMD-Gehäuse auf dem Markt gekommen.
Ich habe leider keine Infos zu der Zeit für ld auf externen Speicher gefunden, ich gehe aber von 3 Takten aus. Schaut man sich den internen Zugriff an (der 2 Takte benötigt): Es werden zwar auch 3 Takte dargestellt, der letzte ist aber nur die Vorbereitung für den nächsten Zurgiff. Das würde auch vom logischen her am besten passen: Der externe Zugriff ist identisch mit dem internen Zugriff + 1 Zusatztakt für ALE. Ob ein zweiter ld danach folgt oder nicht ist egal, das sieht man ja im Datenblatt: Nach 3 Takten ist man wieder an der selben Stelle und es wiederholt sich der Zyklus. Ich denke die kritischste Stelle ist das was im mega8515 Datenblatt unter Punkt 10 steht: "Read Low to Data Valid:" 1/Flck - 50ns Das setzt sich aus "Data Setup to RD high:" 40ns und "RD Pulse width:" 1/Fclk - 10ns zusammen: 1/Fclk - 10ns - 40ns = 1/Flck -50ns Das macht bei 16MHz Takt also 12,5ns Zeit zwischen OE\ Low und Daten müssen anstehen ! Somit scheiden alle RAMs über 50ns aus. RAMs mit 55ns laufen, aber nur wenn man eine Timingverletzung in Kauf nimmt. Für alle anderen RAMs braucht man also Wait States.
Hallo, naja, da kann man wirklich nur Diagramme und Datenblätter studieren... Nach dem Datenblatt des Hitachi 62256 gehen dann selbst 40ns-Typen da nicht ohne Wait, toe ist da schon mit 30ns angegeben. Gruß aus Berlin Michael
Will man bei AVRs und voller Taktfrequenz ohne Waitstate arbeiten, sind Cache-SRAMs nötig, wie man sie auf 486/Pentium Mainboards fand. Allerdings sollte man deren Stromverbrauch sowohl bei der Versorgung als auch beim Layout beachten. Theoretisch könnte man die OE-Zugriffszeit zwar auch anders angehen, aber da sich dem Datasheet die Adresszugriffszeit nicht eindeutig entnehmen lässt, ist das witzlos.
Auf 486er- Platinen waren üblicherweise 8 Stück 32k*8 und ein "TAG-Ram" mit nur 8k verbaut, also aufpassen, die 8 mit gleicher Typbezeichnung sind die richtigen.
Ich hatte auch schon Mainboards mit 8x 8kB. Die 32kB SRAMs erkennt man an de 256 bzw 257 in der Bezeichnung.
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.