Programador de PICs JDM -parte 2-

Ya dejamos presentado el esquema del programador JDM, como se puede ver es muy simple su circuito y los componentes son sencillos de conseguir!

Si te parece, te invito a armar tu propio programador, comenzando por tener encima de la mesa los siguientes componentes:
  • 1x resistencia 1k
  • 1x resistencia 1k5 (significa 1.5K)
  • 1x resistencia 100K
  • 1x potenc. 1k *(opcional por 1x resistencia 1k)
  • 1x potenc. 10k *(opcional por 1x resistencia 10k) 
  • 1x capacitor 22uF/16v
  • 1x capacitor 100uF/16v
  • 1x diodo 5z1 (significa zener de 5.1 v)
  • 1x diodo 8z2 (significa zener de 8.2 v)
  • 4x diodo 1N4148 o similar
  • 2x transistor BC237 o similar
  • 1x transistor BC307 o similar
  • 1x zócalo DIP 8 pines 
  • 1x zócalo DIP 18 pines
  • 1x zócalo DIP 28 pines *(opcional)
  • 1x zócalo DIP 40 pines 
  • 1x conector DB9 hembra
  • 1x cable de 5 hilos (apantallado)
  • 1x conector DB9 macho
  • 1x cable adicional de 5 hilos
  • 1x llave de dos posiciones doble (es decir 4 o 6 pines)
  • 2x placas universales de 16x16 perforaciones (o similar)
  • 1x caja para el proyecto
Los componentes en color azul, solo los necesitaras si deseas armar la version full.
Aquellos componentes en color rojo o con asterisco (*) son los que necesitaras si quieres armar el JDM full con las modificaciones y mejoras tal cual como el que les presento a continuación.


Modificando mi JDM full...

Como la mano con mis anteriores programadores venia algo mal, decidí armar este con todos los detalles y "chiches" posibles para que se convierta en la estrella de los graba-PICs jeje.
Para esto decidí estudiar algo el esquema y resultaron algunas modificaciones:

1ra modificación

Los potenciómetros de 1k y 10k solo se usan para asegurar la tensión Vpp en el 16F84A, por lo que:

Para el PIC 16F84A:
R4=1k (posición 1)
R5=10k (posición 1)

Para todos los demás PICs:
R4=0k (posición 3)
R5=0k (posición 3)

por lo tanto siempre están o a final o a tope de carrera, lo cual es ineficaz su uso.
Mi propuesta es cambiar los potes por una resistencia en serie y una llave en paralelo como se muestra a continuación:

Así, si efectuamos dicho cambio en ambos casos (R4 y R5) necesitaremos una llave con 4 puntos o 6 puntos (de los cuales solo usaremos 4) para cortocircuitar la resistencia en el caso de grabar los demás PICs.
El efecto es el mismo y se logra de mejor manera!

2da modificación

Si observan los zócalos de 28 y 40 pines, la disposición de los pines Vpp,Vdd, Data, Clock y Vss, es similar. La única diferencia son los pines 11 y 12 del zócalo de 40, con el pin 8 del zócalo de 28. Los pines del zócalo de 40 tranquilamente podrían estar en el zócalo de 28, ahorrándonos un zócalo.

La siguiente gráfica deja mas claro lo que quiero expresar:
Entonces, podemos obviar el zócalo de 40 pines, usando el zócalo de 28 pines, tanto para PICs de 28 como 40 pines. La conexión es simple, guiándonos por la gráfica, tan solo debemos conectar:

Vdd --> pin 11 del zócalo 28
Vss --> pin 8 y 12 del zócalo 28 

Ya esta! ahora podemos eliminar el zócalo de 40 pines.

3ra modificación

Los PICs pueden grabarse antes de montarlos en el circuito, pero muchas veces (sobre todo al trabajar con protoboard) queremos modificar el código que hemos grabado y hay que desmontar el micro del circuito una y otra vez. Para evitar esto, se cuenta con la posibilidad de grabar el PIC on-board o ICSP (In-Circuit Serial Programming). Esta posibilidad se la daremos al JDM con el agregado de un conector ICSP que permite que las señales Vpp, Vdd, Vss, Clock y Data lleguen al circuito donde esta montado el PIC.

El conector que diseñé esta explicado mas abajo, en la sección "Diseño conector/cable ICSP".

4ta modificación (solo porque no conseguí zócalos adecuados :( )

Esta ultima modificación la lleve a cabo al no lograr conseguir los zócalos adecuados. Resulta que los zócalos DIP tienen dos anchos diferentes:

Solo conseguí los mas delgados, así que tuve que diseñar una placa de zócalos especial, que al final me termino convenciendo por el ahorro de espacio que me represento!

Mas abajo explicare como efectué dicho diseño de placa con 3 zócalos delgados: uno de 18, otro de 24 y otro de 28 pines.

Ahora a diseñar!!!...


Decidí trabajar con placas universales, si bien el diseño quedaría mas prolijo en una placa quemada, quería un diseño mas cómodo para mi modelo final.


Por otro lado opte por usar dos placas universales: una para el circuito de componentes y la otra para los zócalos. Por lo tanto, ambas se comunicarían entre si a través de las 5 señales que llegan a los zócalos.


Antes de empezar el trazado, hice un "collague" con el circuito en papel para ver que conexiones se pueden simplificar en la placa. El trazado se baso en las 5 señales que describí mas arriba. La siguiente gráfica muestra el trazado:
Diseñando placa 1: PCB para zócalos

En primer lugar diseñe la placa de zócalos. Al fin de cuentas en ella ingresan 6 señales (y no 5) que grabaran todos los PICs: Vpp1, Vpp2, Vdd, Clock, Data y Vss. Las señales Vpp1 y Vpp2 son respectivamente las tensiones de programación para todos los PICs (pin 4 en el zócalo 18) y para el PIC 16F84A (pines 1 en el zócalo 28 y 40, y pin 5 en el zócalo 8).

Utilicé una placa universal de 16x16 orificios, por lo que me resulto mas cómodo dibujar en hoja cuadriculada la disposición de los zócalos y con código de colores las señales que a ésta llegarían, pero antes de eso, debia arreglar el tema de ... ¿como diab... acomodar los zócalos delgados en la placa?
El problema no eran los PICs de 8 pines ni los de 18 pines, el tema es que los PICs mas grandes (los de 28 pines y los 40 pines, son del DIP "grueso", es decir el zócalo debería ser mas ancho.

Entonces, opte por acercar lo suficiente los zócalos delgados para que entre 2 de ellos puedan conectarse los PICs de DIP grueso, como el 16F877. Así fue como lo hice:


Entonces todos los PICs de 28/40 pines irían conectados entre esas hileras. Como se puede ver ninguno de los zócalos tiene una hilera de 20 pines, pero mas abajo muestro el detalle de conexión de todos los PICs!!!

La matriz de 16x16 correspondiente a los orificios de la placa universal para definir la ubicación de las conexiones se muestra a continuación:


La conexión "Desde la placa de componentes", trae todas las señales generadas en la PCB de componentes (ver correspondiente sección). La conexión "Hacia el conector ICSP" es opcional y es una de las modificaciones que planteé mas arriba. Esta ultima, permite darle al programador mas opciones (ver sección ICSP mas abajo).

Como pueden ver, use 1 zócalo DIP de 18 pines, un zócalo DIP delgado de 24 pines y otro delgado de 28. Con esta configuración y como los ordene me aseguro el funcionamiento para todas las familias de PICs de la versión JDM full. Como ya comente podría haber utilizado zócalos de 8, 18, 28 y 40 pines, pero esto es lo que conseguí!!!

Ahora bien, los puntos de colores muestran a donde deben ir soldadas las señales, el trazado de las pistas se los dejo a su criterio, sin embargo, por aquí les dejo un trazado que hice "a mano en papel" y obviamente no es el mas prolijo pero trate de minimizar el uso de jumpers aunque NO pudo evitarse!! (click para mayor claridad)...

Las pistas con estaño están dibujadas con trazos rectos, mientras que las pistas mas finas y curvas son cables de pequeño diámetro. Aunque no lo crean este diseño funciona jeje!!! 

Diseño conector/cable ICSP

Ya una vez finalizada la PCB de zócalos, podemos soldar el conector ICSP. En mi caso use un viejo conector DB9 macho de la entrada de un jockstick de Family Game, como el que se ve en la figura de mas abajo. Por otro lado, aproveche el cable de un jockstick de Family para crear el cable ICSP. Este tiene 5 cables por lo que pueden llevarse las 5 señales a una placa o protoboard en donde estemos trabajando. Para no romper la ficha, debemos usar los pines en las posiciones en la que están soldados y tener esto en cuenta para soldar el conector a la PCB de zócalos. Entonces, si soldamos las señales como se muestra a la izquierda, estas "saldrán" por los correspondientes cables en la tabla de la derecha.


En el extremo de la ficha, podemos soldar en cada cable una espiga para poder conectar fácilmente a la protoboard en caso de efectuar una ICSP. Por otro lado es recomendable etiquetar los cables con cinta mágica o similar para identificarlos rápidamente.

Diseñando placa 2: PCB de componentes

La placa de componentes la efectué con una placa universal de 16x16. El diseño lo tracé en una hoja cuadriculada he aquí el diagrama lo mas simplificado del resultado, que no es el mejor y por lo tanto pueden "descomprimirlo" mas aun, pero en fin lo importante es que funciona!!!

El detalle de las soldaduras está en color negro, y el sentido de los diodos, capacitores y demás está en color blanco:


A esta placa le llegan las conexiones de la ficha DB9 hembra que es la conexión de la placa a la PC. En la siguiente figura se ven los pines que corresponden a cada uno de los puntos blancos que es donde van conectados los cables de dicho conector. Las conexiones en color se refieren a las señales Vpp1, Vpp2, Vdd, Clock, Data y Vss y siguen el código de colores de todas las figuras presentadas mas arriba.Es conveniente para mayor simplicidad a la hora de interconectar la PCB de componentes con la PCB de zócalos, usar un conector de 6 pines (tipo los que se usan en la placa madre de las PCs) si quieren darle mayor flexibilidad al circuito.

Por ultimo, los puntos con rojo se refieren a las conexiones para la llave selectora de Vpp que reemplaza a los potenciómetros (ver 1ra modificación). Como pueden ver hay dos conexiones de 2 pines, estas van conectadas en una misma llave de 4 puntos: 2 de ellos en un juego de puntos y otros 2 en el otro juego, OJO! no deben hacer cortocircuito entre los dos pares de pines!!! Lo que debe hacer la llave "al cerrar" es dejar cortocircuitada a la resistencia de 1k y a la resistencia de 10k por separado (ver esquema).

En esta ultima gráfica, la PCB del lado serigrafia con el detalle de los componentes y su ubicación. Como verán no utilice software de PCB al trabajar con placa universal y por el hecho de haber diseñado en hoja cuadriculada:


El detalle de las conexiones del conector también lo pueden ver en el diagrama inicial. Los conectores en rojo son las salidas para las llave de 4 puntos, los conectores en color son las salidas de las señales para la placa PCB de zócalos como ya comente mas arriba. Es algo comprimido el diseño pero lo importante es que no requiere jumpers, ni cables en la placa, por lo que es mucho mas prolijo que la PCB anterior aun.

En la próxima y ultima entrega, mi programador terminado, su funcionamiento y el software adecuado para trabajar con los PICs!!!
Saludos...!!!

5 comentarios:

  1. felicitaciones por el buentrabajo, se aprende mucho gracias.

    ResponderEliminar
  2. Felicitaciones x tu emprendimiento!! Realmente util la informacion aportada.

    ResponderEliminar
  3. felicidades es un exelente aporte !!! en especial para los que reciene iniciamos en este mundo !!!! esperamos la la ultima saga !!!! saludos !!!

    ResponderEliminar
  4. Muchisimas gracias!!!, la ultima saga ya esta en linea:

    Haz click aqui:
    http://adriandavidm.blogspot.com.ar/2012/02/programador-de-pics-jdm-parte-3.html

    Te recomiendo que visites la pestaña "Indice de Entradas" para ver mis otras publicaciones...

    ResponderEliminar
  5. Confirmo que el programador no me funcionó en un portátil ni usando conversor usb-serie. Tuve que usar un ordenador sobremesa con puerto serie incorporado y lo pude programar a la primera con Winpic800

    ResponderEliminar

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