Programador de PIC serial JDM reducido ICSP


Este programador se desarrollo tomando como base el JDM original pero a diferencia del original se han eliminado algunos componentes que no eran necesarios, por ejemplo mi idea era utilizarlo directamente por ICSP, para ello he unificado la fuente ya que el JDM original se alimenta desde el puerto serial, es decir, alimenta el microcontrolador para poder ser grabado pero cuando nos encontramos con la programación en circuito tenemos el problema que el microcontrolador ya esta alimentado por la fuente de su circuito y también por la fuente del JDM, entonces al unificar la fuente ya no tenemos este problema, podemos programar el microcontrolador sin apagar la fuente.
El circuito solo tiene tres resistencias que son de limitación de corriente para el Clock, Data y Vpp, y un diodo zener de 13V 1/2W para la tensión del pin Vpp no pase los 13V.
Luego en el JDM original vemos dos transistores y otros diodos y resistencias, esto es porque aparte posee una fuente de 5,1V para alimentar el micro y también conmutar cuando hay señal, nosotros no lo utilizamos ya que la fuente es unificada.
Un software de grabación de microcontrolador por serie para JDM podría ser el ICprog, PonyProg, etc… el problema que he encontrado con estos es que no están actualizados para los últimos microcontroladores, tras una búsqueda en la red encontré el PICPgm que se encuentra disponible de forma gratuita tanto para Windows como para Linux, podemos encontrarlo en el siguiente link.




19 comentarios:

  1. Muy útil tu articulo pero quería preguntarte si Es posible modificarlo para poder usar el programador como JDM-LVP y trabajar con un adaptador USB->serial y sacar los 5v de un segundo puerto serie????

    ResponderBorrar
    Respuestas
    1. Es buena pregunta, seria un buen aporte a la pagina ya que es útil, porque las pc's últimamente no traen puerto RS232, y el usb es mas practico.
      Lo que yo aria es usar programación en modo LVP, para el cual no es necesario los 13V en MCLR/VPP, sino que basta con poner a nivel alto (+5V) el pin PGM, de esa forma el microcontrolador entra en modo LVP.
      De esa forma se puede programar sin la necesidad de MAX232, ni elevadores de tensión. Podrías usar cualquier conversor USB/UART (MCP2200, FT232, etc...) ya que estos entregan TTL a su salida.
      Lo voy a probar y espero tener buenos resultados para poder compartir con ustedes!
      Claramente no es para cualquier micro, ya que no todos soportan LVP.
      Saludos.

      Borrar
    2. Hola, Sebas. Es cierto que las PC's modernas no traen puerto serial, pero sí traen un header interno como las viejas placas. La mía es una GA990FXA UD5 y efectivamente no posee puerto serial en el panel trasero, pero sí existe un header de nombre COMA (de pura casualidad lo vi). Averiguando, me encuentro conque era para añadir un puerto serie. Lo único que se necesita es lo siguiente: http://www.pccomponentes.com/fotos/cables_serie_paralelo/bracket_puerto_de_serie_rs_232.jpg

      Espero que les sea útil el dato. Un saludo, colegas!

      Borrar
    3. Muy buen dato, la pregunta del millón, el puerto que tiene internamente el mother, es RS232 o UART?, porque si es UART, tenes que adaptar los niveles de tensión para convertirlo a RS232. Aunque por la foto que mostras parecería ir derecho.
      Saludos.

      Borrar
  2. Hola como estas? Te hago una consulta, sirve para un pic16f628a? Muchas gracias!

    ResponderBorrar
    Respuestas
    1. hola, bien vos?, te sirve perfectamente, tene en cuenta que es para usar con un puerto serial nativo de una pc, no sirve con conversores USB/SERIAL.
      Saludos.

      Borrar
  3. Muchas gracias por tu respuesta, te hago unas consultitas mas si no es molestia. Primero, veo que en el PCB tenes un led y una resistencia que no estan en el esquematico, son solo para saber cuando tenes tension en el 7805 no? Por otro lado, se puede omitir toda la parte del 7805 y capacitores cuando tengo alimentacion directa en el PIC? Se puede alimentar al 7805 (B+ INPUT) con algun pin del puerto serie? Muchas Gracias!

    ResponderBorrar
    Respuestas
    1. Por nada para eso estoy!, es correcta tu observacion, es un led de encendido. que descuide en el diagrama. La fuente con el 7805 podes omitirla, siempre que le hagas llegar 5V al micro. Tendrias que ver el programa que utilizas para cargar el micro que a veces te permiten cambiar de estado algunos pines del conector, y eso podrias aprovecharlo para alimentar el circuito, con algun zener de 5V1. Saludos

      Borrar
  4. Hola sebastián, el regulador se puede reemplazar por un zener de 5v1 y una resistencia de 680r - 1k por ejemplo? El zener de 13V es necesario sí o sí? Medí y mi puerto serie no larga más de 10,5V.

    Sabés si el circuito anda bien en protoboard? Digo porque no sé la frecuencia que maneja, y un circuito parecido no me reconocía el PIC, en protoboard.

    Saludos y gracias.

    ResponderBorrar
    Respuestas
    1. Hola como estas, podes reemplazar el regulador por el Zener, el zener de 13V es como protección de Vpp, pero si no llegas a los 13V sacalo si queres. Yo esto al principio de mis pruebas (como siempre antes de pasarlo a pcb) lo probé en el protoboard sin ningún problema. Solo tene en cuenta el puerto de la PC, ya que he tenido alumnos que lo han realizado y han tenido problemas por el puerto de la PC, y otros no han tenido ningun problema, si vas a usar el puerto nativo DB9 de la PC no deberías tener problemas. si vas a usar un adaptador USB si.. ya que el 99% no utilizan todos los pines de control de flujo del RS232 que es lo que requiere este.
      Saludos.

      Borrar
  5. hola amigo tengo una pregunta este programador jdm me sirve para grabar un pic 18f4550? y he visto que otros programadores usan dos diodos zener uno es 5.1v y el otro es de 8.1v , me he dado cuenta que sustituistes el de 5.1v por un transistor regulador LM7805, pero porque usas el diodo zener de 13v y no uno de 8.1v ?

    ResponderBorrar
    Respuestas
    1. Hola como estas?, la verdad no lo he probado con ningun MCU de la linea 18F. lo he probado con algunos de la linea 16F y he obtenido buenos resultados. En si deberia funcionar, ya que es una interfase ICSP, el programa que uses para cargar el MCU tiene que soportar el PIC18F4550 (en mi caso use el PICpgm, pero podes usar cualquier otro que use puerto Serie y JDM). Es correcto reemplace el zener de 5V1 por un regulador 7805 y el Zener de 13V es porque para programar un PIC necesitas hasta 13V en el pin MCLR (para que entre en modo programacion) entonces de ahi el limitador a 13V. NOTA: el puero serial debe ser nativo ya que utiliza pines especiales de control que no suelen estar disponibles en los cables adaptadores USB.
      Saludos.

      Borrar
  6. Hola profesor , hay alguna posibilidad de usar un adaptador USB , por lo que entendi el poblema es que estos conversores no manejan el handshake del puerto es asi ?
    gracias muy bueno su blog.

    ResponderBorrar
    Respuestas
    1. Hola!, es verdad, el problema de los conversores USB Serial, es que el 90% de los que se encuentran comercialmente solo convierten Tx y Rx... no el resto, entonces no sirve por ejemplo para este proyecto. Se puede hacer si queres, con un FT232 que convierte de USB a Todos los pines del serial, pero en nivel TTL, si queres que sea 232 tenes que agregarle un MAX213.
      Saludos.!

      Borrar
  7. perdone mi ignorancia profesor, quiero que me aclare. puedo tener mi ciruito montado en un protoboard y sin quitarlo puedo conectar este programador, ya no necesito otra cosa mas. es decir. conecto cable serial, a este circuito. y de este circuito a mi protoboard es correcto.? muchas gracias por su respuesta

    ResponderBorrar
    Respuestas
    1. Claro con la programacion en circuito ICSP podes programar el microcontrolador sin sacarlo del circuito, lo único que tenes que tener en cuenta que las lineas de Data y Clock esten solo para el ICSP y no esten conectadas a otra cosa (solo al momento de grabar el micro).
      Saludos.

      Borrar
  8. Hola a todos, hace algun tiempo me funciono muy bien programando el pic-16f628A, luego volvi a utilizarlo y no me funciono casi termino comprando uno de los pickit2-3 que me parecen costosos por cierto; medi la entrada al pin 4 y veo que solo le llegan 11.1 V quite el diodo zener y funciono!!! ahora el problema que tengo es que programe el micro en _config MCLR_OFF y esto da problemas ya luego no detecta el micro lo trato de borrar y nada no se deja programar alguien le ha pasado he visto que es un problema comun hasta el fabricante recomienda evitar poner el MCLR_OFF; como recuperamos el micro para volverlo a programar :(

    ResponderBorrar
    Respuestas
    1. Hola, que raro lo del Zener, se habrá "gastado" porque en teoría debería ser de 13V, y me decís que regula a 11.1V, eso es raro.
      Por otro lado, el fuse, MCLR_OFF yo toda la vida los fui cambiando de ON a OFF, sin problemas, porque precisamente es lo que hace que puedas reiniciar por botón o no, es algo muy importante, quien es que te dijo que uses siempre MCLR_OFF? tene en cuenta que así vas a inhabilitar el MCLR y no lo vas a poder reiniciar mas.
      Lo de que te deje o no programarlo no creo que este ligado a esto, debe ser otro el problema, algún nivel de tensión o algún problema de conexión (teniendo en cuenta que tenias ese problema de 11.1V tal vez exista otro problema), tenes otro PIC para comprobar que el programador lee bien su memoria y eso?.Saludos.

      Borrar
  9. Hola muy buen proyecto me gustaría construir su diseño pero poseo solo puerto USB y por lo que he leído no funciona con convertidores USB/serial .
    Mi pregunta es si se podría programar un PIC con el HC340g?
    Espero su respuesta
    Muchas gracias.

    ResponderBorrar