Problema al borrar PIC16F876A con All Protect

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
 
M

Miembro eliminado 356005

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.
 
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 .
 

D@rkbytes

Moderador
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
 
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!
 
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.
 

D@rkbytes

Moderador
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
 
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.
 

D@rkbytes

Moderador
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.
 
Hola colegas un saludo a todos, estoy intentando borrar un pic16LF874A, en una placa mediante ICSP, no he podido porque tiene el CP activado, me deja escribir en el Config, lo borro casi completo menos el CP, he intentado casi todo, claro menos la solución correcta, pero aún no la he encontrado, en el datasheet explica algo con el LVP, pero tampoco llego, estoy usando el TL866A como programador. Alguien por favor que me pueda ayudar.
 

D@rkbytes

Moderador
estoy intentando borrar un pic16LF874A, en una placa mediante ICSP
Si es de la serie LF se necesita programar en modo de bajo voltaje usando el pin LVP
no he podido porque tiene el CP activado
Eso no importa. Cuando se borra un PIC se borra todo, incluyendo los bits de configuración.

estoy usando el TL866A como programador
Verifica si tiene la opción para cambiar del modo HVP a LVP
Si no la tiene, tendrás que usar otro programador que sí la tenga. Como un PICkit, 2, 3 o 4 u otro sencillo que sí tenga modo de programación en bajo voltaje.
 
Gracias colega. Me has traído el alma al cuerpo otra vez.
Tengo que buscar otro programador porque este no me da esa opción, comenzaré una búsqueda.
T
engo un Arduino Uno y quizás se pueda usar para programar ICSP
 
Si es de la serie LF se necesita programar en modo de bajo voltaje usando el pin LVP

Eso no importa. Cuando se borra un PIC se borra todo, incluyendo los bits de configuración.


Verifica si tiene la opción para cambiar del modo HVP a LVP
Si no la tiene, tendrás que usar otro programador que sí la tenga. Como un PICkit, 2, 3 o 4 u otro sencillo que sí tenga modo de programación en bajo voltaje.
Colega, sabes me quedé con una duda, que revisaré en cuanto tenga lo del programador LVP, en el datasheet dice que siempre en HVP se puede programar y borrar el pic, no sé la diferencia con el Pic16 LF, estuve revisando y en el IC prog, muestran como programar en LVP por el COM1 solo con 4 resistencias de 10k, no se si usted ha visto esto, si fuera así es algo sencillo.
 

D@rkbytes

Moderador
En el datasheet dice que siempre en HVP se puede programar y borrar el PIC, no sé la diferencia con el PIC16LF
Todos los PIC cuentan con la opción de programarse en modo LVP y por defecto se encuentra habilitada.
Al estar habilitado el modo LVP el pin RB3 queda desactivado y solo sirve para programación.
Se desactiva declarando el fuse LVP en OFF
Estuve revisando y en el IC prog, muestran como programar en LVP por el COM1 solo con 4 resistencias de 10k, no se si usted ha visto esto, si fuera así es algo sencillo.
Pues sí, de hecho ambos modos de programación son sencillos.
Hace muchos años usaba el programador JDM con el ICProg o el WinPIC800
 
Todos los PIC cuentan con la opción de programarse en modo LVP y por defecto se encuentra habilitada.
Al estar habilitado el modo LVP el pin RB3 queda desactivado y solo sirve para programación.
Se desactiva declarando el fuse LVP en OFF

Pues sí, de hecho ambos modos de programación son sencillos.
Hace muchos años usaba el programador JDM con el ICProg o el WinPIC800
Colega un saludo espero estés bien, le cuento que ya pude borrar el pic, en efecto para borrarlo lo pude hacer con VIHH del programador, lo que si tuve que alimentarlo a 5 v como dice el datasheet, con el voltaje de trabajo normal que es de 2.9 v no borra el los fuses, graba el programa y la EEprom, pero no escribe en los fuses, cuando lo hacía me ponía error a la hora de verificar, me tenía loco, porque me decía que grababa todo pero después me salía un error entre el valor del bufer y el valor del chip que eran diferentes, y entonces me di cuenta que no estaba escribiendo en los fuses, los grabé con 5 v y después cada ves que les paso el programa le desabilito el grabado de los fuses y así logre que trabajara. Bueno gracias por todo, seguiré haciendo pruebas y si tengo otras dudas lo contactaré.
Gracias ..
 
Arriba