PIC EEPROM después de la reprogramación

Estaba tratando de hacer que mi EEPROM de lectura/escritura funcionara en mi PIC.

Primero programé un ciclo de escritura y luego lo reprogramé para leerlo. (Para evitar escribir cada vez que inicio el programa/imagen)

Pero afortunadamente descubrí que la reprogramación de su PIC hace que la EEPROM se... ¿cambie? Encontré una manera de arreglar esto, usando la configuración "Conservar EEPROM".

Mis preguntas sobre esto son:

  • ¿"Conservar EEPROM" escribe la EEPROM cada vez que programa su chip? (Entonces, reprogramar un millón de veces romperá teóricamente la EEPROM)
  • ¿Qué valor tiene la EEPROM después de programarla... (val != 0xFF)regresa? true¿Puedo decir que está corrupta después de la programación o obtiene un valor predeterminado que podría verificar?

Usando: (aunque es más teórico)

  • MPLAB X IDE
  • PICKIT3
  • PIC18F66K22
Normalmente, la memoria flash utilizada para la memoria del programa se desgastará antes que la EEPROM.
De hecho, estoy usando un PICKit3 (lo agregué a la pregunta). Y no lo sabía, pero ¿teóricamente sumará? O bueno, ¿"Preservar EEPROM" significa que reescribe la EEPROM?
Siempre he entendido que la configuración "preservar EEPROM" significa que la EEPROM se deja sola e ignorada, no que se lee, se borra y luego se vuelve a programar...
Hmm, de alguna manera pensé que mi ventana de salida hacía eco de algo como: Áreas de programación: Flash (0x00 to 0xFF) EEPROM. Pero no puedo replicar esto. ¿Usar preservar EEPROM no tiene ninguna desventaja? ¿Qué pasa con el valor de la EEPROM después de la programación (sin conservar), es 0xFF o undefined?
The following memory area(s) will be programmed: program memory: start address = 0x0, end address = 0x347f configuration memory EEData memorySalida del programador al programar el chip... ...a mí me parece que está 'reescribiendo' la EEPROM. Como dice area(s) will be programmed~EEData memory

Respuestas (1)

'Conservar EEPROM' sugiere que el contenido de la EEPROM no cambia cuando se reprograma el chip. No estoy seguro si significa que la memoria no se toca en absoluto durante el proceso. Podría involucrar a Pickit leyendo la EEPROM de datos, borrando todo el chip, programando el chip y luego escribiendo la EEPROM de datos con los valores antiguos.

Si está utilizando el modo Programmer-to-Go de Pickit, es posible que conservar la EEPROM no funcione así.

Si tiene el conjunto de fusibles CPD (Data EEPROM code-protected), entonces Pickit no puede leer la EEPROM. Puede solucionar esto con el comando 'Borrar bits de configuración'.

También una discusión en Microchip sugirió que la opción 'Borrar todo antes de programar' anula la configuración 'Conservar EEPROM'.

Todavía no estoy seguro de si lo vuelve a escribir. Pero en realidad no importa tanto, ya que la memoria flash probablemente se agotó antes.