Programador de microcontroladores Pics

Fotografía del programador de Pics terminado
Como prometido tiempo atrás, me animo a publicar un programador de microcontroladores Pics que he construido siguiendo el modelo del PicKit2® de la Microchip® y aprovechando la idea de Suky (http://www.micros-designs.com.ar/pickit2-clone-5v3-3v/) para poder trabajar también con micros de 3,3V. En mi caso he optado por usar un regulador específico en lugar del sistema con componentes discretos pensado por Suky.
Vista del programador y sus componentes
Generalmente, los proyectos que publico son completamente desarrollados por mi pero en este caso he hecho una excepción porque hay demasiadas zonas obscuras en torno al PicKit2® y me llevaría demasiado tiempo analizar la electrónica, el firmware y el software de los sistemas originales.
El programador que les presento es formalmente el famoso PicKit2® en su versión Clone, compatible al 100% (eso espero) con el modelo de la Microchip® pero con un circuito bastante simplificado.
PicKitGab1.png
Antes de seguir, quiero hace una aclaración: este programador que publico hasta ahora ha funcionado perfectamente con distintos modelos de Pics que he programado. De cualquier manera no puedo garantizar que funcione bien en todos los casos y tampoco dar un soporte técnico completo porque hay demasiadas variables en juego a nivel de software y de hardware y tendría que dedicar todo mi tiempo libre solo a esto.
Personalmente pienso que las herramientas de trabajo deben ser de buena calidad y considero un programador de pics como una herramienta de trabajo. Por esto, personalmente prefiero usar programadores de marca y usar modelos DIY como este, solo en situaciones de emergencia o cuando no tenemos la posibilidad de comprar uno original.
Diagrama pictórico del programador con sus componentes
Volviendo a la descripción del proyecto, usar dos zócalos separados de 20 y 28 pins simplifica mucho el uso del programador porque todos los microcontroladores de distintos tipos se posicionan de la misma manera en uno u otro zócalo en modo simple e intuitivo, sin necesidad de manipular interruptores, puentes de configuración o debiendo colocar los chips en posiciones distintas entre si.
Circuito impreso del zócalo para micros hasta 28 pins
No he construido el módulo para micros de 40 pins porque nunca tuve la necesidad de usarlos. De cualquier manera, gracias al conector ISCP disponible en el programador, es posible también programar estos pics conectando los 5 pins necesarios.
Circuito impreso del zócalo para micros hasta 20 pins
Me interesaba en particular modo poder programar el nuevo PIC18F14K50 porque, siendo más pequeño del 18F2550 (solo 20 pins) posee también un puerto USB a bordo y bastante económico. Lamentablemente no dispongo di un micro de este tipo para probar. Espero de poder hacerlo dentro de poco.
Circuito impreso del programador de Pics
Respecto a otros programadores que se encuentran en la red, haber construido un programador compatible con los productos Microchip® me permite de usar como plataforma de desarrollo los software gratuitos de la Microchip como por ejemplo el PicKit2® software y fundamentalmente la suite MPLAB X IDE® (v 1.60) para Linux.
Programa PicKit2 programando un nuevo micro
La cosa importante de esta experiencia es que funciona!! Como decía antes, no he podido probar el programador con todos los modelos de pics, solamente algunos, pero parece ser que el sistema es bastante robusto y no he encontrado errores en fase de programación o de reconocimiento del programador por parte del software PicKit2 y MPLAB.
Elenco de materiales
Resistencias:
  • 3 de 10 ohms 1/8 Watt
  • 3 de 33 ohms 1/8 Watt
  • 1 de 100 ohms 1/8 Watt
  • 1 de 820 ohms 1/8 Watt
  • 3 de 1 K ohms 1/8 Watt
  • 1 de 2,7K ohms 1/8 Watt
  • 4 de 4,7K ohms 1/8 Watt
  • 4 de 10K ohms 1/8 Watt
  • 1 de 100K ohms 1/8 Watt
(las resistencias son de 1/8 Watt con distancia entre patitas de 5mm)
Capacitores:
  • 2 de 100nF
  • 2 de 22pF (disco)
  • 1 de 22uF 16V (electrolítico)
  • 1 de 47uF 25V (electrolítico)
Diodos:
  • 2 1N5817
  • 1 1N4148
  • 1 led verde 3mm
  • 1 led rojo 3mm
Transistores:
  • 4 BC557
  • 3 BC547
Circuitos integrados
  • 1 PIC18F2550 (programado con firmware Microchip PicKit2)
  • 1 L4931CZ33 (u otro regulador 3,3V 100mA de tres patitas)
Otros componentes
  • 1 bobina de 680uHy (ver fotografías)
  • 1 pulsador para circuito impreso (ver fotografías)
  • 1 zócalo de 28 pins
  • 1 zócalo de 28 pins ZIF (zócalo a fuerza cero)
  • 1 zócalo de 20 pins ZIF (zócalo a fuerza cero)
  • 1 cristal 20MHz
  • 1 conector USB tipo B
  • 3 conectores a 6 pin paso 2,54 mm para circuito impreso
  • 3 conectores a 6 pin paso 2,54 mm para cablepreso
  • 3 Circuitos impresos (1 principal y 2 zon los zócalos ZIF)
  • 1 cable USB
  • tornillos, separadores y tuercas
Conexión del programador a el zócalo de 20 pins
Construir un programador de PICS es toda una empresa y no lo aconsejo a la gente que recién empieza. Más allá de la construcción electrónica propiamente dicha en la que se necesitan algunos componentes especiales, es necesario disponer de otro programador que permita de programar el PIC18F2550, corazón de todos los modelos USB como este. La solución más simple, si no se dispone de uno, es la de pedirle ayuda a alguien que lo posea. También se puede construir un programador de transición, como por ejemplo el JDM para puerto serie. El problema está en que los programadores tipo JDM necesitan un verdadero puerto RS232 porque no trabajan bien con los adaptadores USB a RS232 y en los últimos años, las computadoras no disponen más de este tipo de puerto. Si se logra resolver el problema de la programación del primer PIC18F2550, después se pueden construir todos los programadores que uno quiera porque un programador programa al otro.
Les dejo para descargar el file zip con los circuitos impresos y también el código en formato hex de la última versión de firmware para el PIC18F2550. El programa PicKit2 lo pueden descargar directamente desde el sitio de la Microchip
Los micro que he probado a grabar son estos: 12F629, 12F675, 16F628A, 16F676, 16F73, 18F2550 y 16F88.