Está en la página 1de 13

Programador JDM (TE-20) para PIC y EEPROMs por puerto

serie
 
Con el fin de poder grabar nuestros micro controladores PIC16F84 de www.microchip.com utilizados para poder realizar pequeños proyectos
os muestro los esquemas y manuales de este sencillo programador JDM o también conocido como TE-20. Se puede encontrar en cualquier
tienda de electrónica por unos 20€, pero si queréis que os salga mucho más barato solo tenéis que seguir los siguientes esquemas.
 
Con este sencillo programador podremos programar una gran variedad de PICs:
 

8 Pines:
- 12C5xx
- 12C67x
18 Pines:
- 16C55x
- 16C61
- 16C62x
- 16F628
- 16C71
- 16C71x
- 16C8x
- 16F8x
 
 
 
 
 
 
 
 
 
 
 
Con unas pequeñas modificaciones podremos también grabar las EEPROM 24Cxx y 24LCxx:
 

 
Adaptaciones parar programar los PIC16F873/876 (28 pines) y PIC16F874/877 (40 pines) en el programador JDM:
 

 
Lisa de Componentes:
 
• R1 - Resistencia de 10K
• R2 - Resistencia de 1,5k
• R3 - Resistencia de 100K
• R4 - Potenciómetro de 1K
• R5 - Potenciómetro de 10K
• C1 - Condensador electrolítico de 100µF 16v
• C2 - Condensador electrolítico de 22µF 16v
• D1 - Diodo Zener 5,1V
• D5 - Diodo Zener 8,2V
• D2, D3, D4 y D6 - Diodos 1N4148
• IC1 - Zócalo de 18 pin's
• IC2 - Zócalo de 8 pin's
• IC3 - Zócalo de 40 pin's
• IC4 - Zócalo de 28 pin's
• T1 y T2 - Transistores BC237
• T3 - Transistor BC307
• 1 Conector DB9 hembra con su carcasa y cable de 5 hilos a ser posible que sea apantallado.
• Circuito impreso para su montaje
 
Aquí tenéis el patillaje de los transistores y sus correspondientes PDFs:
 

                                 
 
NOTA: Si se tienen problemas programando los PIC16F84A tendremos que poner una resistencia de un 1k  en la línea RTS del puerto serie
y cambiar la resistencia de 100K por otra de 110K. Esto es debido a que esta versión del PIC funciona a unos valores de tensión diferentes. Lo
que he hecho ha sido añadir dos potenciómetros, uno de 10K y otro 1K y así poder simular las resistencias comentadas antes cuando
tengamos algún problema. Así lo podemos apreciar en el siguiente esquema:
 

   
 
Descripción Microcontrolador PIC:
 
Nos centraremos en la programación de los PIC16F84x por lo que tendremos que saber varias cosas sobre ellos y de sus dos versiones
PIC16F84 y PIC16F84A.

La familia de PIC16F8x son mini controladores d e 8-Bit de bajo costo y alto rendimiento gracias a la arquitectura RISC. Como características
destacables podríamos resaltar:
 
• Velocidad de trabajo máxima de 10MHz para el reloj de entrada.
• 1024 palabras de memoria de programa.
• 68 bytes de RAM.
• 64 bytes de EEPROM.
• 14-bit wide instruction words.
• 8-bit wide data bytes.
• 15 registros de hardware de funciones especiales.
• 13 entradas/salidas con dirección individual de control.
• Hasta 20mA por salida.
• Hasta 1,000 ciclos de borrado/escritura de FLASH mejorada.
• Hasta 10,000,000 ciclos de borrado/escritura de EEPROM.
• Retención de datos en EEPROM mayor de 40 años.
• Protección de lectura de código.
• Ahorro de energía con SLEEP mode.
• Baja de potencia de consumo.
 
El modelo PIC16F84A es una revisión del primer modelo, los cambios son pocos pero no por ello menospreciables:
 
• La velocidad de trabajo máxima aumenta hasta los 20MHz para el reloj de entrada.
• La potencia de las salidas ahora es de 25mA por salida.
• Mayor duración de la Flash que ahora aguanta hasta 10,000 ciclos de borrado/escritura.
• El voltaje de alimentación/lectura/escritura soportado disminuye de los 6.0v a los 5.5v *
 
* Por este motivo en algunos casos será necesario intercalar en el programador JDM una resistencia de 1K  en la línea RTS del puerto serie
para su correcta programación.
 
Para la correcta programación del PIC deberemos saber reconocer exteriormente la velocidad de trabajo entre otras especificaciones:
 

    
    
 
Para más información aquí tenemos los datasheet de las dos versiones del PIC16F84 y otro pdf resumiendo las diferencias entre ellos:
 
PIC16F84                                     PIC16F84A                                     Diferencias
 

 
Programación del Microcontrolador PIC:
 
 Para la programación utilizaremos el programa www.IC-Prog.com. La última versión la podéis bajar visitando la Web del programa.
   El IC-Prog es compatible con los sistemas operativos Windows 95/98/NT/2000/ME/XP y solamente requiere un procesador 386 y 8MB de
RAM.
 
Recomendaciones:
 
- Nunca sacar o poner el PIC en su zócalo con el programador conectado al puerto serie.
- Nunca poner dos integrados a la vez (PIC y EEPROM).
- El puerto serie en donde conectemos el programador debe estar configurado de la siguiente manera:
 
- Bits por segundo: 9600 (si tenemos problemas podemos bajarla hasta los 2400)
- Bits de datos: 8
- Paridad: Ninguno
- Ninguna Bits de paridad: 1
- Control de flujo: Xon/Xoff
 
Configuración del IC-Prog:
 
 Nada más ejecutar el programa la primera vez nos aparecerá una ventana de configuración:
 

 
 En programador elegiremos el tipo de programador que vamos a usar, que en nuestro caso es el JDM Programer.
 En puertos deberemos elegir el puerto serie donde tenemos conectado el programador.
 En Interfaz seleccionaremos Direct I/O
 En comunicación dejaremos todas desactivadas.
 El retardo I/O lo dejaremos a 10, pudiendo lo subir si no conseguimos programar correctamente en ordenadores muy rápidos.
 Después de esto lo primero que haremos es ir a Settings >>  Options
 

 
 y cambiar el idioma de la aplicación
 
 
También activaremos dos opciones de verificación
 

 
 y nos aseguraremos de que esta deshabilitada la opción de "Habilitar MCLR junto a Vcc"
 

 
Para que funcione correctamente en Windows XP deberemos hacer lo siguiente:

1. Seleccionar el archivo icprog.exe


2. Presionar el botón derecho de ratón
3. Ir a propiedades
4. Ir al menú de compatibilidad
5. Seleccionar el modo de compatibilidad Windows 2000 o Windows 98 / Windows ME
6. Presionar el botón Aplicar
7. Presionar el botón Aceptar

 Además deberemos tener el archivo icprog.sys en el mismo directorio en donde esta el icprog.exe. Después ejecutaremos el programa e
iremos a ajustes, opciones y  seleccionaremos la pestaña de miscelánea. Ahí activaremos la opción de "Habilitar Driver NT/2000/XP".
 

 
Programación del PIC16F84A:
 
Lo primero que haremos será elegir el tipo de integrado que vamos a programar:
 

 
Deberemos indicar el reloj que va a usar el programador para acceder al PIC. Esto lo configuraremos según el PIC a utilizar:
 
           - Si es de 4MHz (PIC16F84 -04) seleccionaremos XT y en bits de configuración activaremos la opción Power Reset (PWRT) y
dejaremos desactivadas las otras dos opciones de Watch Dog (WDT) y Code Protection (CP).
          - Si es de 10MHz o 20MHz seleccionaremos HS y en bits de configuración activaremos la opción Power Reset (PWRT) y dejaremos
desactivadas las otras dos opciones de Watch Dog (WDT) y Code Protection (CP).
 
Si queremos proteger el código que le programamos al PIC para que nadie pueda leerlo a través de un programador podemos activar el bit de
configuración Code Protection (CP) con el protegemos el código, por tanto el IC-PROG nos dará error  en la verificación (leer el PIC) ya que
esta bloqueado.
 
  
 

 
Antes de programar nos cercioraremos de que el PIC está vacío. Ejecutaremos el comando "Borrar todo".
 

 
El proceso de borrado es realizado por el IC-Prog de una manera muy "alegre". Para cerciorarnos de que realmente el PIC ha sido borrado
podremos ejecutar el comando "Verificar Blanco" y si realmente está vació no dará un mensaje de que el dispositivo está en blanco. Si no es
así no dirá lo contrario y tendremos que verificar el programador y las opciones de configuración.

 
Ahora deberemos elegir los datos que programaremos en el PIC, para ello iremos al menú Archivo y Abrir archivo.
 

 
Buscaremos el archivo con extensión HEX que es el que contienen los datos a programar.
 

 
Con el archivo HEX ya cargado podemos proceder a la programación del PIC.
 

 
 

 
Bien una vez hecho esto ya tenemos nuestro PIC programado y listo para funcionar.
 

Error programación de código en la dirección 0000h


 
Este error es el más común que puede producirse por multitud de causas… Primero tratar de revisar 10 veces el circuito montado, conexiones,
que los diodos funcionen y todo lo que se nos ocurra, la mayoría de las veces el problema está en el montaje que hemos realizado….
 
Probar con un PIC16F84 sin la A, este es más antiguo pero no da tantos problemas, pero si no tienes uno a mano revisa lo siguiente:
 
Probar el programador en otro ordenador, más antiguo mejor… así sabremos más o menos si es del programador o del equipo.
 
Pautas a seguir con el error 0000h:
 
- Comprueba si estas usando el sistema operativo Windows XP o 2k que tienes el archivo icprog.sys en el mismo directorio que el IC-Prog y
además deberás tener activada la "Habilitar Driver NT/2000/XP".
 
- Comprueba la velocidad de tu puerto serie que no sea mayor de 9600, también puedes probar con velocidades más bajas. El puerto debe
estar configurado de la siguiente manera:

    Bits por segundo: 9600 (o menos en caso de errores)


    Bits de datos: 8
    Paridad: Ninguna
    Bits de paridad: 1
    Control de flujo: Xon/Xoff
 
- Si quieres programar un PIC16F84A puede que tengas problemas porque este modelo soporta 0.5Voltios menos, para solucionar este caso
te remito al 3º esquema que hay en la guía del programador JDM, en el que se añade una resistencia de 1K a la línea RTS y otra de 10K en
serie con la resistencia de 100K.
 
- Asegurarnos que seleccionamos bien las opciones antes de borrar todo y verificar:
 
Deberemos indicar el reloj que va a usar el programador para acceder al PIC. Esto lo configuraremos según el PIC a utilizar:
 
    - Si es de 4MHz (PIC16F84 -04) seleccionaremos XT y en bits de configuración activaremos la opción Power Reset (PWRT) y dejaremos
desactivadas las otras dos opciones de Watch Dog (WDT) y Code Protección (CP).
    - Si es de 10MHz o 20MHz seleccionaremos HS y en bits de configuración activaremos la opción Power Reset (PWRT) y dejaremos
desactivadas las otras dos opciones de Watch Dog (WDT) y Code Protección (CP).
 
- También puedes probar bajando el retardo I/O a un valor menor de 10 en ajustes de hardware 

También podría gustarte