Forum: Mikrocontroller und Digitale Elektronik Mega128 mit externem EEPROM?!


von Malte Struebert (Gast)


Lesenswert?

Hi,

da mir meine 4 Kbyte an interem EEPROM speicher nicht ausreichen und
ich die Daten auch nicht im Program Memory ablegen möchte, denke ich
darüber nach ob es möglich ist wie im Datenblatt beschreiben ein
externes EEPROM anzuschließen. Jetzt die Frage, im Datenblatt ist nur
immer von externem SRAM die rede? kann ich da ein einfaches 64kbyte
EEPROM anschließen? oder geht das nicht? was muß ich beachten? wieviel
langsamer als das interene EEPROM wird der Zugriff dann?

Gruß
Malte.

von Matthias (Gast)


Lesenswert?

Hi

nimm einfach ein externes, serielles (I2C oder SPI) EEPROM wenns nicht
zu schnell gehen muß mit dem Auslesen. Die Schreibrate ist bei
EEPROM's eh begrenzt so das die serielle Ansteuerung nicht mehr ins
Gewicht fällt.

Matthias

von Joerg Wunsch (Gast)


Lesenswert?

Um die ursprüngliche Frage zu beantworten:

Echter EEPROM läßt sich nicht wie RAM anklemmen, der wird völlig
anders adressiert.

Interessant könnte eventuell Atmels `dataflash' sein, sowas ist ja
sogar auf der AVR Butterfly mit drauf.

Es gibt auch Bausteine, die wie RAM adressiert werden und trotzdem
nichtflüchtig sind, ZMD hier in Dresden stellt sowas her
(http://www.zmd.de/ -> nvSRAM suchen), habe aber keine Ahnung, wie und
wo man sowas kaufen kann.

von Eddi (Gast)


Lesenswert?

Wie wär's mit SRAM und einer Pufferbatterie bzw. -Akku z.B. über MAX690
?
Ist dann auch gleich Reset und Watchdog mit drin.

von thkais (Gast)


Lesenswert?

@Joerg Wunsch:
Jetzt habe ich aber ein Problem. Ich habe in einigen meiner
Applikationen EEPROM genauso wie RAM angeschlossen (sogar
Pinkompatibel), und es funktioniert trotzdem. Habe ich etwas falsch
gemacht? ;-)

von Joerg Wunsch (Gast)


Lesenswert?

Wie machst Du die Wartezeit beim Schreiben?

Ich kenne pinkompatible EEPROMs zu PROMs, aber die brauchen trotzdem
eine Art ,Programmierimpuls'.

Klar, am Ende ist ZMDs nvSRAM wohl auch nicht viel anderes als das,
was Du da hast, jeder erfindet wohl seinen eigenen Namen dafür.
Welcher Typ ist das eigentlich?

von thkais (Gast)


Lesenswert?

Das mit der Wartezeit ist eine Frage der Software, diese Wartezeit ist
obligatorisch bei EEProms (sofern es keine Spezialtypen sind). Aber ich
muß keinen speziellen Programmierpuls erzeugen, es sind mehrere 28C64
in einem 80C535-System (12 Mhz Takt), die einfach an die Bussteuerung
(WE,RE,CE -> WR,RD,Adresslogik) angeschlossen ist. Der Schreibzyklus
wird im EEprom intern gehandhabt, auch wenn der WE-Impuls nur kurz ist.
Der 28C64 (kein NVRam, sondern echtes EEProm) ist Pinkompatibel zum
62C64 (=SRAM) und wird vom Timing genauso angesteuert.
Ein Problem ist natürlich das Beschreiben, falls direkt nach dem
Schreibvorgang Daten gelesen werden sollen (oder Programmcode). Wenn
ich mein Betriebssystem update, kopiere ich die Update-Routine vorher
in den RAM.

von Joerg Wunsch (Gast)


Lesenswert?

Ja, so ungefähr habe ich mir das auch vorstellen können.

Wäre mal interessant, ob diese nvSRAMs genauso arbeiten oder ob die
noch eine Trick gefunden haben, wie sich das Ganze wirklich als SRAM
darstellt...

von Malte Struebert (Gast)


Lesenswert?

Hi,

@thkais: also verstehe ich dich richtig das du ein echtes EEPROM quasi
wie ein SRAM angeschlossen hast und das läuft dann?

ich benötige das EEPROM als Datenspeicher für Configwerte o.ä.
diese sollen periodisch ausgelesen werden können und vom Prozessor
selber über eine RS232 schnittstelle von einem Laptop aus ebenfalls
überschreieben werden können...
soweit meine anforderungen...

Sind mit den 64k eigentlici Bit oder Byte gemeint?! also 64kbit oder
64kbyte?!? ich komm da immer durcheinander... ;-)

Wenn ich ein I²C Bus EEPROM nehme, wie langsam währe mein lesezugriff
auf das Teil, schreibzugriff ist erstmal nicht so wichtig...

Gruß
Malte.

von Matthias (Gast)


Lesenswert?

Hi

bei 400kHz I2C Takt und 4 zu übertragenden Bytes etwa 100µs für einen
Zugriff wenn du wahlfrei lesen willst. Sequenzielles Leses geht
deutlich schneller. Die Lesezeit geht dann gegen 25µs pro Byte.
Alternativ kannst du auch ein SPI-EEPROM (3-Draht) verwenden. Da sind
dann noch deutlich höhere Frequenzen möglich.
IMHO gibt es kaum einen Grund auf ein paralleles EEPROM
zurückzugreifen.

Matthias

von Peter D. (peda)


Lesenswert?

@Joerg,

"Echter EEPROM läßt sich nicht wie RAM anklemmen, der wird völlig
anders adressiert."


Warum funktioniert das dann aber bei mir ?

Sind denn die EEPROMs der 28Cxx-Serie nicht "echt" ?

Die Steuersignale und Adress-,Datenbusse sind jedenfalls 100%
SRAM-kompatibel.

Zu PROMS/EPROMs sind sie jedoch nicht pinkompatibel, da diese ja keinen
/WE-Eingang haben.


Der Lesezugriff macht keinen Unterschied. Und beim Schreiben ist es das
einfachste, das soeben geschriebenen Datenbyte zurückzulesen, bis es
identisch ist (Ready-Polling).
Lediglich, wenn man sehr schnell schreiben will, sollte man den
Page-Modus benutzen. Aber das sind Softwarefeinheiten.



@Malte,

aber um nicht nen Haufen Pins dafür zu verlieren, setze ich auch lieber
die I2C-EEPROMs (z.B. 24C512) ein.



Peter

von Klaus (Gast)


Lesenswert?

@ Malte Struebert

Wenn 64K angegeben sind dann sind 64.000 bit gemeint.
Nur wenn KB oder Kbyte dort steht ist auch byte gemeint.

mfg

Klaus Mehrle

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.