Programador Usando MAX232 (JDM+)

Buenas, aqui dejo lo que empece este año y por motivos de tiempo no pude terminar; mis amigos Javilondo y sony interesados en este tema me ofrecieron terminarlo y bueno aqui les dejo todo para que puedan hacerlo.

Caracteristicas del programador serial JDM+

* El microcontrolador puede ser programado en circuito, es decir, que estando montado en el circuito y teniendo acceso a los pines de programacion se puede programar el microcontrolador (Cosa que no hace el JDM ya que para generar los 5v para alimentar al microcontrolador usa una tierra o referencia virtual que la hace incompatible con la tierra o referencia de una fuente externa).

* Usa alimencion externa (ya no depende del puerto serial para su propia alimentacion), la cual es tomada del mismo circuito en el que se encuentre el microcontrolador.

* Los pines usados para la programacion son: MCLR VCC GND PGD PGC, siendo asi una programacion del tipo ICSP.

El programador asi como esta en los esquemas que adjunto funciona perfectamente, lo unico que no pude terminar de hacer fue que funcionara desde un laptop con un adaptador serial-usb y esta es la parte que precisamente seria interesante que sea verificada y corregida.

El esquema es algo parecido al JDM original, tiene mas componentes pero para una de las cosas que necesitaba en su momento (que me dejara programar con el microcontrolador montado en el circuito sin tener que estar sacandolo y metiendolo de su base para ir a otra donde estaba el JDM original) me funciono muy bien. La idea principal de todo este proyecto era eliminar por completo la dependencia del programador al puerto serial, me refiero concretamente a la obtensión del voltaje Vpp (que es segun los datasheet es mayor a 12v) lo cual lo hacia que no se pudiese trabajar directamente con un laptop (los cables convertidores serial-usb generan tensiones entre -6V y 6V, insuficiente para generar el Vpp) y tambien que fuese un programador 100% ICSP (lo cual en el JDM no era del todo cierto).

Creo que esas son las caracteristicas del programador JDM+ cualquier cosa que me vaya acordando que no este escrito lo ire corrigiendo en este mismo post. Cualquier duda me preguntan.

Los esquemas y el circuito impreso estan hechos con el ExpressPCB (solo disponible para windows :( )
Si pido por favor algo al o a los que quieran terminar el proyecto y es que mantengamos en proyecto bajo este mismo programa (es realmente muy sencillo de utilizar y da mejores resultados que otros programas similares que he probado) y tambien que no olviden donde empezo este proyecto (Venezuela) y quien lo inicio (Jose Hernandez) los que ayuden y terminen a hacer el proyecto tambien tendran su credito, espero que esto no sea mucho pedir, el trabajo que inverti en el y el tiempo no tienen precio, pero el reconocimiento (no monetariamente, es solo saisfaccion personal) para mi es suficiente. Tambien mantengamos el proyecto aqui en este foro y cuando lo tengamos listo nos ponemos de acuerdo y hacemos alguna documentacion del programador para hacer algo mas formal y poder distribuirlo en todas partes.
Tambien tratemos de usar componentes que sean de muy facil acceso y de momento nada de componentes superciales, en mi pais es muy dificil trabajar con electronica superficial, ya que los componentes no se consiguen y la unica forma de tenerlos es comprandolos en otros paises y para colmo de males tenemos control cambiario y solo tenemos un cupo anual de 400$ y de verdad es realmente dificil tener acceso a los componentes, otra idea es que el programador se mantenga en un bajo costo para que cualquier persona lo pueda hacer sin problemas.

Espero les guste y bueno es lo que me alcanzo el tiempo para hacer.

ATTE Jose Hernandez.

PD: Cualquier duda o lo que sea, avances o información, haganmela saber.

Fotos del prototipo:







 

Adjuntos

  • programador_max232_691.sch
    21.9 KB · Visitas: 386
  • programador_max232_v2_775.pcb
    15.4 KB · Visitas: 384
Está muy interesante este programador, pero me queda la duda de para que se usa el MAX232. Dices que se usa la alimentación del circuito del pic que se va a programar, pero si esa alimentación es 5V como consigues obtener el nivel VPP? Para eso se usa el MAX232?

Aún no he podido ver el esquemático ya que no tengo ExpressPCB, vere si lo consigo mas tarde para ver el circuito.

Y como dije, está muy interesante este programador.
 
Hola pic-man el programa lo consigues en http://www.expresspcb.com/ExpressPCBBin/ExpressPCBSetup.exe (estaba en el primer post ) y si efectivamente uso el max232 para obtener el voltaje Vpp haciendo unas conexiones entre ciertos pines y colocando un condensador, eso lo puedes ver en el esquema, tambien del max232 sale la señal de reloj para la programacion ICSP, la idea fundamental es que el circuito lo revisen y comenten que mejoras se le pueden hacer y tambien las dudas que se tengan que sean aclaradas.

Saludos.
 
El programador lo podemos hacer compatible con usb utilizando un circuito integrado de la serie FT232xx de la casa FTDI o un TUSB3410 de Texas instruments. Estos chips son un interfaz USB/RS-232. Funcionan como si el PC tuviera un puerto serie RS232 aparte, aunque en realidad es un puerto virtual que canaliza el tráfico de información a través del puerto usb, comunicándose directamente con el interfaz que readapta el protocolo a RS232 con niveles ttl (por lo que ya no es necesario utilizar el MAX232).
Para que funcione en la PC, sólo es necesario instalar el driver del puerto virtual y listo, el software programador (como IC-Prog) no notará la diferencia entre un puerto físico y uno virtual, siendo así el cambio transparente.
Con esta mejora podemos utilizar el programador en laptops, amplificadorando así el rango de usuarios.


IC's FT232xx:
FT232BM – Características
FT232BM - Ejemplo de diagrama

FT232BM – Datasheet
FT232BM - Guía de diseñadores
FT232RL – Características
FT232Rx – Datasheet

IC TUSB3410:
TUSB3410 - Datasheet
TUSB3410 - Ejemplo de diagrama
 
Hola Javilondo, el max232 es el que genera el voltaje Vpp con ese FT232 no se puede, se tendria entonces que buscar algun circuito que nos de el voltaje Vpp, algo que a mi no me gusta usar son los inductores... y es lo que he visto por ahi que usan para generar Vpp en otros programadores, si consiguen algo que sirva sin usar inductores podemos hacer algo bueno .

Los inductores por lo general introducen un poco de ruido a los sistemas donde estan... no los he usado y no se si existan filtros que reduzcan o eliminen esas interferencias... si alguien sabe algo seria bueno que nos dijera y asi probar variantes... Javilondo es mucho mas comodo trabajar en modo USB como comentas, entonces tendriamos que solo resolver el detalle de generar Vpp.

Yo tengo unos esquemas de como conectar los FT232XX y solo usa pocos componentes extras, son realmente sencillos de usar.
 
Hola JoYcEr182 !
Es justo lo que estaba buscando! Un programador por puerto serie con fuente externa! Que ídolo!
Bueno, después de los alagos, y las gracias! va una pregunta: ya que el programador no tiene zócalo... cómo debo conectarle al PIC (en mi caso un PIC12F675) los pines del conector para ICSP. Mi intención es, a partir de este programador, hacer uno con zócalo... nada más porque estoy acostumbrado a trabajar así (sacar el micro para programar y volver a colocarlo en su circuito después), que con Programación en Circuito...

De nuevo, Muchas Gracias!
 
Los programadores con zocalo no me gustan por que los microcontroladores tienen las patas muy debiles y sacarlos y meterlos a cada rato hace que se debiliten aun mas hasta el punto de romperse, lo ideal para este tipo de programador es usarlo en un banco de pruebas (protoboard) o incluso en el mismo circuito colocando los pines de programacion disponibles para el programador.

Los pines que se usan para realizar la programacion son: MCLR - VCC - GND - PGD - PGC en ese mismo orden como se ve en el esquema y en el PCB.
 
Ok! Pero esos pines, en el momento de programar, deben estar separados del resto del circuito donde esta colocado el PIC, no? O sea debo tener la forma de separar el PIC del circuito donde lo estoy usando para programarlo... verdad?
Gracias
 
JoYcEr182
Como se puede apreciar en el esquemático de tu programador, tu sacaste el Vpp del oscilador del MAX-232 con un arreglo de diodos y capacitores, no es así. Pues me basé en tu circuito para implementar dos elevadores de voltaje de 5 -> 14.6, basados en osciladores. Lo mejor de todo es que no requerimos de inductores que introducen ruido al circuito.
Se pueden usar en el programador JDM+ versión USB con los chips que les comentaba, pero debemos hacer uso de un circuito oscilador, puede ser el clásico 555.
Tales circuitos fueron simulados con ISIS de Proteus.
A continuación les dejo el archivo de ISIS para que lo simulen en casa con Proteus o con MPLAB VSM, también están las imágenes de las capturas de pantalla del Proteus.
 

Adjuntos

  • triplicador_de_voltaje_612.png
    triplicador_de_voltaje_612.png
    15.6 KB · Visitas: 128
  • triplicador_de_voltaje_2_230.png
    triplicador_de_voltaje_2_230.png
    15.1 KB · Visitas: 171
  • diagramas_109.zip
    26.7 KB · Visitas: 189
Para los que necesiten programar con zócalos y no quieran que se dañen las patitas de los chips, les dejo los archivos de una tarjeta de expansión ICSP que armé anoche, está basada en el Programador PIC Pablin II
Necesita que la fuente de Vcc y Vpp ya vengan desde el programador ICSP por lo tanto por el momento no es compatible con el programador de JoYcEr182, pero podemos hacer una modificación a su diseño para que saque 5V del puerto RS232 o USB
para elevar el voltaje necesario a Vpp (13.5V) podemos hacer uso de un oscilador y uno de los circuitos que les comenté en mi anterior post.
Está diseñada para ser usada con una sola base ZIF (Fuerza de inserción nula) de 40 pines que facilita la inserción/extracción de los chips donde se pueden empalmar con encapsulados más pequeños.
Está diseñada para programar:
- PICs de 40 pines.
- PICs de 28 pines.
- PICs de 18 pines.
- PICs de 8 pines.
- Memorias 24Cxxx.
La selección de los chips a grabar se lleva a cabo mediante dos jumpers.

A continuación está el archivo en ExpressPCB y sus respectivos PDFs para las pistas y serigrafía.
 

Adjuntos

  • jml_icsp_exp_153.zip
    30.1 KB · Visitas: 240
Hasta ahora yo solo he trabajado con la teoría y simulación, no he realizado físicamente ningún circuito, por lo mismo no he podido avanzar más, pero espero conseguir los materiales esta semana para realizar las prácticas necesarias.
Cuando tenga los resultados los postearé para que opinen si hay errores o posibles mejoras.

Saludos.
 
Javilondo buen trabajo, ese arreglo con el 555 no lo habia visto jejeje y funciona bien, asi si se puede trabajar con el FT232 para hacerlo usb. En el PCB que muestras veo que tienes un detalle en la parte de la recepcion de los pines entre tu tarjeta de expansion ICSP y el programador y es que los pines PGD y PGC estan invertidos (no se si era a esto a lo que te referias que no es compatible con el programador que aqui les deje) PGD es el 4to Pin y PGC es el 5to Pin, en tu diseño estan volteados. Que muy bien diseñado ese PCB tuyo. Gracias por compartirlo.

Otra cosa, tratemos de usar pocos componentes para que no sea tan grande el circuito final, me gusta mas el triplicador de voltaje que colocaste de primero que no tiene muchos componentes, ¿habra alguna forma de ir reduciendolos y que funcione igual? Espero no sea mucho pedir.

Saludos.
 
Quique dijo:
Ok! Pero esos pines, en el momento de programar, deben estar separados del resto del circuito donde esta colocado el PIC, no? O sea debo tener la forma de separar el PIC del circuito donde lo estoy usando para programarlo... verdad?
Gracias

Me refiero a que en tu circuito (cuando estes haciendo el circuito impreso o estando en el protoboard) deja la posibilidad de tener acceso a los pines que te mencione antes y con eso vas a poder prgramar el microcontrolador. Por ejemplo, yo cuando diseño mis PCB dejo acceso a esos pines mediante espadines a los cuales conecto el programador y listo. No tengo fotos ahorita para mostrar... espero que entiendas, si no dime y busco algo que veas para que quede claro a lo que me refiero.

Saludos.
 
En internet al buscar circuitos de aislamiento, uno de los más comunes de encontrar es:
icsp.gif

pero para programadores como el de JoYcEr182 que toman la alimentación del mismo circuito del PIC, habría problemas porque el voltaje de Vpp se drenaría a través de la resistencia hasta el Vcc y tendríamos así al rededor de 13.5V en ésa línea.
Para resolver esto, hice un cambio al circuito de aislamiento, consiste en colocar otro diodo en la fuente de alimentación del circuito, compartiendo el ánodo con el otro diodo y conectando su cátodo en la línea de alimentación del PIC, también he separado la resistencia de la línea de alimentación del PIC, que ahora solo toca al diodo y a la línea Vpp/MCLR del PIC. De esta manera es compatible con los dos tipos de programadores (los que utilizan la alimentación del circuito del PIC y los que tienen alimentación propia).
Como dicen, una imagen vale más que mil palabras por eso les dejo a continuación el circuito de aislamiento ICSP modificado:
 

Adjuntos

  • aislador_icsp_692.png
    aislador_icsp_692.png
    9.8 KB · Visitas: 272
JoYcEr182 dijo:
En el PCB que muestras veo que tienes un detalle en la parte de la recepcion de los pines entre tu tarjeta de expansion ICSP y el programador y es que los pines PGD y PGC estan invertidos (no se si era a esto a lo que te referias que no es compatible con el programador que aqui les deje) PGD es el 4to Pin y PGC es el 5to Pin, en tu diseño estan volteados.
Respecto a eso, las líneas de PGD y PGC sólo están invertidas en la conexión al programador ICSP, esto lo hice por practicidad para que la línea de PGC me quedara justo a un lado de la resistencia del led para así extraer la señal de reloj que indica que se está programando el PIC, pero aún así no hay problemas de conexión internos, sólo bastaría con fijarse que cada línea valla conectada a su par respectivo sin hacer uso de la posición de los pines (no todos los programadores ICSP tienen el mismo orden de pines).
Para los que quieran mantener la relación de pines con el programador JDM+ de JoYcEr182 les dejo un adjunto con el archivo.pcb modificado y también sus respectivos PDFs.

Javilondo dijo:
Necesita que la fuente de Vcc y Vpp ya vengan desde el programador ICSP por lo tanto por el momento no es compatible con el programador de JoYcEr182
Al decir que la tarjeta de expansión no es compatible con el programador de JoYcEr182, me refiero a que éste se alimenta del voltaje del circuito del PIC, pero como la tarjeta de expansión no tiene voltaje propio, sino que lo saca del programador, al conectarla al programador de JoYcEr182 o cualquier otro programador que requiera alimentación del circuito del chip a grabar, ni la tarjeta de expansión, ni el programador conectado tendrían fuente de poder, esto los hace incompatibles.
No se si me di a entender, si no es así, pueden preguntarme.
 

Adjuntos

  • jml_icsp_exp_207.zip
    30.3 KB · Visitas: 111
Hola a todos!
Yo armé el programador JMD+ de JoYcEr182 e hice un pequeño circuito para programar un PIC12F675 que quiero usar, pero no pude programar el microcontrolador... :p Uso el Ic-Prog, lo configuré como que iba a usar un JMD'y le invertí la señal del clock, como leí en otro post que había que hacer..., todo. El programa hace todos los pasos como si estuviera programando, pero cuando termina la verificación, tira un cartel que dice algo así como error en la posición 000h...
Podría alguno de ustedes poner en este foro las configuraciones apropiadas del IC-Prog para usar este programador?
Cómo ya dige antes, mi intención no es programar el PIC en el circuito a usar, así que para poder usar este programador usé una placa experimental y monté un zocalito con las señales del programador. Acá les dejo el esquema que use para la conexión, por si es que me mandé alguna macana...
Desde ya, muchas gracias por cualquier información que me puedan dar.
 

Adjuntos

  • conexion_para_programar_187.jpg
    conexion_para_programar_187.jpg
    19.5 KB · Visitas: 286
Quique, ese esquema de conexion es el correcto para programar con el JDM+, ese error es comun en el ic-prog... estoy cansado de verlo, prueba con esto, si tienes windows xp haz click en ajustes - ajustes de hardware - selecciona windows api, verifica que el puerto com es el adecuado y en retardo i/o colocalo en 5, entra ahora en ajustes - opciones - miscelanea verifica que este seleccionado el driver para windows xp ahora en la pestaña programacion verifica que este unicamente marcada la opcion de verificar despues de la programacion, esa es la configuracion que uso y funciona perfecto. Cualquier cosa avisalo y vemos como solucionamos

Saludos.
 
Ok! Gracias JoYcEr182, voy a configurarlo así como decís y te aviso que pasó

Una pregunta para Javilondo: cómo se puede adaptar la extensión que le hiciste la JDM+ para que tenga su propia fuente?, porque según entiendo, el JDM+ usa la fuente del circuito donde se encuentra el micro... Lo preparo como para que quede como en el esquema que usé yo (#17)?

Gracias a todos, y nos vemos.
 
JoYcEr182: ¿Podrías poner una imágen del circuito y el PCB, en vez de los archivos para ExpressPCB? Uso Linux y no tengo este programa. Me gustaría ver el circuito para poder hacer el circuito y el PCB en Eagle (Que es multiplataforma y somos varios en el foro los que lo usamos).



Salu2!
 
Atrás
Arriba