Programar Pic's serie K con pickit2? 18f46K20 18f14K50 etc

Poseo un pickit 2 clone, de Mcelectronic, y voy a comprar algunos pics. El tema es que he observado que los pic serie K pueden trabajar a mayor frecuencia y estan a la MITAD DE PRECIO que los del mismo codigo pero sin la K. La cuestion viene que en la pagina de pics compatibles con los pickit 2, en este link me dice lo siguiente al respecto:

- Use AC244023 ICD header.

PIC18F24K20, 25K20, 26K20
PIC18F44K20, 45K20, 46K20
PIC18F14K22


No entiendo, necesito ese modulo extra "AC244023" para programarlos? No puedo simplemente conectar el programador con cables a los pines del PIC directamente?

Alguno sabe algo al respecto?
Muchas gracias!
 
Última edición:
Gracias ByAxel, ya me fijo...
si alguno mas tambien sabe, le agradeceria que me ayude...



ByAxel, que seria header entonces? osea, la K es porque esos pic estan actualizados para ser reprogramados onboard?
 
Última edición:
la K es porque esos pic estan actualizados para ser reprogramados onboard?

No creo, header también los tienen otros tipos de PICs inferiores y que siempre se han usado...
No estoy seguro sobre la K pero parece que se refiere a la peculiaridad de trabajar a muy bajo voltaje, toma en cuenta eso al grabar el PIC... Revisa la hoja de datos.

Saludos.
 
Para programar un pic18f14k50 - hace unos cuantos años ya - lo que hacía era usar el programador del pic normal y corriente, pero tenía que limitar la tensión de programación Vpp.
Compará con uno de la misma familia (pic18f4550) y fijate que el valor de Vpp es distinto para uno y para otro. 9 a 13V para los pics serie F y 8 a 9V para la familia K.

Si mal no recuerdo usaba dos zeners en serie (tenía uno de 5V y otro de 3V) con algún resistor chiquito para limitar corriente, y eso colgado de la línea que va a Vpp/MCLR y a GND. Y entre la línea de [reset del programador] y el [reset del micro] algún resistor (porque el programador va a forzar 12V pero el zener 8 y pico; así que tiene que haber un resistor que permita la caída de tensión sin que se peleen :p).
Utilizaba el icd2 como programador/depurador.

Me acuerdo que los usaba por el mismo motivo, que eran muy baratos para ser un micro con USB. Pero eso lo logran a costa de sacar el módulo interno de depuración que traen los micros normales (de la serie F).
Así que cuidado!!!, no vas a poder depurar el programa paso a paso desde el IDE, vas a tener que encender leds/enviar mensajes por usb/LCD/otro artilugio para saber donde el programa está fallando, poder ver valores de las variables, y depurar en general.
 
Muy Interesante.
Entonces esas 2 cosas son las que cambian... que no se lo puede depurar, y que son a menor tension... supongo que esto ultimo seria una ventaja, no? Digo, no tiene debido a esto mas posibilidades/aplicaciones posibles?
En cuanto a la depuracion, para serte sincero, solo use el pic16f84 en algunos proyectos, y ni sabia que se los podia depurar, y ya queria avanzar, y por eso hago estas preguntas.
En cuanto a limitar las tensiones y demas, supongo que voy a proceder a analizar como es que programa el pickit, y al entender su comportamiento/funcionamiento, sabre que hacer.
 
Mirá, acá encontré el tema en el foro de microchip donde hablaban de eso:

http://www.microchip.com/forums/tm.aspx?m=411659&high=pic18f14k50+zener

Lo de la baja tensión es sólo para programar eh?, lo siguiente no es cierto {es para operar el pic, a no ser que tengas un pic18LF14k50 que trabajan a 3.3V. Pero si es el pic18f14k50 trabaja a 5V como todo el resto}.

Viendo la hoja de datos parece que el pic18f14k50 sí puede trabajar a 3.3V (ver parámetro supply voltage en la tabla de características eléctricas), pero se ve que no lo usé así en su momento.
 
Última edición:
Justo como me dijiste, me puse a buscar en el datasheet, y dice que Vpp debe estar entre Vdd + 4.5v como minimo y 9v como maximo, pero cuanto vale Vdd? Pero supongo que de ahi sale el ponerlo a 8.4v con los zener 5.1v y 3.3v en serie?
Lo del modulo ese, entonces es para encargarse de estas cosas, y tambien para funcionar como depurador, ya que como dijiste estos pics no lo tienen, no?
Soy un queso con el ingles, asi que no entendi cual es el problema que tienen con los usb, si me lo podes aclarar te agradezco porque si pienso usarlos.


Edito: El datasheet me indica lo siguiente (tanto del 18f14k50 como del 18f46k20:
VDD Supply Voltage 1.8 — 3.6 V

No era eso lo que decias? que funcionan a bajas tensiones?

El tema es que 3.6v como tension Maxima...
Otra cosa, si el programador es USB, no es a 5V? como logra el Vpp para los pic de 12V??
 
Última edición:
Hola

PK2DeviceFile.dat Compruebe el archivo en la carpeta del programa

He probado pic18f46k22 , PIC18F45K80 , PIC16F1847

PK2DeviceFile.dat : Verifique la carpeta de instalación PICKIT2


---------------------------------

This program provides a simple interface for editing the device data file PKDeviceFile.dat that comes with the PICkit2 windows programs. It’s my first .NET application ever and I won’t be surprised if there’s a few bugs in it.

I know this is a painfully simple program which probably doesn’t require any documentation whatsoever, so only basic notes are provided.

https://sites.google.com/site/pk2devicefileeditor/
 

Adjuntos

  • pk2devicefile-dat.zip
    95.3 KB · Visitas: 28
Última edición:
Por lo del inglés... vas a ir adquiriendo práctica en lectura, porque toda la información está en inglés: hojas de datos, notas de aplicación, foro oficial, código fuente.
No hay salida, a menos que hables chino mandarín fluído (que suelen traducirles la hoja de datos)

VDD Supply Voltage 1.8 — 3.6 V

Ah mirá vos..., veo que eso se cumple para 18f46k20 (nunca me fijé la hoja de datos de ese micro), pero no para el 14k50 (página 364 del pdf):

pic18f14k50 supply voltage.png

Es de 3.3V para el pic18f14LK50. La diferencia entre con L y sin L la dice en la hoja de datos página 81: ambos micros tienen un núcleo de procesador que funciona a 3.3V, pero el [sin L] incluye un regulador interno de 5V a 3.3V y el [con L] no.

El tema del conflicto con el USB es que las líneas PGD y PGC - que son las que se usan para enviar datos y reloj del programador - en esta familia de pics están compartidas con las líneas D+/D- de USB. Eso no pasa con otras familias de pics con usb, como la del pic18f4550.
Esto quiere decir que para programar hay que desenchufar el USB o puede salir humito :).

Estoy revisando la parte que habla de depuración del pic18f14k50... ahora me entró la duda, porque en la hoja de datos sección 24.6 y 24.7 habla como si no hiciera falta nada extra, pero en la página de Microchip enseguida salta que es necesario el AC244023...
En fin, será un error de la hoja de datos, de lo que recuerdo (y mi memoria no es del todo fiable) no se podía depurar el 14k50...
Es más!!!, viendo el diagrama de bloques del micro, se ve la diferencia entre el 14k50 y el 4550 (uso siempre el 4550 como comparación porque es otro micro que he utilizado bastante).

diagrama bloques pic18f4550.png
diagrama bloques pic18f14k50.png

Así que sí, es error de la hoja de datos del 14k50. Habrán hecho copy-paste y lo dejaron ahí.

Para el 18f46k20 veo que solo es para 3.3V, y que incluye un depurador... ¿habrán visto que era demasiado lío sacar el módulo interno de depuración y que no valía la pena recortar costos por ese lado?
Otra cosa, si el programador es USB, no es a 5V? como logra el Vpp para los pic de 12V??

Justo para otro tema estaba viendo el esquema de un pickit2 clone:
http://tomeko.net/pickit2.php?lang=en
http://tomeko.net/bin/pickit2/pickit2_scheme.pdf
Tiene un regulador de switching para generar la tensión VPP a partir de 5V:
pickit2 clone VPP gen.png
 
Buenisimo. gracias Ardogan, no hay problema entonces. Lo unico que tengo que hacer es cuidar las tensiones y listo.
En cuanto al programador, me gustaria saber mas como funciona, que ocurre con cada pin, de que forma emite el codigo para ingresarlo en el pic, etc. Si tenes info donde lo explican, de nuevo te agradeceria :LOL:.
Gracias de nuevo!
 
Nunca intenté armar un programador para PICs, otra gente del foro puede tener experiencia con esto.

El programador lo que hace es recibir el mapa de memoria del pic que se desea (que es enviado a través de un software por la PC), utilizar las líneas PGC/PGD del pic a programar como una interfaz serie para enviar comandos de lectura de memoria, borrado, escritura, inicio de programación, etc.
Al modo de programación se entra aplicando la "alta tensión" en la pata MCLR.
Ese mapa de memoria se genera al compilar el código fuente, y está en el archivo .hex generado (no es un mapa de memoria literal, responde a un formato estandar de Intel blablabla).

El detalle de los comandos, timing, recursos utilizados, etc se puede consultar entrando en la página del producto, supongamos el pic18f14k50:
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en533924
Abajo en "documentation & software" hay que bajar el pdf bajo "Programming specifications".

Otra cuestión importante!!!!!, no hay que energizar las patas PGC y PGD con más de 3.3V (porque de esas patas también está colgado internamente el módulo usb que admite 3.3V máximo).
Eso lo incorpora el "header": un traductor de nivel para las patas PGC y PGD
.
No lo tenía presente porque en mi caso no lo precisaba:

No sé si puede hacer con el pickit2, pero con el icd2 (otro programador/depurador más arcaico que el pickit2) lo que yo hacía era configurar que el programador tomara energía de la placa, y no que el programador energice la placa.
De hecho encontré un post mío en el foro de microchip del 2009 :):
https://www.microchip.com/forums/tm.aspx?m=436969&high=pic18f14k50+icd2
Me terminé respondiendo yo solo, jaja.
En fin, lo que hacía era alimentar la placa donde está el pic con 3.3V, configurar que el programador icd2 tome energía de la misma placa del pic, y usar los zeners para limitar el Vpp aplicado al MCLR del pic.

Para terminar, la forma de programar los pics depende de la familia (16F, 18F, etc) y a veces hasta del modelo. Y usan su propio protocolo que denominan ICSP.
Otros fabricantes de micros (Texas, micros ARM de 32 bits de ST, NXP, etc) lo que hacen es usar una interfaz estandar JTAG que - si bien no era la intención original programar/depurar micros - terminó usandose para eso. JTAG no tiene de por sí todos los comandos definidos para esa tarea, es similar a lo que pasa con una comunicación serie RS-232, cada uno termina definiendo su propio protocolo por encima del nivel de "enviar byte" y "recibir byte", aunque JTAG creo que está un poco más arriba en el nivel de "escribir registro" y "leer registro". En fin...
Pero todos tienen sus propios "secretos", nunca me puse a ver cual era el que hacía todo open source, desconozco si hay alguno que sea 100% transparente y abierto.

Otra cuestión útil que sirve para programar los micros es cuando estos vienen con un bootloader, con lo que no hace falta un programador para el micro sino que se le puede enviar el programa por USB/SPI/I2C/UART (algunos micros con más recursos pueden leer el programa desde una tarjeta SD conectada al micro por ejemplo).
Pero claro, al bootloader hay que programarlo cuando el chip viene vacío, y para eso sí hace falta un programador :cabezon:

Bueno, demasiado largo el asunto. Acordate de adaptar los niveles PGC y PGD también (a menos que puedas configurar el pickit2 para que tome alimentación de la placa como hacía yo con el icd2).
 
Última edición:
Ultimamente he tenido que programar algunos 18F14K50 y lo he hecho con una modificación del programador JDM que ya hice hace algún tiempo para poder programar un 16F1827. La modificación no podía ser más sencilla que la sustitución de un solo diodo zener.

Para el 18F14k50 además tuve que adaptar las conexiones del JDM a un nuevo zocalo para este PIC.
http://www.analogicsensors.com/16F1827/16F1827.htm

JDM16F1827.jpg



Esta modificación es válida únicamente para las seris F.
 
Atrás
Arriba