PIC EEPROM nach Neuprogrammierung

Ich habe versucht, mein EEPROM zum Lesen / Schreiben auf meinem PIC zum Laufen zu bringen.

Ich habe zuerst einen Schreibzyklus programmiert und dann umprogrammiert, um ihn auszulesen. (Um nicht jedes Mal zu schreiben, wenn ich das Programm/Bild starte)

Aber ich habe glücklicherweise herausgefunden, dass die Neuprogrammierung Ihres PIC dazu führt, dass das EEPROM ... geändert wird? Ich habe einen Weg gefunden, dies zu beheben, indem ich die Einstellung "EEPROM beibehalten" verwende.

Meine Fragen dazu sind:

  • Schreibt "Preserve EEPROM" das EEPROM jedes Mal, wenn Sie Ihren Chip programmieren? (Eine millionenfache Neuprogrammierung wird also theoretisch das EEPROM beschädigen)
  • Welchen Wert hat das EEPROM, nachdem es programmiert wurde ... (val != 0xFF)kehrt zurück trueKann ich sagen, dass es nach der Programmierung beschädigt ist, oder erhält es einen Standardwert, den ich überprüfen könnte?

Verwendung: (obwohl es eher theoretisch ist)

  • MPLAB X-IDE
  • PICKIT3
  • PIC18F66K22
Typischerweise verschleißt der für den Programmspeicher verwendete Flash vor dem EEPROM.
Ich verwende tatsächlich ein PICKit3 (zur Frage hinzugefügt). Und das wusste ich nicht, aber wird sich das theoretisch summieren? Oder nun, bedeutet "Preserve EEPROM", dass das EEPROM neu geschrieben wird?
Ich habe die Einstellung "EEPROM erhalten" immer so verstanden, dass das EEPROM in Ruhe gelassen und ignoriert wird, nicht, dass es ausgelesen, gelöscht und dann neu programmiert wird ...
Hmm, ich dachte irgendwie, dass mein Ausgabefenster so etwas widerspiegelt: Programmierbereiche: Flash (0x00 to 0xFF) EEPROM. Aber ich bin nicht in der Lage, dies zu replizieren. Hat die Verwendung von EEPROM erhalten keine Nachteile? Was ist mit dem Wert des EEPROM nach dem Programmieren (ohne Erhaltung), ist es 0xFF oder undefined?
The following memory area(s) will be programmed: program memory: start address = 0x0, end address = 0x347f configuration memory EEData memoryProgrammierausgabe beim Programmieren des Chips... ...für mich sieht es so aus, als würde das EEPROM "umgeschrieben". Wie es heißt area(s) will be programmed~EEData memory

Antworten (1)

„EEPROM beibehalten“ weist darauf hin, dass der EEPROM-Inhalt nicht geändert wird, wenn der Chip neu programmiert wird. Ich bin mir nicht sicher, ob dies bedeutet, dass der Speicher während des Vorgangs überhaupt nicht berührt wird. Ich könnte Pickit dazu bringen, das Daten-EEPROM zu lesen, den gesamten Chip zu löschen, den Chip zu programmieren und dann das Daten-EEPROM mit den alten Werten zu schreiben.

Wenn Sie den Programmer-to-Go-Modus von Pickit verwenden, funktioniert die Beibehaltung des EEPROM möglicherweise nicht so.

Wenn Sie die CPD-Sicherung (Data EEPROM code-protected) gesetzt haben, kann Pickit das EEPROM nicht lesen. Sie können dies mit dem Befehl „Erase Configuration Bits“ umgehen.

Auch eine Diskussion bei Microchip schlug vor, dass die Option „Vor dem Programmieren alles löschen“ die Einstellung „EEPROM beibehalten“ überschreibt.

Ich bin mir immer noch nicht sicher, ob es neu geschrieben wird. Aber das ist eigentlich egal, da der Flash-Speicher wahrscheinlich früher abgenutzt ist.