Sé por la hoja de datos que se establece automáticamente en un flanco ascendente del bit WR y se borra automáticamente al completarse con éxito. Por lo tanto, si todavía está encendido, entonces algo salió mal. Hasta ahora todo bien, pero ¿qué tan cerca debería verlo?
El chip que estoy usando para este proyecto (PIC16F1454) borra y escribe su memoria de programa en "filas" de 32 palabras cada una. Una escritura en esta memoria en realidad va a uno de los 32 cierres transparentes que corresponde a los bits más bajos de la dirección. Luego, si el bit LWLO está desactivado, la misma operación transfiere los 32 pestillos simultáneamente a la fila especificada por los bits superiores. Entonces, el procedimiento, dada una imagen de memoria, es borrar una fila si aún no lo está, configurar LWLO, llenar la fila excepto la última palabra, borrar LWLO y escribir la última palabra.
Durante este proceso, configuro WR para cada palabra como parte de la escritura del pestillo, por lo que WRERR también debe estar activado. Entonces, si la escritura es exitosa, WRERR vuelve a apagarse. La hoja de datos no dice si el pestillo tiene la tasa de éxito de RAM ordinaria o qué hacer si sale mal. Sí dice que todos los cierres se restablecen al valor borrado (0x3FFF) después de ser transferidos. ¿Es un problema llenar la fila y transferirla a ciegas, luego revisar WRERR y repetir la fila si es necesario? Si WRERR es bueno, verificaré los datos y repetiré si es necesario.
En otras palabras, ¿es posible fallar al escribir solo un pestillo?