Problema en borrar PIC 16F876A all protect

#1
Estimados,
Tengo 5 PIC que fueron grabados por error con all protect (a pesar de que el codigo compilado de CCS tenia el fuse NOPROTECT creo que por una mala configuracion en el Software PicKit2 se grabaron asi).

Cuestion estuve investigando bastante y supuestamente las dos protecciones que posee este micro son:
PROTECT, impide que se lea el codigo que tiene cargado el micro.
CPD, protege los datos que tenga cargada la eeprom (solo la puede acceder el pic).

Teoricamente con activar la opcion "Use VPP First program entry" y borrar el micro seteando el voltaje a 4.5 / 5v deberia bastar, pero luego de mil pruebas nunca se termina borrando, siempre que leo el PIC me aparece todo en 0000 (codigo protegido) y me aparece la leyenda ALL PROTECT.

Probe con varias PCs, hasta probe con linux por linea de comandos y nada, no consigo borrarlos.

Tienen idea si estoy haciendo algo mal?
Alguien tuvo este problema?

Desde ya muchisimas gracias.

Prueba con PicKit2 *(ultima version)
allprotect.png
Prueba con PK2CMD
pk2cmd.png
Mi Programador
IMG-0861.JPG
 
#2
Es posible que los bits WRT1 y WRT0 estén impidiendo la escritura en diversas partes de la memoria Flash.

Tienes que intentar modificar el registro 2007h para que no haya protección ni en la parte de código ni en la parte de memoria de datos.
 
#3
Es posible que los bits WRT1 y WRT0 estén impidiendo la escritura en diversas partes de la memoria Flash.

Tienes que intentar modificar el registro 2007h para que no haya protección ni en la parte de código ni en la parte de memoria de datos.
Estimado ,
Muchas gracias por tu pronta respuesta .
No soy un gran conocedor de pics , estuve buscando y no encontre como hacer lo que mencionas .
Voy a seguir buscando mañana . Con el pickit2 que tengo podre hacerlo ?
Gracias nuevamente .
 
#4
Teóricamente con activar la opción "Use VPP First program entry" y borrar el micro seteando el voltaje a 4.5 / 5v debería bastar, pero luego de mil pruebas nunca se termina borrando, siempre que leo el PIC me aparece todo en 0000 (código protegido) y me aparece la leyenda ALL PROTECT.
Verifica que al dar el comando borrar, el voltaje de VPP en el pin 1 (VPP/MCLR) se encuentre próximo a los 13 V.
Ese es el nivel de voltaje que se requiere para escribir o borrar al PIC.

Para borrar el PIC no necesitas establecer ninguna configuración.
El valor del registro 0x2007 (Configuration Word) debe ser 0x3FFF cuando no ha sido grabado (Nuevo o virgen) o después de haber sido borrado.

Un truco para borrar los PIC con ese tipo de problema, es proporcionar los 13 V. con una fuente externa.
Simplemente se alimenta el pin (Vpp/MCLR) con los 13 V. y se presiona el botón Borrar. (Erase)

Sin embargo y por experiencia propia con este PIC, nunca he tenido problemas para borrarlo por ICSP, aunque estén protegidos.
16F876A Erased.jpg
 
#5
Verifica que al dar el comando borrar, el voltaje de VPP en el pin 1 (VPP/MCLR) se encuentre próximo a los 13 V.
Ese es el nivel de voltaje que se requiere para escribir o borrar al PIC.

Para borrar el PIC no necesitas establecer ninguna configuración.
El valor del registro 0x2007 (Configuration Word) debe ser 0x3FFF cuando no ha sido grabado (Nuevo o virgen) o después de haber sido borrado.

Un truco para borrar los PIC con ese tipo de problema, es proporcionar los 13 V. con una fuente externa.
Simplemente se alimenta el pin (Vpp/MCLR) con los 13 V. y se presiona el botón Borrar. (Erase)

Sin embargo y por experiencia propia con este PIC, nunca he tenido problemas para borrarlo por ICSP, aunque estén protegidos.
Ver el archivo adjunto 166367
Estimado,
Gracias por tu respuesta, el problema lo tengo con los pic que se pusieron en all protect, osea garbar y borrar lo venia haciendo lo mas bien hasta que por algun motivo que no conozco se me grabaron en all protect y no los pude volver a grabar.
Hoy a la tarde voy a verificar los voltajes como me indicas pero estimo estaran bien porque grabar los pude grabar.

Gracias!
 
#6
yo tenia un problema muy pareceido al tuyo. resulta que cambie de cable usb (el del programador) resulta que era un cable muy largo y con un calibre muy pequeño, y pues tenia perdida de voltaje.

suerte.
 
#8
por algún motivo que no conozco se me grabaron en all protect y no los pude volver a grabar.
Lo que mencionas como "All Protect" es habilitar los fuses CP (Flash Program Memory Code Protection bit) y CPD (Data EEPROM Memory Code Protection bit)
Estos bits de protección se activan cuando tienen el valor 0
CP Fuse.jpg
CPD Fuse.jpg
Activar la protección es muy normal y también es muy normal poder borrarlo o regrabarlo con otra palabra de configuración.

Aquí vemos el valor que tiene el registro 0x2007 que muestras con el PICkit: (0x0E42)
All Protect.jpg
Aquí más detallado con el WinPIC800:
All Protect WP800.jpg

Si todos los bits estuvieran en 1 se tendría el valor 0x3FFF que es cuando el PIC está nuevo o cuando se borra.
Config Bits.jpg
 
#9
Estimados,
Hoy volvi a hacer pruebas y los voltajes eran normales.
Probe con un cable usb nuevo sin exito.

desarme todo el programador (conexion entre plaquetas y pic), cuando me disponia a cortar un cable usb para alimentarlo en forma externa volvi a darle erase y funciono perfecto.

Resumen, estimo un contacto fallando me impedia borrar los micros.

Muchas gracias a todos por interesarse.

D@rkbytes Gracias especiales por la aclaracion, hoy tengo un poco mas de conocimientos.

Saludos.
 
#10
Desarmé todo el programador, (conexión entre plaquetas y PIC) cuando me disponía a cortar un cable USB para alimentarlo en forma externa, volví a darle erase y funcionó perfecto.

Resumen, estimo que un contacto fallando me impedía borrar los micros.
Siempre suceden cosas extrañas, pero casi siempre es debido a un falso contacto con los cables.
Yo normalmente conecto cables de los que se usan para conexiones en protoboard, directamente al PICkit.
Cuando alguno falla, simplemente no se reconoce el dispositivo.
Tu caso era extraño porque eran 5 microcontroladores.
Yo tuve un caso similar pero era con un microcontrolador, (PIC18F4550) lo podía leer pero no escribir.
Menos mal que no fue un dsPIC, porque esos sí son caros. :rolleyes:
Ese problema sucedió debido a un circo circote. :p (Corto circuito) :ROFLMAO:
Así que pude determinar que el problema se debió a ese suceso. :facepalm:
@D@rkbytes Gracias especiales por la aclaración, hoy tengo un poco más de conocimientos.
Por nada y qué bueno que solucionaste el problema.
Nunca olvides leer la hoja de datos, contiene mucha información importante.
 

Temas similares

Arriba