Autor Tema: Programa en el PIC16F876A se "congela", y no puedo borrarlo o sobreescribirlo.  (Leído 2352 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado marcunni24

  • PIC10
  • *
  • Mensajes: 10
Buenas!
Estoy teniendo un problema con un PIC16F876A, pero fundamentalmente, con su grabación.
Lo había posteado en:
http://www.todopic.com.ar/foros/index.php?topic=37751.0
(los dos últimos posts)

Sin embargo, me parece que el problema ya no es el mismo, por eso abro un tema nuevo.

Resumiendo: Al grabar los PICs, me resultaba imposible sobreescribir y/o borrar el programa existente. 
Usé el PickIt 2, el PickIt 3 (programadores).  Nada me funcionó. Una vez que el PIC se "tara", no tuve forma de poder borrarlo y reutilizarlo.
Como lo había programado sin desactivar la protección de datos, creía que el problema venía por ese lado. Pero ahora la cosa cambió...

Probé también con otro software, el MPLAB IDE v8.60. Tuve los mismos resultados.

Al final compré otro PIC (ya el tercero  :(), y lo programé teniendo la precaución de configurar bien los bits del CONFIG para sacar todas las protecciones. Me anduvo bien, pude escribir, borrar, y leer los datos.

Lo probé en un protoboard, y anduvo bien. Luego tuve que hacerle unas modificaciones, y luego de grabarlo dos veces más, me vuelve a pasar lo mismo.
Ahora, como el código NO está protegido, en lugar de los 0000 que tenía antes, me muestra el código.
PERO....es como si el código se hubiese quedado fijo. Una vez más, no puedo borrarlo, no puedo grabarlo, y siempre leo lo mismo....

¿Puede ser que se haya quemado algo? A lo mejor tengo algo mal en la protoboard. De igual manera, me parece muy extraño, porque el PIC sigue funcionando bien, con el último programa que pude cargarle. Ya voy por el tercer pic. Si alguien tiene alguna idea o sugerencia, se la agradezco de verdad... ya no sé qué más hacer..

Saludos

Martín

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Programa en el PIC16F876A se "congela", y no puedo borrarlo o sobreescribirlo.
« Respuesta #1 en: 31 de Octubre de 2013, 14:01:02 »
Compra un PIC mas barato !! :D :D

Fuera de broma, ese PIC quedo muy caro en relación a los superpoderosos que valen la mitad que ese.

No se cual sea tu problema, verificaste con que tension lo alimentas??
Si se pasa de 5,4Volts no deja que lo programen, me paso con un PIC18F...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Programa en el PIC16F876A se "congela", y no puedo borrarlo o sobreescribirlo.
« Respuesta #2 en: 01 de Noviembre de 2013, 09:33:33 »
  Supongo que también puede llegar a ser que VPP no sea suficientemente alta.... no recuerdo bien pero me parece que no puede ser inferior a 12V o 13V
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado marcunni24

  • PIC10
  • *
  • Mensajes: 10
Solucionado: No puedo borrar o sobreescribir un PIC16F876A
« Respuesta #3 en: 02 de Noviembre de 2013, 01:26:59 »
No sé si se podría decir que "encontré una solución"... más bien me advirtieron de una falla. Y la comparto acá por si a alguien en algún momento le sirve. Es para darle una alternativa más a quien esté en la misma situación.
Después de probar todas las alternativas que leí en distintos lados, ya me había dado por vencido con buscar una solución por software. Entonces, volví a revisar los registros (seguía pensando que era un problema con la configuración, o algo semejante).

El problema estaba en la configuración del puerto B. A cada pin del puerto B se le pueden habilitar las resistencias pull-up internas. Esto se hace con el bit 7 del registro OPTION_REG. Lo había puesto en 0 en lugar de en 1. 

bit 7 RBPU: PORTB Pull-up Enable bit
1 = PORTB pull-ups are disabled
0 = PORTB pull-ups are enabled by individual port latch values

Luego, en mi protoboard, ponía todas las entradas que no utilizaba (para ir testeándolo de a partes) a masa. Con lo cual, lo que termino pensando que pasó (esto sumado a una realización bastante floja del protoboard, que después tuve que revisar y 'robustecer') es que quemé el puerto B completo.

O por lo menos, se jodieron los pines RB6 y RB7, que casualmente son los usados para programar.
No estoy 100% seguro que haya sido eso. El PIC no se calentó, ni dio señal alguna. Simplemente perdió toda conexión, y ya no fue posible leerlo, ni escribirlo. Aunque el software si lo reconocía como un 16F876A.

Desde que modifiqué el registro OPTION_REG, (y acomodé un poco las conexiones falso-contacteras del protoboard), ya grabé/borré/leí unas 40 veces el nuevo PIC.  :lol:

Como dije antes, dejo esto sólo como una opción más a tener en cuenta. Veo que la imposibilidad de borrado/grabación de pics es un tema recurrente en muchos foros, y en gran parte de los threads no llegan a una solución.

Gracias por los comentarios, MGLSOFT y AngelGris, y a los que se tomaron un rato para leerlo.

P.D: MGLSOFT, ¿cuál superpoderoso me recomendarías que salga la mitad que este?  :mrgreen:

Saludos!

Martín

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Programa en el PIC16F876A se "congela", y no puedo borrarlo o sobreescribirlo.
« Respuesta #4 en: 02 de Noviembre de 2013, 08:18:37 »
Un PIC18F26K80 o 16K22 ,salen la mitad, y son realmente una masa...

Aqui una comparacion (no son justamente los modelos) hecha en el presupuestador de Elemon...

Descripción                                                                                        Cant. Ofre.               Precio Unitario            Total              Stock
PIC16LF876-I/SO        MCU SMD 8K EE 8K 5ADC SOIC28                           0                       10.11000                    0.00   Consulte disponibilidad
PIC18F25K80-I/SO      28 SOIC 32 KB Flash, 3648 RAM, 24 I/O XLP   1                       5.85000                    5.85   Disponemos de Stock
                                                                                                  Total en Dolares Estadounidenses           $5.85   

Si miras las hojas de datos, veras las diferencias entre esto micros, por ejemplo, tienen osciladores internos que hacen que no precises utilizar un cristal, aun con comunicaciones muy precisas o tareas muy rápidas, ya que son muy precisos, por ejemplo hay uno que no usa cristal y maneja USB (normalmente precisan oscilar a 48 mhz).

Los micros viejos, van aumentando de precio, para desalentar su uso, aun así no los discontinúan como hacen otras marcas...
 
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.