PICs que se pueden usar con PICKIT2 Starter Kit

#21
Si unicamente quiere programar el pic, sin que este en el circuito de aplicacion, se pueden obiar las resistencias y el circuito del MCLR, ese circuito lo que hace es aislar los trece voltios de programacion (Vpp) de la fuente de alimentacion cuando se conecta MCLR a traves de una resistencia a Vcc. Con respecto al diodo shokkcty yo siempre he colocado un 1n4148 y hasta el momento no he dañado ningun pic, tambien en lugar de un diodo puede colocar una resistencia de 1k.

Con respecto a VDD y GND se conectan directamente al +V y GND del pic, sin necesidad de nada externo
 
#22
muchas gracias morris888, he aprendido mucho con este tema q abriste hace algun tiempo, entonces, si solo qiero programar el pic en el proto sin el crcuito de aplicacion, no es necesario nada de reistencias, solo conectar directamente del pickit a los pines del pic, tal como muestra pepechip en su esquema q acaba de postear?

y se programaria de forma normal con el mplab o si lo prefiero con el pickit 2.

gracias, en este instante me voy por el pic 16F84 para empezar a conocer el mundo de los pics
 
#23
Hola a todos, programo siempre los pics con el famoso PICKIT2 sin problema para los de 40 pines... mediante una pcb, ahora lo quiero hacer directamente a los pines de un pic16f628a, lo conecto según la guía del pickit2, los 5 cables que dicen, pero al conectarlo al pc, me sale un error que dice algo referente al Voltaje vpp del pickit2, no se si haya necesidad de polarizar al micro durante la programación'??? en el pin de vdd.

también quisiera saber como selecciono que trabaje con oscilador interno de 4Mhz, lo hago mediante el código asm que manejo... o en las líneas que habitualmente coloco para poderlo programar con pickit2 q son estas..
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_OFF & _CONFIG INTRC_OSC & _BODEN_OFF & _LVP_OFF.

Muchas gracias.
 
#24
disculpen, el pickit 2 también puede programar memorias eeprom, alguien sabe que memorias son? .. ya mire la lista de alla arriva pero solo menciona pics..

saludos !!

******

no, no, no.. ya lei bien no me había dado cuenta-. hehe.. XD

11 Series Serial EEPROM Devices

11LC/AA010
11LC/AA020
11LC/AA040
11LC/AA080
11LC/AA160
24 Series Serial EEPROM Devices

24LC/AA/C00
24LC/AA01B, 02B, 04B, 08B
24LC/AA16B, 32A
24LC/AA/FC64, 128, 256, 512
24LC/AA/FC1025
25 Series Serial EEPROM Devices

25LC/AA010A, 020A, 040A
25LC/AA080A, 080B, 160A, 160B
25LC/AA320A, 640A
25LC/AA128, 256, 512, 1024
93 Series Serial EEPROM Devices

25LC/AA/C46A, 46B, 46C
25LC/AA/C56A, 56B, 56C
25LC/AA/C66A, 66B, 66C
25LC/AA/C47A, 76B, 76C
25LC/AA/C48A, 86B, 86C
 
Última edición:
#25
Buen día
He armado un quemador para PICs usb y utilizo el PICKIT2 para grabar en un 16f84a, lee y borra en el PIC pero a la hora de grabar no lo hace, no se que sucede.

Gracias
 
#26
El Pickit2 soporta una gama grande de Pics, incluyendo dspic, y tiene la particularidad de programar el pic ya montado en el circuito, y resulta muy facil utilizarlo, si necesitan los diagramas de conexión de cada pic con el PicKit2 sin poseer ningun zocalo me avisan, yo los poseo creo que todos...


Saludosss...
Hola!

Por si alguien está leyendo esto para decidirse o no a comprar un pickit2, comentaré que yo me compré uno y conseguí hacer un circuito que me fue muy práctico para controlar resistencias para calentar en función de una entrada analógica. Para mí fue genial ver funcionar el invento! así que lo recomiendo!
Después de un montón de tiempo he necesitado reproducir lo que hice aquella vez, y resulta que no consigo programar el 10f222. No se cómo lo conecté! y no me lo apunté!
Estoy intentando cargar el mismo archivo .hex y todo igual como lo hice pero me salen errores que me huelo que son causados por la manera en que lo he conectado. El pickit2 funciona bien por que sí puedo cargar programas ejemplo que venían con el kit y la plaquita entrenadora (la cual no es compatible con el 10f222)

Tendrías ese diagrama? o alguna idea? me da error de Vdd, y también de oscalc...

Un saludo! y gracias de antemano!

Adjunto diagrama que estoy intentando usar.
 

Adjuntos

#28
Sí, era el mismo.

Acabo de ver el diagrama que posteó pepechip (directamente al programador sin nada) y voy a probarlo ahora mismo a ver que hace...

El que programaste originalmente era un 10F222?
Muchas gracias por tu interés. Ahora te cuento

Bueno, se ha solucionado lo del Vdd, pero sigue dando el error del osccal.
Viendo el archivo PIC10F222 he visto que declara mcu osccal= 0X005. Si lo pongo manualmente en el pickit2 programer parece que graba el valor correctamente pero a partir de ahí ya ni reconoce el Pic cuando le das a verify..



Perdón, quería decir el archivo PIC10F222_registers.h
 
Última edición por un moderador:
#29
Bueno, se ha solucionado lo del Vdd, pero sigue dando el error del osccal.
Viendo el archivo PIC10F222 he visto que declara mcu osccal= 0X005. Si lo pongo manualmente en el pickit2 programer parece que graba el valor correctamente pero a partir de ahí ya ni reconoce el Pic cuando le das a verify..
El número 0x005 corresponde al registro asignado para OSCCAL.
Ese no es el valor que se asigna de fábrica para la calibración.

En este tipo de PIC es muy importante leer el valor de OSCCAL antes de grabarlo.
Ya que la borrar el PIC también se borrará el valor de calibración.
La hoja de datos del PIC10F222 dijo:
Este valor de calibración se encuentra en la última dirección de la memoria flash.

Para el PIC10F222 se encuentra en 0x1FF
Valor leído de OSSCAL.jpg
Existen algunas formas de recuperar el valor de calibración para OSCCAL.
Yo uso una muy sencilla, pero bastante efectiva.
Se trata de ir asignando un valor para OSCCAL hasta que se consiga una lectura correcta.
Para esto se graba un programa en el PIC y se procede a leer lo que arroja por RS-232.

Valor de OSCCAL por RS-232.jpg

Aquí se puede ver que hay dos lecturas correctas, así que el valor para OSCCAL puede ser 0x30 o 0x40.
Como previamente leí el valor, sé que el valor original de fábrica es: 0x30

Para asignarlo nuevamente se debe escribir 0CXX en la dirección 0x1FF
Donde 0C es un MOVLW y XX será el valor para OSCCAL. (En este caso: 0x1FF = 0C30)

Adjunto el programa en C (PCWHD) y el ejecutable (.hex) para grabar el PIC.
Como la lectura es por RS-232 se puede usar un adaptador USB.
Si la PC cuenta con puerto serie, entonces se puede usar un MAX-232 o transistores para adaptar los niveles a TTL.

En el programa adjunto también explico la forma de asignar el valor de OSCCAL con el PICkit.
Tal procedimiento será únicamente para el PIC con el OSCCAL perdido. (No servirá el mismo valor para otro PIC, porque no siempre es igual)
Yo uso el PICkit 3 y no me permite la edición del búffer.

PD:
Me parece que el PICkit 2 tiene una herramienta para recuperar el valor de OSCCAL.
 

Adjuntos

#30
El número 0x005 corresponde al registro asignado para OSCCAL.
Ese no es el valor que se asigna de fábrica para la calibración.

En este tipo de PIC es muy importante leer el valor de OSCCAL antes de grabarlo.
Ya que la borrar el PIC también se borrará el valor de calibración.
Este valor de calibración se encuentra en la última dirección de la memoria flash.

Para el PIC10F222 se encuentra en 0x1FF
Existen algunas formas de recuperar el valor de calibración para OSCCAL.
Yo uso una muy sencilla, pero bastante efectiva.
Se trata de ir asignando un valor para OSCCAL hasta que se consiga una lectura correcta.
Para esto se graba un programa en el PIC y se procede a leer lo que arroja por RS-232.

Ver el archivo adjunto 163911

Aquí se puede ver que hay dos lecturas correctas, así que el valor para OSCCAL puede ser 0x30 o 0x40.
Como previamente leí el valor, sé que el valor original de fábrica es: 0x30

Para asignarlo nuevamente se debe escribir 0CXX en la dirección 0x1FF
Donde 0C es un MOVLW y XX será el valor para OSCCAL. (En este caso: 0x1FF = 0C30)

Adjunto el programa en C (PCWHD) y el ejecutable (.hex) para grabar el PIC.
Como la lectura es por RS-232 se puede usar un adaptador USB.
Si la PC cuenta con puerto serie, entonces se puede usar un MAX-232 o transistores para adaptar los niveles a TTL.

En el programa adjunto también explico la forma de asignar el valor de OSCCAL con el PICkit.
Tal procedimiento será únicamente para el PIC con el OSCCAL perdido. (No servirá el mismo valor para otro PIC, porque no siempre es igual)
Yo uso el PICkit 3 y no me permite la edición del búffer.

PD:
Me parece que el PICkit 2 tiene una herramienta para recuperar el valor de OSCCAL.
Una duda ¿Es importante el valor oscal?

Yo reparo módulos de seguros y vidrios eléctricos y traen un pic12f629 aveces conecto el pickit y se borra el valor osscal y lo pongo manual y al azar generalmente es un valor 3xxx y yo pongo 3444por flojera , reprogramo y funciona perfecto

¿Es necesario saber el valor osccal o no lo es?

 
#31
Una duda ¿Es importante el valor osccal?

Yo reparo módulos de seguros y vidrios eléctricos y traen un pic12f629 a veces conecto el pickit y se borra el valor osccal y lo pongo manual y al azar, generalmente es un valor 3xxx y yo pongo 3444por flojera , reprogramo y funciona perfecto

¿Es necesario saber el valor osccal o no lo es?
Sí es bastante importante cuando se usa el oscilador interno únicamente.
Sobre ese valor se toma la referencia para que oscile a la frecuencia establecida por software.

Como podrás notar en la imagen de recepción de datos, cuando el valor de OSCCAL no es correcto, los datos mostrados no son recibidos correctamente porque el oscilador está funcionando a una frecuencia que queda muy fuera de la definida en el programa.

Ahora veamos el problema de otra forma...
Si se requiere generar cierta frecuencia o usar PWM y el valor de OSCCAL no es correcto, entonces podrás notar que la señal de salida no corresponderá con la esperada.
Tendrá otra frecuencia y tal vez hasta otra forma de onda.

Sobre los cálculos con fórmulas internas no estoy seguro si el microcontrolador los pueda procesar correctamente, tal vez sí, pero eso se puede comprobar guardando el resultado en la EEPROM y después leerlo con el programador.

En caso de usar rutinas con retardos, también se verán afectadas.
Pero si no es importante que valores sean exactos, entonces físicamente no se notará que un dispositivo se active unos milisegundos antes o después.
Por ejemplo: hago destellar un LED cada 500 mS y seguramente estará destallando cada 600 mS.
Nada importante cuando el tiempo no es primordial.
 
#32
Hola , hay alguna lista a la mano de que Pics programa el pickit2? quisiera saber si programa sin problema los dsPIC30F4011 y dsPIC30F4013 o se nesesita un pickit3 para ello??
 
Última edición:
#33
Muchas gracias por la ayuda.

ok, entonces entiendo que el valor de osccal está escrito en la dirección que indica el archivo de definiciones, y es allí donde tengo que ir a buscar para luego asignarlo manualmente en el software de programación. Hasta aquí ok, pero una cosilla que no entinedo, si nunca has cambiado el valor mediante una asignación en el programa que le cargas al pic, entiendo que todos los micros nuevos del mismo modelo llevan el mismo valor y este será invariable hasta que tu lo cambies. Entonces, si yo no lo he cambiado no puede ser que no sea el que lleva de fábrica!
Además, precisamente lo que no puedo hacer es cargar ningún programa! tengo los micros nuevos de trinca, los reconoce con la verificación, pero cuando intento quemarlos con el archivo .h es cuando me da ese error de osccal.
Un detalle, como tengo varios micros programados y funcionando perfectamente (los gravé hace varios años y estaban en un cajón, pero funcionan y ejecutan el programa), quizá podria leerlo en uno de esos, no?

Bueno, voy a ver si puedo procesar toda la información que me pones, D@rkbytes, a ver si consigo algo. No estoy muy instruido así que no tengo muchas esperanzas de solucionar mi problema fácilmente y a corto plazo. Además no tengo ningún adaptador usb - rs232, y si consigo uno tendré que romperme la cabeza para ver si consigo hacer lo que comentas.

Independientente de todo, no entiendo que no pueda cargar exactamente el mismo archivo .h en el mismo modelo de pic y con el mismo programador. Lo único que he cambiado es el pc, que en aquel entonces tenía uno con windows 7 y ahora estoy usando uno con más velocidad y memoria, y windows 10.

Otro detalle, he hecho la prueba del troubleshooting test (o algo así) y da todo valores correctos tanto en el vdd como en la frecuencia de las líneas de datos.

Ya contaré si consigo avanzar durante el fin de semana, por si a alguien le pica la curiosidad...

Muchas gracias de nuevo.

Hola , hay alguna lista a la mano de que Pics programa el pickit2? quisiera saber si programa sin problema los dsPIC30F4011 y dsPIC30F4013 o se nesesita un pickit3 para ello??
Alguien puso más arriba la lista o un link donde está esa lista.

Un saludo
 
Última edición:
#34
Hola. ¿Hay alguna lista a la mano de qué PICs programa el pickit2?
Mira por aquí: Readme for PICkit 2 V2.61

Viendo que algunos de los enlaces con esa información ya no son válidos, adjunto el archivo.
Ok. Entonces entiendo que el valor de OSCCAL está escrito en la dirección que indica el archivo donde se declara, lo de 005.
Se puede decir que sí, pero debe leerse el valor escrito en la dirección 0x1FF y asignarse a OSCCAL.
En lenguaje ensamblador sería así:
call 0x1FF
movwf OSCCAL

Como la dirección 0x1FF contiene movlw 0xXX, W contendrá el valor de OSCCAL. (0xXX)
Posteriormente se asigna con movwf OSCCAL.
Cada lenguaje de programación tiene su sintaxis para realizar lo anterior, o en C se incorpora con #asm.
Me parece que algunos IDE de alto nivel lo hacen automáticamente, y si no, cuentan con instrucciones para tal efecto.
Por ejemplo, el Basic de Proton IDE, cuenta con una instrucción que se llama: Set_OSCCAL
Pero una cosilla que no entiendo, si no cambias el valor mediante una declaración en el programa
Yo tampoco entendí qué trataste de decir. :confused:

Después de tu edición ya comprendí.
pero una cosilla que no entiendo, si nunca has cambiado el valor mediante una asignación en el programa que le cargas al PIC, entiendo que todos los micros nuevos del mismo modelo llevan el mismo valor y este será invariable hasta que tú lo cambies.
No, cada PIC tiene un valor de calibración diferente para OSCCAL y es asignado desde la fábrica.
Obviamente algunos PICs tienen el mismo valor por coincidencia. (Lo he comprobado)
Pero tomemos como referencia básica que el valor de OSCCAL no siempre debe ser el mismo para cualquier PIC de la misma familia.
Entonces, si yo no lo he cambiado, no puede ser que no sea el que lleva de fábrica.
Como mencioné anteriormente, el valor está asignado en la dirección 0x1FF y al borrar el PIC también se borrará ese valor.
Por eso siempre debe de leerse antes de borrarlo o programarlo.
Ya que también se puede sobreescribir si el programa llegara a ocupar todo la memoria Flash.

Ahora, otra cosa importante, el registro OSCCAL es de lectura y escritura, o sea que podemos modificar por software el valor de OSCCAL, pero eso no sobreescribe el valor asignado en la dirección 0x1FF, a menos de que esa dirección sea escrita intencionalmente.
Además, precisamente lo que no puedo hacer es cargar ningún programa.
Tengo los micros nuevos de trinca, los reconoce con la verificación, pero cuando intento grabarlos con el archivo .h es cuando me da ese error de OSCCAL.
Un detalle, como tengo varios micros programados y funcionando perfectamente (los grabé hace varios años y estaban en un cajón, pero funcionan y ejecutan el programa)
Quizá podría leerlo en uno de esos. ¿No?
Por supuesto que los podrás leer, pero mientras no sepas qué valor de fábrica se asignó para OSCCAL en el PIC que no puedes grabar, no le debes poner cualquier otro valor.
Independientemente de todo, no entiendo que no pueda cargar exactamente el mismo archivo .h en el mismo modelo de PIC y con el mismo programador.
Lo único que he cambiado es el PC, que en aquel entonces tenía uno con windows 7 y ahora estoy usando uno con más velocidad y memoria, y windows 10.
En Windows 10 hay que proporcionarle derechos de administrador al IDE para que pueda modificar archivos.
Por ejemplo, cuando tenía Windows 7 no necesitaba darle derechos de administrador.
Ahora que uso Windows 10 x64, tengo que proporcionarle esos derechos para que el IDE pueda realizar cambios a los archivos instalados. (Los .h proporcionados por el entorno)

Muy rara vez llego a modificar las librerías del entorno, ya que la mayoría tiene parámetros que permiten modificarse externamente.
 

Adjuntos

Última edición:
#35
Hola. Yo solucioné mis problemas de sincronización (aunque no había tenido tiempo de postearlo hasta ahora) haciendo una combinación de dos esquemas de conexión (adjunto los dos y la protoboard donde lo hice).
Con este esquema puedo gravar los pic10f222 sin tener que entrar en cambios en el osccal dichoso. Los chips que quemo ejecutan bien su programa, y aunque los delays y otras funciones supongo que no estan ajustadas, la aplicación no necesita precisión milimétrica en cuanto a los tiempos, o sea que salgo del paso sin estudiar :p
 

Adjuntos

Arriba