Forum: Mikrocontroller und Digitale Elektronik ESP-01: EEPROM klappt nicht :-(


von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Ich möchte in einem Programm für einen Sensor mit ESP-01 ganze drei 
Byte-Werte im EEPROM sichern. Aber es klappt nicht!

Schreiben mache ich so: (#include <ESP_EEPROM.h> ist dabei)
1
 void eeWrite(int addr, byte b)
2
 {
3
  EEPROM.begin(512);
4
  EEPROM.put(addr,b);
5
  EEPROM.commit();
6
  delay(50);
7
}

Ein probeweise nach dem Commit eingefügtes EEPROM.get liefert genau den 
gerade gespeicherten Wert. Also liegt der Verdacht nahe, dass es am 
Lesen liegt. Das mache ich so (im Setup-Bereich, diesmal direkt in die 
globalen Variablen vom Typ Byte):
1
void eeRead()
2
{
3
  EEPROM.begin(512);
4
  EEPROM.get(0,xpwr);
5
  EEPROM.get(1,xchn);
6
  EEPROM.get(2,xnam);
7
}

Eigentlich Bilderbuch-Code, oder? ABER: Es kommt IMMER Null zurück :-(

Ich weiss, dass die ESPs den EEPROM mit dem Spiff-Dateisystem im Flash 
simulieren, deshalb das Begin und Commit. Was könnte da schief gehen? 
Ich habe auch die 521 schon deutlich verringert (z.B. 8), kein Effekt 
...

: Bearbeitet durch User
von Mario M. (thelonging)


Lesenswert?

Die Position des für die EEPROM-Emulation genutzten Flash-Sektors  hängt 
von der Flash-Gesamtgröße ab. Wenn das Projekt für eine zu hohe 
Flash-Größe kompiliert wird, landen die Daten im Nichts.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Mario M. schrieb:
> Die Position des für die EEPROM-Emulation genutzten Flash-Sektors
> hängt
> von der Flash-Gesamtgröße ab. Wenn das Projekt für eine zu hohe
> Flash-Größe kompiliert wird, landen die Daten im Nichts.

Vielen Dank für den Hinweis. Ich habe im Menüpunkt Werkzeuge/Flashsize 
den Wert von 1MB auf 256K heruntergesetzt (den genauen Wert der Module 
kenne ich nicht). Aber es hat geholfen, nun funzt es so, wie es sollte. 
Danke!

von Stefan F. (Gast)


Lesenswert?

Frank E. schrieb:
> den genauen Wert der Module kenne ich nicht

Kannst du so herausfinden: 
http://stefanfrings.de/esp8266/index.html#fwupdate

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.