English Version Spanish Version

Plataforma de Hardware MIDIbox, Módulo programador JDM

NOTA: ESTE MÓDULO SE HA REEMPLAZADO POR EL MBHP_BURNER!

El programador JDM es una solución de bajo coste para la introducción de un programa en la memoria flash interna del PIC. Además de los planes originales de Jens Dyekjær Madsen, que puedes encontrar en esta web, también hay muchos esquemas modificados en la web. R1 y el voltaje de D5 son modificaciones adicionales que son necesarias para todos los PICs recientes que vienen con una capacidad de programación de bajo voltaje (que, de hecho, el programador JDM no utiliza y debe ser deshabilitada con la resistencia pulldown en el pin RB3) y un valor ligeramente incrementado para el diodo Z para cumplir las especificaciones de programación del  PIC16F87x y PIC18F452 (Nota: si no puedes encontrar un zener de 8,7V, coge uno de 8,2V, funcionará en la mayoría de los casos).

IC-Prog por Bonny Gijzen parece ser el software de quemado más flexible, ya que no solo soporta el JDM, sino muchos otros programadores. Se puede descargar aquí: http://www.ic-prog.com. Configura IC-Prog como se describe en el archivo de ayuda y carga el archivo .hex de MIDIbox. Este archivo incluye el volcado de memoria del firmware y todas las configuraciones necesarias:


Pulsa aquí para verlo en tamaño completo - Recuerda que los datos y  checksum dependen del firmware (archivo .hex )que hayas cargado

Antes de empezar a programar el chip, por favor, revisa tu circuito de programación en el menú Hardware Check .
Importante: no midas los voltajes con un osciloscopio o instrumentos similares que estén conectados a tierra como tu PC, ya que esto falsificaría los resultados de la medición: (el JDM usa al conexión de tierra para Vdd). Usa un multímetro con batería. Sigue estas instrucciones:

  • Ve a Settings->Hardware menu, ponlo en "JDM Programmer", selecciona el Puerto (COM1, COM2, ...?), Selecciona Interface Direct I/O (bueno para Windows 9x) o API (Windows ME/NT/2000/XP). Comienza con I/O Delay 0, No inviertas ninguna señal:
  • Ahora selecciona el dispositivo correcto:: Settings->Device->Microchip PIC->PIC18F452 (o PIC16F874 o PIC16F877 para MIDIboxes PIC16F )
  • Start Settings->Options, ve al sub-menú "Programming" 
  • Habilita "Verfiy after programming" y "Verify during programming". La última opción asegura que se te notifiquen inmediatamente los errores de programación. La primera opción es especialmente necesaria para los derivados de PIC16F87xA, ya que IC-Prog no verifica estos chips durante la programación.
  • Ve al submenú "Misc", habilita "Vcc control for JDM" y selecciona "Realtime" en Process Priority
  • Ve a Settings->menú Hardware Check
  • Prepara tu multímetro y revisa los voltajes de tu programador.
    Nota: cuando se deshabilita una señal, el voltaje cae hasta 0V muy, muy despacio, ya que los capacitadores no se descargan con una carga. Así que no estés pendiente de los valores de señales desactivadas, solo revisa las señales habilitadas.
    Nota2: los voltajes cambiarán a los valores correctos y especificados cuando haya un PIC en el socket. El propósito de la revisión de hardware no es ver los voltajes correctos, sino asegurarse de que las señales puedan ser controladas (switched on/off) por tu PC. Si te quieres asegurar de que el voltaje no sea demasiado alto en la carga para verificar que el circuito esté correctamente cableado, conecta temporalmente una resistencia de 1k entre Vss y el "pin en pruebas".
  • ¡¡¡Asegúrate de que no haya PIC en el socket de programación!!!
  • Pulsa sobre "Enable Data Out": La caja de Data In debe ser automáticamente seleccionada para soporte de hardware (Data Out->Data In). Desconecta "Data out" de nuevo. No te preocupes si Data In se acciona en los siguientes tests, este es el comportamiento normal.
  • Pulsa sobre "Enable MCLR", mide el voltaje entre Vss (Pin 12/31) y MCLR# (Pin 1) : ca. 14 V
  • Deshabilita todas las señales
  • Pulsa sobre "Enable Vcc", mide el voltaje entre Vss (Pin 12/31) y Vdd (Pin 11/32): ca. 5 V
  • Si esta prueba falla, asegúrate de que la opción "Vcc control for JDM" esté activada en el submenú  "Misc"(Settings->Options)
  • Deshabilita todas las señales
  • Pulsa sobre "Enable clock", mide el voltaje entre Vss (Pin 12/31) y RB6 (Pin 39): ca. 5 V +/- 1 V
  • Deshabilita todas las señales
  • Pulsa sobre "Enable Data Out", mide el voltaje entre Vss (Pin 12/31) y RB7 (Pin 40): ca 5 V +/- 0.5 V
  • Ahroa enchufa el PIC en el socket de programación.
  • Start Command->Read All
  • Durante la lectura:
    Mide el voltaje entreVss (Pin 12/31) y MCLR# (Pin 1) : ca. 13.7 V
    Mide el voltaje entre Vss (Pin 12/31) y Vdd (Pin 11/32): ca. 5.1 V
    No tiene sentido medir los voltajes de los otros pines, ya que se accionan muy rápido.
    Nota: El programador JDM no funcionará cuando pruebes estos pines con un osciloscopio (GND->Earth problem)
  • Si no mides 13.7V entre Vss y MCLR cuando el PIC esté enchufado, puedes incrementar/decrecer el voltaje con el I/O Delay en el menú Hardware. Retrasos más bajos incrementan el voltaje, retrasos más altos decrecerán el voltaje! Me di cuenta de que no se pueden alcanzar 13.7V cuando se accede al JDM a través de las funciones API de Windows
  • Start File->Open File: carga el firmware (archivo .hex ) en IC-Prog
  • Start Command->Program All
  • Ahora pasarán unos 3 min. hasta que el PIC esté programado. Si la escritura no funciona, IC-Prog lo notificará como "Verify failed" cuando esten marcadas "Verfiy after programming" y "Verify during programming" en Settings->Options->submenú Programming 
    Nota:Parece que con algunos PCs, el proceso de programación solo pasa cuando el pin 5 (GND) del enchufe SubD-Plug está conectado con el chásis de metal(tierra) del conector.

Después de que la programación esté hecha, tu PIC estará preparado  :)

Descarga

los datos PCB se pueden visionar, modificar y convertir con Eagle Light
Módulo  Esquema Datos de Base Vista rápida
MBHP_JDM_V2 mbhp_jdm_v2_sm.gif mbhp_jdm_v2.brd mbhp_jdm_v2.gif
Información adicional
Archivo TamañoDescripción
mbhp_jdm_orderlist.txt 1k Lista de pedido para Reichelt

Compatibilidad

Ver la página original de Jens Dyekjær Madsen

Puertos Disponibles

El módulo JDM proporciona las siguientes interfaces:

Nombre Nº. de pins Descripción
J1 9 Esta es la interfaz para el puerto COM de tu PC. Hay que usar un socket 9-pole sub-d (hembra).
J2 10 Esto es la interfaz de programación en-circuito para J3 del módulo MBHP.

Componentes Utilizados

Aquí hay una lista de los componentes utilizados. Puedes encontrar una lista de pedido completa para Reichelt y Mouser en este sitio, la lista de partes Mouser para US: ver Web de SmashTV, si tienes una lista de pedido para un distribuidor de tu país, siéntete libre de publicarlo en esta página!

Guía de Soldadura

Empieza soldando los dos puentes que te evitarán tener que hacer una placa de dos capas. Puedes usar las patillas cortadas de capacitadores y resistencias antes de tirarlas! :-)
Coloca los componentes: socket-IC, Resistencias, Capacitadores, Diodos, Transistores, Conectores...
Esta imagen muestra los dos puentes adicionales en el conector de programación en-circuito , hecho con cables aislados.
Conecta el programador a tu PC y mide los voltajes como se describe arriba.
Después, enchufa el PIC en el socket e intenta programar el chip.
También puedes programar el PIC con un Adaptador de Programación En- Circuito.
Esto es un conector PCB 1:1 2-filas de fabricación propia , como los componentes de PC.
Otra vista del conector casero. Mira la página LCD, para ver cómo se hace este conector.
El mismo circuito en una placa de vectores.

Solución de problemas

  • Compara tu circuito con el esquema y la base PCB una y otra vez- Revisa especialmente la polaridad de los diodos, capacitadores y transistores. Asegúrate de que las soldaduras estén bien (sin falsos contactos)
  • IC-Prog a veces se olvida alguna opción bajo circonstancias desconocidas (por ej. el retraso I/O y el número de puerto COM ). Así que si falla el proceso de quemado, asegúrate de tu configuración no se ha cambiado.
  • Prueba diferentes valores de retraso I/O - ver también este post.
  • Sigue este enlace si eres usuario de WinXP (¡gracias Rowan!)
  • Usa la función de verificación de IC-Prog para asegurar que el firmware se haya quemado correctamente si ves que el PIC no funciona.
  • No quemes un firmare de PIC16F877 en el PIC18F452 - el PIC18F no tiene código compatible!
    Todos los firmwares PIC16F (usados en los anteriores proyectos) están publicados como un archivo .hex file, para el PIC18F solo tienes que quemar el  Bootloader, así el sistema operativo y las aplicaciones serán programadas vía MIDI.
  • Aquí hay algunas historias de éxito (problemas raros que han sido resueltos) Historia #1 Historia #2 Historia #3  Historia #4
  • Si el voltaje MCLR# no fuera suficientemente alto (este problema se ha visto en portátiles, pero también en PCs con un puerto COM débil), puedes proporcionar este voltaje desde el exterior como en el esquema de debajo.Usa o dos baterías de 9V o un PSU que entrega al menos 15V. No hace falta ningún regulador ya que los diodos zener limitan el voltaje. No olvides la resistencia de 220 Ohm  - que limita la corriente y protege el circuito JDM.
    alternative external power supply for JDM
  • Enchufa el PIC directamente al socket del módulo JDM cuando lo quemes por primera vez, porque un PIC borrado necesita una resistencia pull-down en el pin RB3 (PIC18F452: en pin RB5!) que deshabilita el modo de programación de bajo voltaje:
    disable the LVP mode
  • WinPic800 es un software de programación alternativo -merece la pena probarlo si falla IC-Prog. También soporta PICs más nuevos como el PIC18F4620.
    MTE ha escrito alguna información en el Wiki.


Last update: 2015-09-24

Copyright 1998-2015, Thorsten Klose. All rights reserved.