Hola! Estoy teniendo un problema similar al que mencionan acá. Programé un 16F876A con el software PickIt 2, y un programador clon que compré.
Al momento de grabar, (por apurado..), no revisé la Configuration Word, y aparentemente me quedó activada la protección de memoria de programa y eeprom.
Inicialmente, pude programar el PIC correctamente. El problema surge, al intentar re-programar al mismo. Si quiero escribir un nuevo programa, me muestra: "Program failed at Program Memory address 0x000001".
Si quiero borrarlo, me dice que la operación se completó correctamente, pero luego al hacer una lectura, me muestra que el contenido de la memoria de programa son todos 0000 (en lugar de los 3FFF que debería encontrar).
Además, aparece la sentencia 'All Protect'. Esto, me está indicando que el PIC se grabó como protegido. Lo extraño es que, hasta lo que entiendo, los fusibles que configuré estarían correctos (utilice el Proteus, y los fusibles: Config HS_OSC, PWRTE_ON, CPD_OFF, WDT_OFF, BODEN_OFF, LVP_OFF ,DEBUG_OFF, CP_OFF, WRT_OFF).
Cuando importo el .hex al PickIt2, me aparece la Configuration Word: 1E32, la cual establece:
- Flash Program Memory Code Protection ACTIVADO!!
- In_Circuit debugger desactivado. Habilita usar RB6 y RB7 como pines I/O normales.
- Flash Program Memory Write Enable bits off
- Código de protección eeprom ACTIVADO - Programación de bajo voltaje desconectado
- No actúa el reset por bajada de tensión
- Reset de inicio conectado.
- Perro guardián desactivado
- Oscilador exterior para clock de 8Mhz.
No termino de entender porqué, si supuestamente los fusibles están bien configurados, a la hora de crear el .hex, los mismos aparecen diferentes. O al menos el de Code Protection. ¿No debería estar en Off si puse específicamente CP_OFF?
Y quizás más importante, la pregunta:
¿No hay alguna forma de re-programar el PIC aún cuando el mismo se encuentre protegido? Probé todas las opciones nombradas acá:
-Dejar sin marcar la opción de FAST Programming.
-Marcar la opción de USE VPP First Program Entry.
-Cambiar el cable USB por otro.
-Desceleccionar en programmer clear memory buffer on erase.
Pero ninguna me produjo un resultado distinto. El programa siempre me hace lo mismo.
Ya voy por mi segundo PIC "mal grabado".
Les agradecería cualquier comentario que me puedan hacer sobre esto.
Saludos
Martín