mikrocontroller.net

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


Autor: Malte Struebert (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Eddi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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? ;-)

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Malte Struebert (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.