Programador de PIC

Este sitio se esta mudando a esta nueva direccion: http://www.myassembly.net

PROGRAMADORES DE PIC 
Seguramente muchos de ustedes habran hecho lo mismo que yo a la hora de armar algun proyecto con pic : hojear cientos de paginas buscando un circuito programador de PICs que funcione, y cuando se encuentra uno se arma, se prueba, y la torta no funciona. 

Pues este Post es para evitar eso, el siguiente "quemador" de PICs esta basado en el mitico JDM. 

Seguramente se preguntaran "¿y... esto funciona?". Puedo asegurarles que lo hace, simplemente hay que aprender a configurar el software que controla al programador. 

El software usado es el IC-Prog, que si bien este esta en la version ENGLISH, se puede conseguir la version en español. 

Deben tener en cuenta esto a la hora de configurar el icprog: 
En windows XP, boton derecho sobre el ejecurable y seleccionar propiedades (ejecutarlo como win98), teniendo win98 omitir este paso.Generalmente el puerto serie es el com1, darle un retraso de 5 segundos, y seleccionar "interface: Windows API" (en Win98 es Direct I/O creo).Asegurense de seleccionar el tipo de programador "JDM Programer". 

Diagrama del hardware
 

 

Lista de materiales 

 

Rayos X de las pistas 

 


El archivo que incluye el software: 

http://www.megaupload.com/?d=AG8HF7ZF 

Trae un archivo de ayuda, pero el uso del soft es bastante intuitivo. 
tambien dejo el link para el PCB y el Diagrama (se abren con PCB Wizard y Live Wire): 

http://www.megaupload.com/?d=JO0X82MX 

Lo técnico: 
Como pueden observar no existe ninguna fuente de alimentación externa. El circuito se alimenta del puerto 
serial de la PC a través del conector DB9. El voltaje de alimentación VDD se obtiene de los mismos pulsos de reloj (pin7 del DB9), los cuales son rectificados por los diodos D3 y D4 y estabilizado a 5 volt mediante el diodo zener D5 (5.1V) y el capacitor C1. De la misma manera, se obtiene el voltaje de programación VPP, cargando el capacitor C2 y estabilizando con el diodo zener D6 (8.2V) el cual se suma al voltaje del zener D5 (5,1V), obteniéndose así 13.3 Volt suficientes para realizar la programación del PIC. Se han adicionado el LED L1 para visualizar el proceso de grabación o lectura del PIC, así como el LED L2 para indicar que el circuito se encuentra alimentado, además, si se colocara un PIC en corto, este LED se apagará o bajará Significativamente su intensidad. 
PGD = Datos de programación 
PGC = Pulsos de reloj para la sincronización 
.........BLA BLA BLA ZZZZZZzzzzz 

Es preferible que visiten la pagina de donde salio esta idea: 

http://www.jdm.homepage.dk/newpic.htm 
http://www.ic-prog.com/index1.htm 

PD:seguramente en las imagenes de los PCB (los que tienen la cara de carlitox) aparece una pista que tiene unas marcas y esta cortada, esto lo hice porque segun el esquema que tengo (y me olvide de publicar la imagen) eso no era asi, pero igual las soldé y anduvo, aunque solo he programado sobre 16F84 y 12F629 (hay que hacer coincidir ls pines 1-4 de este ultimo con 1-4 del zocalo de 18 patas) .Es posible que los diodos zener (5.1 y 8.2v) deban intercambiarse de lugar, no lo recuerdo (saque esto de una revista y habia una diferencia entre el esquema y el PCB, si no les anda, avisen y les paso una imagen de la publicacion original). 

Tambien descubrí un error en la lista de materiales, me lo informó un compañero de la facu, Q3 es un transistor PNP BC557, en la lista del PDF (descarguenlo para ver) son los 3 iguales. 

Cualquier contribucion o aporte se agradece 

.............. Y de yapa fotos del proyecto 

http://www.megaupload.com/?d=MPNDMOSN 
(En las fotos hay 2 programadores, el de placa mas oscura lo hice yo, el otro lo compre cuand
o no me anduvo el mio , despues descubri que estaba mal configurado el IC-Prog) 

Fuente Taringa.net

CONSTRUYE TU PROGRAMADOR DE PIC16F84 

Temas:
  • Circuito programador
  • Lista de materiales
  • Técnica de la acetona
  • Software usado para programar
  • Programando Otros PIC's
  • Puerto paralelo
  • ¿Problemas?
  • ¿No quieres construir el programador o no tienes tiempo para hacerlo?

Circuito programador 

Construir tu propio programador es realmente fácil, sólo tienes que construir un circuito como el que se ve en la siguiente figura:

 

El diagrama está ideado para ser implementado en una placa de 10x10 cms. 
Al abrir el archivo usando CIRCAD deberías ver una imagen como esta: programador.gif 

Si no vas a ocupar CIRCAD para ver el diagrama del circuito, entonces puedes usar e imprimir los siguientes archivos en formato GIF: NOTA: Fíjate que al imprimir los diagramas hayan quedado efectivamente en tamaño 10x10 cms. 

¿Que para qué se necesitan tantos archivos? 
El Diagrama de la placa con componentes te servirá de guía a la hora de ir colocando y soldando los componentes. El Diagrama de la placa sin componenteslo usarás en el caso de que ocupes la técnica de la acetona u otra similar. El Diagrama de la placa sin componentes (rotado horizontalmente) te será útil si es que usas la vieja y despreciada técnica que consiste en que pegas el papel sobre el cobre, con la cara de la hoja que tiene el dibujo mirando hacia ti, no hacia el cobre, luego marcas con una punta de clavo o taladras directamente en los "pads" u hoyos del dibujo a través del papel, luego retiras el papel y usas los agujeros sobre el cobre para ir conectando al ojo unos con otros según lo que indica el diagrama del circuito. Esta técnica es efectiva si se aplica con cuidado, pero es probable que te equivoques al conectar dos pads o te pueden quedar líneas chuecas. Es por eso que yo recomiendo usar acetona. Finalmente, el Diagrama de la placa sin componentes, incluye capa superior...es más o menos evidente que sirve para hacer las conexiones en la capa superior de la placa. 

Lista de materiales 

A solicitud de muchos partidarios de la "ley del mínimo esfuerzo", aquí está la lista de materiales para el circuito antes presentado: 
  • 4     Resistencias 3.9 kohms
  • 2     Resistencias 2 kohms
  • 4     Resistencias 10 kohms
  • 1     Condensador 330 uF 25V
  • 2     Condensadores 0.1 uF
  • 1     Condensador 390 pF
  • 1     Regulador voltaje 5V 7805
  • 1     Regulador voltaje 9V 7809
  • 1     Puente rectificador onda completa
  • 1     Buffer 74LS07
  • 2     Transistores PNP 2N2907
  • 1     LED Amarillo
  • 1     LED Rojo
  • 1     Base 18 pines
  • 1     Conector DB25 macho
  • (1    Transformador 220/12 VAC 500 mA)

El circuito fue obtenido de la página de Wichit Sirichote. También puedes visitarla en su mirror local

Para facilitarte un poco las cosas, hice el diagrama del circuito anterior usando el software CIRCAD'98, disponible en http://www.holophase.com/. Te recomiendo que aprendas a ocuparlo, es relativamente sencillo y te será extremadamente útil en el futuro. Puedes descargar el archivo del programa.

El transformador mencionado en la lista de materiales puede ser usado como fuente de alimentación para el programador. En el esquemático se dice que la entrada debe ser "DC >17 V". Esto no estrictamente cierto (recuerda que yo no diseñé el programador, sólo aporté con hacer el diagrama para pasarlo a placa). Lo más razonable es obtener la energía directamente de la red eléctrica, a través de un transformador. Un trafo de 220/12 V funciona muy bien para estos efectos. Además, debido a que el programador consume muy poca corriente, basta con que el secundario del trafo sea capaz de suministrar unos 100 o 200 mA. Dar un poco de holgura siempre es bueno, especialmente pensando en que el mismo 
transformador nos puede servir para alguna otra aplicación. Los reguladores de voltaje 78XX soportan hasta 35 V en su entrada, por lo que el transformador usado puede ser hasta 220/24 VAC (recordar: 24 VAC rms = 24*raiz(2) Vmax = 34 Vmax) y el sistema funcionará bien, pero dado que hay una mayor caída de tensión en los reguladores, éstos disiparán más potencia y se calentarán más. Por lo tanto, es recomendable utilizar un trafo con secundario de voltaje de cerca de 12 VAC. 


En todo caso, se podría obedecer lo que dice el esquemático y usar voltaje continuo como alimentación. En ese caso, el único aporte del puente rectificador es que no importa la polaridad con que se conecté la alimentación, siempre a la salida del puente se tendrá la polaridad correcta. (De todas maneras, encuentro un poco absurdo usar corriente continua, pues el puente rectificador y el condensador de 330 uF podrían ahorrarse). 

Software Usado Para Programar 

En la página de Wichit Sirichote se recomienda que este programador se use con el software WPicProg16 V1.20, escrito por Nigel Goodwin. Funciona super bien si vas a programar el PIC16C84, F84 o F83. Pero si en Casa Royal o Victronics te vendieron el PIC16F84A o quieres programar otro PIC, entonces este software ya no te funcionará. Entonces mejor usemos de una vez un software que funcione para todos los PIC's, como se verá a continuación. 

Programando Otros PIC's 
Aunque parezca increíble, el sencillo programador que hemos construido sirve hasta para programar los microcontroladores grandes como el PIC16F877 y muchos otros aparatos. Para ello debemos usar otro software que nos de más opciones. He tenido buenos resultados con el IC-Prog 1.05A, que puedes bajar directamente desde http://www.ic-prog.com/ o desde aquí mismo. Es importante que uses el IC-Prog 1.05A. La última versión (1.05C) a mi no me funcionó con este programador. 
Ve el archivo adapters.jpg. Ahi se ven las equivalencias entre los pines necesarios para programar un 16F84 y otros PICs, en particular el 16F87X. Entonces, para programar un PIC grande, por ejemplo el PIC16F874, se puede usar el mismo programador que en teoría sólo sirve para los PICs chicos, pero puenteando hacia los pines respectivos del PIC grande. Dentro del programa debes elegir como programador conectado al puerto paralelo el "TAIT Serial Programmer". Lo único que hay que cambiar es en Settings->Hardware, frame de Communication: marcar Invert MCLR & Invert Vcc, Delay 10 (aunque puedes probar con un poco menos para que sea más rápido, pero menos confiable). ¡Funciona! 

En caso de que estés ocupando Windows XP entonces debes bajar el IC-Prog NT/2000 driver, instalarlo en el mismo directorio del ic-prog y en el menú Settings->Options->Misc habilitar la opción Enable NT/2000/XP driver. 

Hay que tener en consideración de que si tú simplemente sacas o sueldas algunos cables desde la base para el 16F84 hacia un protoboard para programar un PIC "grande", entonces hay una buena posibilidad de que eso no funcione.  ¿La razón? Ocurre que algunos PICs, en especial los 16FXXXA, son más sensibles al ruido introducido durante la programación.  Si tú tienes cables largos acarreando señales que varían rápidamente en el tiempo, llegando a un protoboard (ruidoso por definición), entonces la programación puede o no funcionar.  ¿La solución? Claramente, hacer una placa nueva para poder programar estos otros PICs o, si no tienes tiempo o ganas de hacerlo, ¡comprarme una!

Puerto paralelo 

A continuación puedes ver un esquema con el significado de cada pin del puerto paralelo:
puerto paralelo PC_hembra.gif 

La dirección indicada en el diagrama para cada pin es visto desde el puerto del computador

¿Problemas? 

Hasta el momento he tenido las siguientes experiencias:

  • Si por error colocas el PIC al revés en el programador y luego éste deja de funcionar, entonces lo más probable es que se hayan quemado los transistores. Cámbialos y debería volver a funcionar.
  • Si tienes problemas al programar algún aparato, prueba aumentando el delay o retardo. En ocasiones eso soluciona el problema.
  • Por alguna razón, a mi no me funciona la última versión del IC-Prog, es decir, la 1.05C con este programador. Con la versión 1.05A todo anda perfecto.



Otro Circuito Programador de Pic 16f84

Con este Circuito se  pueden programar micros de 8, 18, 28 y 40 pines así como memorias seriales de la familia 24.

Los dos diodos en los pines 5 y 6 del puerto paralelo se encargan de unir eléctricamente las salidas D4 y D5 que son las encargadas de comandar Vpp1 y Vpp2 desde el programa ICProg. Dado que nuestro equipo no requiere dos vías de VPP individuales decidimos "puentearlas" con estos diodos para proteger eléctricamente el puerto paralelo de la PC. La llave selectora permite determinar que tipo de PIC se va a programar. Colocándola en la posición superior se pueden programar micros chicos y medianos (de 8 y 18 pines) mientras que colocándola en la posición inferior se pueden programar micros grandes (de 28 y 40 pines).

Vemos aquí el conexionado de la placa de circuito impreso que contiene los zócalos para los distintos tipos de PICmicro que podemos programar. Pensamos que sería mejor hacer el sistema en dos placas, una con la electrónica en el interior del gabinete y otra con sólo los zócalos para colocar en el exterior del gabinete donde será mas simple insertar o retirar los micros a programar.

Podemos, además, equipar a nuestro equipo de un zócalo de 8 pines adicional como el visto arriba para poder leer y programar memorias seriales de la familia 24.

Como fuente de alimentación debemos usar una de 12V (NO REGULADA) de 300mA en adelante de corriente.

El programa a utilizar es el ICProg, el cual podemos descargar de www.ic-prog.com o encontrarlo en nuestro CD de Enero 2003.

En la pantalla de configuración del programa ICProg establecer como programador el "Propic II programmer" y tildar la casilla "Invertir MCLR". Luego de esto el LED indicador PIC se encenderá indicando que es posible insertar o quitar pics de los zócalos.

IMPORTANTE
El LED marcado como "PIC" indica cuando no hay presencia de tensión de programación (VPP) en el zócalo. Cuando este LED esta apagado la tensión está presente en los zócalos PIC. Nunca insertar o quitar microcontroladores de los zócalos estando este indicador apagado.


Fuente http://www.pablin.com.ar