Programador de PICs JDM -parte 1-

Para aquellos amantes de la programación y la electrónica deben tener idea de lo que es programar un PIC!
Si nunca programaste uno, entonces esta es tu oportunidad...

Hagamos algunos comentarios de lo que significa esto de programar...

Programar un PIC es "escribir" o volcar un programa, compilado previamente en algún ordenador, a su memoria Flash. Pero aunque parezca sencillo, necesitamos generar una tensión adecuada "Vpp" o tensión de programación que aplicada a un cierto pin del circuito integrado permitirá escribir el PIC, es como el acceso a ese estado especial del PIC. Decimos estado especial, porque una vez escrito el PIC mantendrá almacenado ese programa en la memoria hasta que vuelva a programarse. Además de esa tensión, tenemos dos señales adicionales: una señal de clock y una señal de datos que constituirán juntos un puerto serial que servirá de comunicación entre el PIC y la PC.

He aquí el problema, porque Vpp o tension de prog. suele ser del orden de los 13.2 V; tension complicada de conseguir en cualquiera de los puertos, ya sea serie o paralelo. Hagamoslo ley: 


Ley de un grabador de PICs:
Vpp grab >=  Vpp req

que indica que la Vpp generada por el grabador debe superar la Vpp requerida por el PIC para que efectivamente se realize la escritura.

Que haremos entonces?...

Cansado ya de renegar con otros programadores que se resistían a cumplir la ley correctamente, hemos optado esta vez por armar algo mucho más eficaz y que realmente funciona para todos los PICs de su clase siempre!. Se trata del programador "JDM" que seguramente lo habrán visto en mas de una pagina web. Luego de haber armado casi 3 programadores he llegado a la conclusión de que este es uno de los más completos y encima mas simples, dado que:
  • Cumple la ley de un grabador (ya casi patentada :p)
  • Utiliza el puerto serie de la PC (DB9).
  • No utiliza fuente externa de alimentación (se alimenta del puerto).
  • No utiliza compuertas (solo resistencias, diodos y simples transistores).
  • Permite grabar una amplia gama de PICs.
Te presento aquí 2 versiones: la JDM lite y la JDM full. Para introducirte en el mundo de los PICs podes construir la versión JDM lite. En cambio con la versión JDM full tenes para programar PIC para rato...!
La versión full permite grabar una mayor gama de PICs como se puede ver en la tabla (aquellos entre paréntesis representan familias de PICs):


Versión Lite

Versión Full

(12C5xx)
(12C67x)
(24Cxx)
24LC01
24LC02
16C61
(16C62x)
16C71
(16C71x)
(16C8x)
16F84
16F84A
(12C5xx)
(12C67x)
(24Cxx)
24LC01
24LC02
16C61
(16C62x)
16C71
(16C71x)
(16C8x)
16F84
16F84A
16F877A
(16F87x)

El esquema del programador es sencillo. Los pines que la mayoría de los PICs necesitan para efectuar la lectura/escritura de su código son: Vdd (tension de alimentación +5V), Data (datos), Clock (pulso de datos), Vpp (tension de programación ~+13.2v), Vss (referencia de tension). Dichas señales son obtenidas directamente desde el puerto serie o bien algunas son sintetizadas en el propio circuito.

Las señales RTS y CTS proporcionan Clock y Data (respectivamente), las señales que sincronizan la escritura/lectura en el microcontrolador, como ya se comento al inicio. La señal GND, no es masa sino que da la referencia de tension Vdd (+5V) necesaria para la alimentación del esquema y del PIC. La tensión de programación necesaria (para algunos PICs es de 13.2V) se obtiene a través de los diodos zener D1 y D5 que entre ambos llevan la tension a un valor aprox. al pin 4 del zócalo de 18 pines. La referencia de tension GND (correp. a los 0V del circuito) es creada en el circuito y como regla general todos los pines que no intervengan en la grabación deberán ir conectados a esta referencia.

Los potenciómetros R4 y R5 permiten seleccionar la máxima tension Vpp la cual es necesaria para ciertos PICs como el caso del 16F84A. Entonces, para ese PIC en particular ambos potenciómetros deberán estar en la posición 1.

En resumen, el siguiente esquema pertenece a la versión JDM lite:


Extendiendo las conexiones de los pines Vpp, Data, Clock, Vdd y Vss a dos zócalos DIP adicionales, uno de 28 pines y otro de 40 pines podemos lograr "pasar" a la versión JDM full.
Simple, no?


En la próxima entrega la idea es publicar mi diseño, el cual tiene algunas mejoras y modificaciones que pueden servirle de referencia.
Saludos!

Fuente diseño original: www.fullcustom.es
Diseño modificado: Adrian D. Mentesana

1 comentario:

  1. Gracias por publicar el grabador, lo probare
    Muy bueno tu blog, espero la segunda parte. Diego

    ResponderEliminar

Deja tu crítica, comentario o novedad sobre el proyecto...