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.
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
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.
Wie wär's mit SRAM und einer Pufferbatterie bzw. -Akku z.B. über MAX690 ? Ist dann auch gleich Reset und Watchdog mit drin.
@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? ;-)
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?
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.
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...
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.
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
@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
@ 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.