Problema al grabar PIC con PICkit2

Cuando intento grabar un sencillo programa con pickit2 para que un led parpadee cada un segundo, me dice que hay un error en el valor OSCCAL (invalid value 3FFF) y después me da el error Program Failed at Program Memory Adress 0x000001.
Intente reparar lo del OSCCALL con la función de "Auto regenerate" de pickit2 pero lo único que obtengo es el error "Regenerating OSCALL failed! Unable to program part".

Realmente no me importa mucho el oscilador interno ya que en la mayoria trabajo con un oscilador externo de 12 MHZ. El problema es que no puedo grabarle nada, siempre me tira el mismo error. Incluso probe leyendo el dispositivo y grabando lo leído, pero sigue con el error Program Failed at Program Memory Adress 0x000001.

PD: Dejo adjuntada una imagen donde muestra el error.

Agradecería mucho su ayuda.

Saludos
 

Adjuntos

  • problema_pic12f629.png
    problema_pic12f629.png
    59.3 KB · Visitas: 49
Con el pic 16F876A anda perfecto el grabado del código, sólo tengo problemas con el 12F629 al momento de grabar.

La idea es poder utilizarlo ya que es un PIC económico, chico y bastante útil.
Lo que me parece curioso es que en el PICKIT2 clone que compré está impresa la ubicación donde tendría que ir el MOSFET (el cual no está). Puede ser que me pase como al usuario
"alejandro_oo" en el post https://www.forosdeelectronica.com/f24/programador-microcontroladores-pic-memorias-puerto-usb-pickit2-clone-18080/index66.html que tiene problemas con el PIC12F629.
Además al programar me sale un mensaje que dice "Pickit 2 VDD voltage level error. Check target and retry operation" por lo que supongo que hay problema con el grabado a 3.3V en el PIC.


En cuanto a la lectura del código esto es lo que obtengo:

Código:
3FFF	0CCC	3333	3FFF	3FFF	0CCC	3333	0CCC
3FFF	3FFF	3FFF	0CCC	3FFF	0CCC	3333	0CCC
3FFF	3FFF	3333	0CCC	3333	3FFF	3333	3FFF
3333	3FFF	3333	0CCC	3333	3FFF	3FFF	0CCC
3333	0CCC	3FFF	0CCC	3FFF	3FFF	3FFF	0CCC
3333	0CCC	3333	3FFF	3FFF	0CCC	3333	3FFF
3333	0CCC	3FFF	3FFF	3333	3FFF	3FFF	0CCC
3FFF	3FFF	3FFF	0CCC	3FFF	0CCC	3333	0CCC
3FFF	3FFF	3333	0CCC	3333	0CCC	3333	3FFF
3FFF	3FFF	3333	0CCC	3333	3FFF	3FFF	3FFF
3333	0CCC	3333	0CCC	3333	0CCC	3FFF	0CCC
3333	0CCC	3333	0CCC	3FFF	0CCC	3333	0CCC
3333	0CCC	3FFF	3FFF	3333	3FFF	3333	0CCC
3333	0CCC	3FFF	3FFF	3333	0CCC	3333	0CCC
3FFF	3FFF	3333	0CCC	3FFF	0CCC	3FFF	0CCC
3FFF	0CCC	3333	0CCC	3333	0CCC	3333	3FFF
3333	0CCC	3333	0CCC	3333	3FFF	3FFF	0CCC
3333	0CCC	3333	3FFF	3333	3FFF	3333	0CCC
3FFF	3FFF	3333	0CCC	3333	0CCC	3FFF	0CCC
3333	0CCC	3FFF	0CCC	3333	3FFF	3FFF	0CCC
3333	0CCC	3333	0CCC	3FFF	3FFF	3333	3FFF
3333	0CCC	3333	3FFF	3333	0CCC	3333	0CCC
3333	3FFF	3FFF	3FFF	3333	0CCC	3333	0CCC
3FFF	3FFF	3333	0CCC	3333	0CCC	3333	0CCC
3FFF	3FFF	3333	0CCC	3333	0CCC	3FFF	3FFF
3333	0CCC	3FFF	0CCC	3333	3FFF	3FFF	3FFF
3333	0CCC	3333	0CCC	3333	3FFF	3FFF	3FFF
3333	0CCC	3FFF	3FFF	3FFF	0CCC	3333	0CCC
3333	0CCC	3FFF	3FFF	3FFF	0CCC	3333	0CCC
3333	3FFF	3FFF	0CCC	3333	0CCC	3333	0CCC
3FFF	3FFF	3333	3FFF	3FFF	3FFF	3FFF	3FFF
3FFF	0CCC	3333	0CCC	3333	0CCC	3FFF	3FFF
3FFF	3FFF	3FFF	0CCC	3333	0CCC	3333	0CCC
3333	3FFF	3333	3FFF	3333	0CCC	3333	3FFF
3FFF	3FFF	3FFF	0CCC	3333	0CCC	3FFF	3FFF
3333	0CCC	3333	0CCC	3FFF	3FFF	3FFF	3FFF
3333	0CCC	3333	3FFF	3FFF	3FFF	3333	0CCC
3FFF	0CCC	3333	3FFF	3FFF	0CCC	3333	0CCC
3333	0CCC	3333	0CCC	3333	0CCC	3333	0CCC
3333	3FFF	3FFF	0CCC	3333	0CCC	3333	0CCC
3FFF	3FFF	3FFF	0CCC	3333	0CCC	3333	3FFF
3FFF	0CCC	3333	0CCC	3333	0CCC	3FFF	3FFF
3333	3FFF	3333	0CCC	3FFF	3FFF	3333	0CCC
3333	0CCC	3333	3FFF	3FFF	0CCC	3333	0CCC
3333	0CCC	3FFF	3FFF	3FFF	0CCC	3333	0CCC
3333	3FFF	3FFF	3FFF	3333	3FFF	3333	0CCC
3FFF	3FFF	3333	0CCC	3333	0CCC	3FFF	3FFF
3FFF	0CCC	3FFF	0CCC	3333	0CCC	3FFF	3FFF
3FFF	3FFF	3FFF	3FFF	3333	0CCC	3333	0CCC
3333	3FFF	3FFF	0CCC	3333	0CCC	3FFF	0CCC
3FFF	3FFF	3333	0CCC	3333	0CCC	3FFF	3FFF
3FFF	0CCC	3333	0CCC	3333	0CCC	3FFF	3FFF
3333	0CCC	3333	0CCC	3333	3FFF	3FFF	0CCC
3FFF	0CCC	3333	3FFF	3FFF	0CCC	3333	0CCC
3FFF	3FFF	3FFF	3FFF	3333	3FFF	3333	0CCC
3333	0CCC	3FFF	0CCC	3333	0CCC	3FFF	0CCC
3FFF	3FFF	3FFF	0CCC	3333	0CCC	3333	0CCC
3FFF	3FFF	3333	3FFF	3333	0CCC	3333	0CCC
3FFF	0CCC	3333	0CCC	3333	3FFF	3FFF	0CCC
3FFF	0CCC	3333	0CCC	3FFF	3FFF	3333	0CCC
3333	0CCC	3333	0CCC	3FFF	3FFF	3333	0CCC
3333	3FFF	3FFF	3FFF	3333	0CCC	3333	0CCC
3FFF	3FFF	3FFF	0CCC	3333	0CCC	3333	0CCC
3FFF	3FFF	3FFF	0CCC	3333	0CCC	3333	3FFF
3333	0CCC	3FFF	3FFF	3FFF	0CCC	3333	0CCC
3333	0CCC	3FFF	0CCC	3FFF	0CCC	3333	0CCC
3333	3FFF	3333	0CCC	3333	0CCC	3333	0CCC
3FFF	3FFF	3333	0CCC	3333	0CCC	3FFF	3FFF
3FFF	0CCC	3333	0CCC	3333	0CCC	3FFF	3FFF
3333	3FFF	3333	0CCC	3333	3FFF	3333	0CCC
3333	0CCC	3333	3FFF	3FFF	3FFF	3FFF	0CCC
3333	0CCC	3FFF	3FFF	3FFF	0CCC	3333	0CCC
3333	3FFF	3FFF	3FFF	3333	0CCC	3333	0CCC
3FFF	3FFF	3333	0CCC	3FFF	0CCC	3333	3FFF
3FFF	0CCC	3333	0CCC	3333	0CCC	3FFF	3FFF
3333	3FFF	3333	0CCC	3FFF	3FFF	3FFF	0CCC
3333	0CCC	3333	0CCC	3FFF	3FFF	3FFF	0CCC
3333	0CCC	3333	3FFF	3FFF	0CCC	3333	0CCC
3333	3FFF	3FFF	3FFF	3333	0CCC	3333	0CCC
3FFF	3FFF	3FFF	0CCC	3333	0CCC	3333	0CCC
3333	0CCC	3333	3FFF	3333	0CCC	3333	0CCC
3333	0CCC	3333	0CCC	3FFF	0CCC	3333	0CCC
3FFF	3FFF	3333	0CCC	3333	0CCC	3333	3FFF
3FFF	3FFF	3333	0CCC	3333	0CCC	3FFF	3FFF
3333	0CCC	3333	0CCC	3333	3FFF	3FFF	0CCC
3333	0CCC	3333	3FFF	3FFF	3FFF	3333	0CCC
3333	0CCC	3333	3FFF	3FFF	3FFF	3333	0CCC
3333	0CCC	3FFF	3FFF	3333	0CCC	3333	0CCC
3FFF	3FFF	3FFF	0CCC	3FFF	0CCC	3333	0CCC
3FFF	3FFF	3333	0CCC	3333	0CCC	3FFF	3FFF
3333	3FFF	3333	0CCC	3333	0CCC	3FFF	0CCC
3333	0CCC	3FFF	0CCC	3FFF	3FFF	3FFF	0CCC
3333	0CCC	3333	0CCC	3FFF	0CCC	3333	3FFF
3333	0CCC	3333	0CCC	3333	0CCC	3333	0CCC
3333	3FFF	3FFF	3FFF	3FFF	0CCC	3333	0CCC
3FFF	3FFF	3FFF	0CCC	3333	0CCC	3333	0CCC
3333	3FFF	3FFF	0CCC	3333	0CCC	3333	0CCC
3333	0CCC	3FFF	0CCC	3333	3FFF	3333	3FFF
3FFF	3FFF	3333	0CCC	3333	0CCC	3333	3FFF
3FFF	0CCC	3FFF	0CCC	3333	3FFF	3FFF	0CCC
3333	0CCC	3333	0CCC	3333	3FFF	3FFF	3FFF
3FFF	3FFF	3FFF	3FFF	3FFF	3FFF	3333	0CCC
3333	0CCC	3333	3FFF	3FFF	0CCC	3333	0CCC
3333	3FFF	3FFF	3FFF	3333	0CCC	3333	0CCC
3333	3FFF	3333	0CCC	3333	0CCC	3333	3FFF
3333	3FFF	3333	0CCC	3333	0CCC	3FFF	3FFF
3FFF	0CCC	3FFF	0CCC	3333	3FFF	3FFF	0CCC
3333	0CCC	3333	0CCC	3FFF	3FFF	3333	3FFF
3333	0CCC	3333	3FFF	3333	0CCC	3333	0CCC
3333	0CCC	3FFF	3FFF	3FFF	0CCC	3333	0CCC
3333	3FFF	3FFF	3FFF	3333	3FFF	3333	0CCC
3FFF	3FFF	3333	0CCC	3333	0CCC	3FFF	3FFF
3FFF	3FFF	3FFF	3FFF	3FFF	3FFF	3FFF	0CCC
3333	3FFF	3333	0CCC	3333	0CCC	3333	0CCC
3FFF	3FFF	3FFF	0CCC	3333	0CCC	3333	3FFF
3FFF	0CCC	3333	0CCC	3333	0CCC	3FFF	3FFF
3333	0CCC	3333	0CCC	3333	3FFF	3FFF	0CCC
3333	3FFF	3FFF	3FFF	3FFF	0CCC	3333	0CCC
3333	0CCC	3333	3FFF	3FFF	0CCC	3333	0CCC
3333	3FFF	3FFF	3FFF	3333	3FFF	3333	0CCC
3FFF	3FFF	3FFF	0CCC	3333	0CCC	3333	0CCC
3FFF	0CCC	3FFF	0CCC	3333	0CCC	3FFF	3FFF
3333	0CCC	3333	3FFF	3333	0CCC	3FFF	3FFF
3333	0CCC	3333	0CCC	3FFF	3FFF	3333	0CCC
3FFF	0CCC	3333	3FFF	3FFF	0CCC	3FFF	3FFF
3333	0CCC	3FFF	3FFF	3333	3FFF	3333	0CCC
3333	3FFF	3FFF	0CCC	3333	0CCC	3333	0CCC
3FFF	3FFF	3FFF	0CCC	3333	0CCC	3333	3FFF


Ahora ya conseguí mas datos pero, ¿Cómo lo soluciono?
 
Hola, por lo que veo no soy el unico que tiene problemas con estos enanos. A veces despues de la segunda programada se me muere. No me da problemas con el vaor de OSCCAL sino con el otro parametro, BANDGAP. No creo que sean mas delicados que los demas PIC. ¿Que sera?... Utilizo un programador JDM
 
Me imagino que el programador tendrá un conector ICSP (In Circuit Serial Programing), te diría que pongas al micro en una breadboard y lo alimentes con una fuente externa, te explico como es por si no sabes hacerlo (si sabes saltá al párrafo siguiente): en el programa del pickit2 pones "Force Target", ubicá en el datasheet del pic cuales son los pines Vdd, Vss (GND), PGD (ICSPDAT), PGC (ICSPCLK) y Vpp (MCLR). Después del conector ICSP ubicas los esos mismos pines, los conectas en la breadboard. En Vdd del pic tenes que poner el positivo del fuente externa no pongas vdd del programador, las masas las tenes que juntar (fuente externa/programador) y listo con eso ya deberías poder programar con fuente externa..

Me puse a ver el data del pic que tenes y veo que es de 5v, no lo estarás poniendo en 3,3v por error? o miré mal el data? (nunca he usado pic's de 3,3v). Por otro lado si tu programador no tiene un Mosfet o no podes apagar la alimentación desde la pc (en verdad para este caso deberian faltar dos mosfet) o no podes variar la tensión de salida (a demás de faltar un mosfet tiene que faltar un amplificador operacional).

En el programa del PICKIT2, si vas a help -> PICKIT 2 User's Guide, al final de ese PDF tenes el circuito original del pickit, ahí podrias determinar cual es el mosfet que le falta y ver si falta algo más..

Espero que te sirva de algo la info.. salu2...
 
Me imagino que el programador tendrá un conector ICSP (In Circuit Serial Programing), te diría que pongas al micro en una breadboard y lo alimentes con una fuente externa, te explico como es por si no sabes hacerlo (si sabes saltá al párrafo siguiente): en el programa del pickit2 pones "Force Target", ubicá en el datasheet del pic cuales son los pines Vdd, Vss (GND), PGD (ICSPDAT), PGC (ICSPCLK) y Vpp (MCLR). Después del conector ICSP ubicas los esos mismos pines, los conectas en la breadboard. En Vdd del pic tenes que poner el positivo del fuente externa no pongas vdd del programador, las masas las tenes que juntar (fuente externa/programador) y listo con eso ya deberías poder programar con fuente externa..

Me puse a ver el data del pic que tenes y veo que es de 5v, no lo estarás poniendo en 3,3v por error? o miré mal el data? (nunca he usado pic's de 3,3v). Por otro lado si tu programador no tiene un Mosfet o no podes apagar la alimentación desde la pc (en verdad para este caso deberian faltar dos mosfet) o no podes variar la tensión de salida (a demás de faltar un mosfet tiene que faltar un amplificador operacional).

En el programa del PICKIT2, si vas a help -> PICKIT 2 User's Guide, al final de ese PDF tenes el circuito original del pickit, ahí podrias determinar cual es el mosfet que le falta y ver si falta algo más..

Espero que te sirva de algo la info.. salu2...

muchisimas gracias, mañana lo pruebo y te cuento los resultados.

Hola, por lo que veo no soy el unico que tiene problemas con estos enanos. A veces despues de la segunda programada se me muere. No me da problemas con el vaor de OSCCAL sino con el otro parametro, BANDGAP. No creo que sean mas delicados que los demas PIC. ¿Que sera?... Utilizo un programador JDM

Te comento, yo soy bastante novato, pero por todo lo que busqué, encontré casos así donde la gente activava la casilla MCLR en la primera programación y al quererlo programarlo devuelta no podían porque se prendía y se reseteaba (es algo así, no me acuerdo exactamente, pero el problema estaba en el MCLR). Una de las soluciones era borrar el pic completamente y volver a programar.

Espero que te haya servido, repito, soy muy novato en eléctronica y mas con los pics, así que puede ser que me equivoque.
 
Última edición:
Quizás no sea de mucha ayuda pero yo también tengo un programador de PIC's clónico del PICkit como este

Programador, y ahorita leyendo este tema, revisé en mi programador y dentro de la gran variedad de PIC's que puede programar me he dado cuenta que ese que mencionas no. Quizá se deba el elemento que dices que falta (no he comparado el diseño del programador con el del PICkit), y ningún clónico del Pickit lo puede programar. En caso de que fuera ese el problema, porque no intentar con otro uC. Leyendo hojas de datos de algunos uC's creo que te convendría usar el PIC16F630, está en un encapsulado un poco más grande (14 pines) pero en cuanto a funciones es similar.
 
Quizás no sea de mucha ayuda pero yo también tengo un programador de PIC's clónico del PICkit como este

Programador, y ahorita leyendo este tema, revisé en mi programador y dentro de la gran variedad de PIC's que puede programar me he dado cuenta que ese que mencionas no. Quizá se deba el elemento que dices que falta (no he comparado el diseño del programador con el del PICkit), y ningún clónico del Pickit lo puede programar. En caso de que fuera ese el problema, porque no intentar con otro uC. Leyendo hojas de datos de algunos uC's creo que te convendría usar el PIC16F630, está en un encapsulado un poco más grande (14 pines) pero en cuanto a funciones es similar.

Los que uso y sí funcionan son los PIC16F876A y 18F2550. Los dos funcionan de maravilla sin ningun inconveniente
 
Aja por eso se me hace raro que no funcione con el que deseas. Te digo puede ser problema del soft o algo así. ¿Ya intentaste actualizar el software del programador?, de la página de Microchip se puede descargar el archivo del SO del programador... quizá actualizándolo lo pueda programar (No lo garantizo)
 
Aja por eso se me hace raro que no funcione con el que deseas. Te digo puede ser problema del soft o algo así. ¿Ya intentaste actualizar el software del programador?, de la página de Microchip se puede descargar el archivo del SO del programador... quizá actualizándolo lo pueda programar (No lo garantizo)

Probé con el firmware 2.1, 1.21 y 1.20 en el software del pickit2 sobre Windows y con el 1.21 en piklab sobre Ubuntu, Linux y todos me devuelven error. En cambio con los otros dos PICs funciona bien.

Ahora estoy probando como dijo AND_77 (al final me entusiasmé y lo empezé a hacer ahora)
 
Yo tengo un clon del pickit que es full.. y veo que está en la lista de micros que es soportado (también sale que es soportado en el MPLAB). Es buena la opción que dice Daniel.. fijate si te hace falta actualizar el firm del pickit, en help->about te abre una ventana y donde dice OS Firmware Versión tiene que decir 2.32, si sale esa versión no intentes reprogramarlo porque es la última, a mí una vez que lo intenté actualizar se me colgó (por suerte tenía otro 18F con el firm del pickit grabado).

Acabo de ver tu nuevo mensaje.. en about del programa del pickit me sale esto:

Application versión 2.61.00
Device file versión 1.61.00
OS Firmware versión 2.32.00

Estoy seguro que os firmware y application version son las últimas.
 
Yo tengo un clon del pickit que es full.. y veo que está en la lista de micros que es soportado (también sale que es soportado en el MPLAB). Es buena la opción que dice Daniel.. fijate si te hace falta actualizar el firm del pickit, en help->about te abre una ventana y donde dice OS Firmware Versión tiene que decir 2.32, si sale esa versión no intentes reprogramarlo porque es la última, a mí una vez que lo intenté actualizar se me colgó (por suerte tenía otro 18F con el firm del pickit grabado).

Acabo de ver tu nuevo mensaje.. en about del programa del pickit me sale esto:

Application versión 2.61.00
Device file versión 1.61.00
OS Firmware versión 2.32.00

Estoy seguro que os firmware y application version son las últimas.

Ahora mismo estoy en linux (casi no uso windows) y me acuerdo que cuando lo actualize pro ultima vez quedo en la 2.32. En cuanto el software lo reinstalé hace 1 semana por el mas unevo, y el problema persiste.

Por ahora estoy peleando con los pines del ICSP, ahora en un rato lo termino y posteo los resultados

Me rindo, mañana voy a comprar un adaptador para los pines del ICSP porque con los cables se me complica y no puedo hacer que reconosca el PIC.
 
Última edición:
GRACIAS! Finalmente conseguí los pines para el ICSP, monté todo en el breadbord con la fuente externa y lo grabó perfectamente. Use una fuente de 3V conectada a VDD, junte las masas y listo!.
Muchísimas gracias a todos y en especial a AND_77 por el consejo.
 
B.D. colegas he hecho programas en c en el compilador ccs con el 16f84a y funcionan de maravilla, estoy iniciando con el 12f675 pero tengo problemas, realice un programa sencillo en el simulador isis corre perfecto pero cuando cargo el pic con el pickit2 parece que cargará el primer programa que le instalé no modifica que creen que pueda ser y gracias de ante mano. a el programa es este:

#fuses INTRC_IO,NOWDT,NOPUT,NOPROTECT,NOCPD,NOMCLR,BROWNOUT
#use delay(int=4000000)

void main(void)
{
output_low( PIN_A1 );
while ( TRUE ) // Ciclo infinito
{

output_high( PIN_A1 ); //LED on
delay_ms( 250 ); // Retardo 250ms
output_low( PIN_A1 ); //LED on
delay_ms( 250 ); // Retardo 250ms
}
}

al encenderlo tiene que realizar la rutina, pero no lo hace y verifico haber si descarg'o el programa con el pickit2 y me dice todo correcto.
 
Hace pocos días comencé a aprender sobre microcontroladores y pics.
C
ompre el Pickit2 y el Pic18f4550 cargue el primer código en el pic sin problemas todo bien pero al querer cargar otro código, que según el software había sido cargado exitosamente, este no hacia lo que el nuevo código supondría hacer, sino que se quedo con el primer código escrito.
A
hora aunque borre, grabe nuevo código el pic solo hace únicamente lo del primer código cargado.
N
i un simple código de parpadeo de led puedo cargar.
H
e actualizado el firmware del Pickit2, he revisado 1000 veces las conexiones y no tengo idea de que es lo que pueda estar pasando,
 
Última edición por un moderador:
Atrás
Arriba