Hallo, die grundsätzlichen Begriffe RAM, (Flash-)ROM, EEPROM sind mir bekannt. Doch momentan bin ich dabei einen geeigneten Mikrocontroller für ein Projekt auszusuchen und da tauchen bei mir doch einige Fragen gerade zur Abgrenzung dieser Speicher auf. Bei den RAMs z.B. gibt es den SRAM (Statischen RAM), ERAM (Extended RAM), den XRAM (Externer RAM), Scratchpad-RAM,... - und vielleicht gibt es ja noch mehr. Ich habe jedes dieser Worte einzelnd nachgeschlagen und sehe sie deshalb getrennt. Manchmal bin ich mir nicht ganz sicher, ob ich die richtig verstanden habe, um was es sich da handelt. Ich nehme doch an, daß diese RAMs alle, mit Ausnahme des XRAM, Teile eines Gesamt-RAMs sind, oder? Wie also stehen diese RAMs in Beziehung zu einander? Bedeutet z.B. bei einigen Mikrocontrollern SRAM = RAM? In einigen Datenblättern ist nun mal z.B. vom SRAM dann wieder von einem anderen die Rede. Und klar, Datenblätter erzählen nicht gerne von dem was der Mikrocontroller nicht hat. Mein Kernproblem also ist: Wie lassen sich Mikrocontroller mit derartigen verschiedenen Angaben vergleichen, was sind ihre Aufgaben? Kann mir hier vielleicht jemand einen Überblick zu diesen RAMs geben? Vielen Dank!
Zuallererst heit RAM nichts anderes als Random Access Memory. Also Speicher mit wahlfreiem Zugriff. Du mußt das RAM also nicht in einer bestimmten Reihenfolge (wie z.B. ein Magnetband) auslesen, sondern du kannst direkt nacheinander die Speicherzelle X und danach die Speicherzelle Y auslesen. > Bei den RAMs z.B. gibt es den SRAM (Statischen RAM), ERAM (Extended > RAM), den XRAM (Externer RAM), Scratchpad-RAM,... - und vielleicht gibt > es ja noch mehr. Jeder uC hatte schon immer ein paar Bytes RAM. Diese waren meist im Befehlssatz irgendwie verankert (z.B. beim 8048...). Weil die Programme aufwendiger und damit mehr Speicherplatz nötig wurde, wurde der erweiterte (extended) RAM oder ERAM eingeführt. Und wenn das nicht reichte konnte man an den uC zusätzlich Speicher aussen (extern) anschliessen: XRAM. Das Schratchpad-RAM ist einfach ein Schmierblatt, auf dem jeder herumkritzeln darf. Allerdings sind diese Begriffe herstellerabhängig und sagen nichts darüber aus, in welcher Technik der RAM-Speicher tatsächlich realisiert ist. Die Technik eines RAMs ist dann z.B. statisches RAM SRAM (das ist bei uCs üblicherweise eingebaut) dynamisches RAM DRAM synchrones dynamisches RAM SDRAM double datarate synchrones dynamisches RAM DDR-SDRAM und alle möglichen weiteren Kombinationen... http://de.wikipedia.org/wiki/Halbleiterspeicher Fazit: es ist im normalen Leben ziemlich unnötig zu wissen, wie ein RAM physikalisch aufgebaut ist. Es muß nur groß und schnell genug sein... ;-)
Lothar Miller schrieb: > Das Schratchpad-RAM ist einfach ein Schmierblatt, > auf dem jeder herumkritzeln darf. Wozu wird dann hier nochmal unterschieden? Vielen Dank auch für Deine Antwort!
Zwille schrieb: > Wozu wird dann hier nochmal unterschieden? Das ist einfach nur ein Name eines Programmierers für einen Speicherbereich. Wo dieses Schmierblatt liegt (im DRAM oder SRAM oder im internen Registersatz) wird mit diesem Begriff nicht festgelegt. Der eigentliche Witz: du kannst kein Scratchpad-RAM kaufen... :-o Du kannst aber irgendeinen Speicherbereich reserveieren und so nennen.
Fhutdhb Ufzjjuz schrieb: > hmmm ... ERAM ist bei Bascom auf AVR das interne EEPROM Ich zitiere mich: >>> Allerdings sind diese Begriffe herstellerabhängig und sagen nichts >>> darüber aus, in welcher Technik der RAM-Speicher tatsächlich >>> realisiert ist.
Ok, ich habe versucht die Reihenfolge der RAMs bzgl. ihrer Geschwindigkeiten aus dem Speichertutorial herauszulesen. Von langsam zu schnell: -PSRAM -DRAM -SRAM -SDRAM -DDR-SDRAM Bei den Remanenten Spreichern bin ich mir da nicht so sicher (MRAM, FRAM, EEPROM,...) Ihr dürft mich gerne korrigieren!
Lothar Miller schrieb: > Der eigentliche Witz: du kannst kein Scratchpad-RAM kaufen... :-o > Du kannst aber irgendeinen Speicherbereich reserveieren und so nennen. > D.h. also, wenn im Datenblatt von einem Scratchpad-RAM die Rede ist, daß ich einem Speicherbereich einen Namen oder diesen Namen vergeben kann und ähnlich wie bei einem Enummerationsbefehl diesen Namen statt der ersten Adresse verwenden kann?
Irgendwie fast schon trollig...
Du gibst in einer Programmiersprache sowieso jedem Speicher einen Namen.
Im allgemeinen sind das dann z.B. irgendwelche Variabeln (oder Arrays
oder Zeichenketten), die dann im Speicher liegen.
> wenn im Datenblatt von einem Scratchpad-RAM die Rede ist
Dann kommt das ganz darauf an, wozu das Datenblatt gehört. In einer vom
PC bekannten RTC gibt es ein paar Bytes, die nicht verwendet sind und
deshalb als Schmierzettel verwendet werden können...
Und gibt es ein Unterschied im Handling zwischen ERAM und XRAM, wenn beides on-chip untergebracht ist? Vermutung: Denke XRAM benötigt z.B. movx usw. während ERAM ganz normal angesprochen wird. ERAM gibt es z.B. weil der Vorgänger-uC diesen eben noch nicht hatte. Richtig?
Zwille schrieb: > Und gibt es ein Unterschied im Handling zwischen ERAM und XRAM, wenn > beides on-chip untergebracht ist? > > Vermutung: > Denke XRAM benötigt z.B. movx usw. während ERAM ganz normal angesprochen > wird. ERAM gibt es z.B. weil der Vorgänger-uC diesen eben noch nicht > hatte. > > Richtig? Falsch. Du kannst vermuten soviel du willst. Letzten Endes entscheidet immer das Datenblatt. Deine Vermutung kann stimmen, muss aber nicht.
Karl heinz Buchegger schrieb: > Du kannst vermuten soviel du willst. Letzten Endes entscheidet immer das > Datenblatt. Deine Vermutung kann stimmen, muss aber nicht. Das ist ja grauenvoll. Mir dämmert es jetzt so langsam, warum es so viel Zeit brauchen soll, von einer uC-Familie zur anderen zu wechseln, wenn schon innerhalb von z.B. AVR soviel Ungleichheit in den Datenblättern besteht. Bei manchen steht sogar so gut wie gar nichts drin, als ob der uC gerade noch in der ersten Entwicklunsphase steckt (z.B. ATmega1280). Gibt es denn noch weitere Vergleichslisten im Netz, als den Parametric Product Table von Atmel, die vielleicht in manchen Punkten etwas genauer sind? Wie geht Ihr da i.d.R. prinzipiell vor? Oder ist das normal, daß man ewig viel Zeit in die uC-Wahl steckt? Im Moment kann ich mir vorstellen, daß es leicht 3 Wochen werden. Bei mir sind 19 uC in die engere Wahl gekommen. Bevor ich jedoch die Auswahlkritterien ausweite möchte ich mir über den Vergleich bisheriger Punkte völlig im Klaren sein (Speicher, I/O, Timer,...) Oder ist das normal, daß man ewig viel Zeit in die uC-Wahl steckt? Im Moment kann ich mir vorstellen, daß es leicht 3 Wochen werden.
Zwille schrieb: > Bei manchen steht sogar so gut wie gar nichts drin, als ob der uC gerade > noch in der ersten Entwicklunsphase steckt (z.B. ATmega1280). Das könnte daran liegen, dass AVRs nur eine Sorte RAM haben und selbst extern angeschlossenes RAM sich in der Adressierung nicht von internem unterscheidet (nur im Tempo). 8051er (und Derivate) haben aber aus den bereits beschriebenen Gründen 3-4 getrennte RAM-Adressräume. Beim Design der AVRs hatte Atmel diesen Fehler vermieden. Wenn du also unbedingt einen Mikrocontroller mit IRAM, ERAM und XRAM benötigst, vielleicht um das Leben möglichst kompliziert zu gestalten, dann bist du bei AVRs völlig falsch und solltest dich beispielsweise bei Atmels anderer Typenreihe umsehen, den AT98ern. Die bieten das.
Zwille schrieb: > Das ist ja grauenvoll. Als du das erste Mal versuchst hast, auf 2 Beinen zu gehen, hat das auch ein wenig gedauert. Mittlerweile geht das hoffentlich schneller.
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.