You are on page 1of 22

Programador de microcontroladores Pics

http://www.inventable.eu/2013/03/27/062-programador-de-pics/

Programador de microcontroladores Pics


Posted on 27 marzo 2013 by inventable
121 Comments Leave a comment

Como prometido tiempo atrs, me animo a publicar un programador de microcontroladores


Pics que he construido siguiendo el modelo del PicKit2 de la Microchip y
aprovechando la idea de Suky (http://www.micros-designs.com.ar/pickit2-clone-5v3-3v/)

para poder trabajar tambin con micros de 3,3V. En mi caso he optado por usar un
regulador especfico en lugar del sistema con componentes discretos pensado por Suky.

Generalmente, los proyectos que publico son completamente desarrollados por mi pero en
este caso he hecho una excepcin porque hay demasiadas zonas obscuras en torno al
PicKit2 y me llevara demasiado tiempo analizar la electrnica, el firmware y el software
de los sistemas originales.
El programador que les presento es formalmente el famoso PicKit2 en su versin Clone,
compatible al 100% (eso espero) con el modelo de la Microchip pero con un circuito
bastante simplificado.

Antes de seguir, quiero hace una aclaracin: este programador que publico hasta ahora ha
funcionado perfectamente con distintos modelos de Pics que he programado. De cualquier
manera no puedo garantizar que funcione bien en todos los casos y tampoco dar un soporte
tcnico completo porque hay demasiadas variables en juego a nivel de software y de
hardware y tendra que dedicar todo mi tiempo libre solo a esto.

Personalmente pienso que las herramientas de trabajo deben ser de buena calidad y
considero un programador de pics como una herramienta de trabajo. Por esto,
personalmente prefiero usar programadores de marca y usar modelos DIY como este, solo
en situaciones de emergencia o cuando no tenemos la posibilidad de comprar uno original.

Volviendo a la descripcin del proyecto, usar dos zcalos separados de 20 y 28 pins


simplifica mucho el uso del programador porque todos los microcontroladores de distintos
tipos se posicionan de la misma manera en uno u otro zcalo en modo simple e intuitivo,
sin necesidad de manipular interruptores, puentes de configuracin o debiendo colocar los
chips en posiciones distintas entre si.

No he construido el mdulo para micros de 40 pins porque nunca tuve la necesidad de


usarlos. De cualquier manera, gracias al conector ISCP disponible en el programador, es
posible tambin programar estos pics conectando los 5 pins necesarios.

Me interesaba en particular modo poder programar el nuevo PIC18F14K50 porque, siendo


ms pequeo del 18F2550 (solo 20 pins) posee tambin un puerto USB a bordo y bastante
econmico. Lamentablemente no dispongo di un micro de este tipo para probar. Espero de
poder hacerlo dentro de poco.

Respecto a otros programadores que se encuentran en la red, haber construido un


programador compatible con los productos Microchip me permite de usar como
plataforma de desarrollo los software gratuitos de la Microchip como por ejemplo el
PicKit2 software y fundamentalmente la suite MPLAB X IDE (v 1.60) para Linux.

La cosa importante de esta experiencia es que funciona!! Como deca antes, no he podido
probar el programador con todos los modelos de pics, solamente algunos, pero parece ser
que el sistema es bastante robusto y no he encontrado errores en fase de programacin o de
reconocimiento del programador por parte del software PicKit2 y MPLAB.
Elenco de materiales
Resistencias:

3 de 10 ohms 1/8 Watt

3 de 33 ohms 1/8 Watt

1 de 100 ohms 1/8 Watt

1 de 820 ohms 1/8 Watt

3 de 1 K ohms 1/8 Watt

1 de 2,7K ohms 1/8 Watt

4 de 4,7K ohms 1/8 Watt

4 de 10K ohms 1/8 Watt

1 de 100K ohms 1/8 Watt

(las resistencias son de 1/8 Watt con distancia entre patitas de 5mm)
Capacitores:

2 de 100nF

2 de 22pF (disco)

1 de 22uF 16V (electroltico)

1 de 47uF 25V (electroltico)

Diodos:

2 1N5817

1 1N4148

1 led verde 3mm

1 led rojo 3mm

Transistores:

4 BC557

3 BC547

Circuitos integrados

1 PIC18F2550 (programado con firmware Microchip PicKit2)

1 L4931CZ33 (u otro regulador 3,3V 100mA de tres patitas)

Otros componentes

1 bobina de 680uHy (ver fotografas)

1 pulsador para circuito impreso (ver fotografas)

1 zcalo de 28 pins

1 zcalo de 28 pins ZIF (zcalo a fuerza cero)

1 zcalo de 20 pins ZIF (zcalo a fuerza cero)

1 cristal 20MHz

1 conector USB tipo B

3 conectores a 6 pin paso 2,54 mm para circuito impreso

3 conectores a 6 pin paso 2,54 mm para cablepreso

3 Circuitos impresos (1 principal y 2 zon los zcalos ZIF)

1 cable USB

tornillos, separadores y tuercas

Construir un programador de PICS es toda una empresa y no lo aconsejo a la gente que


recin empieza. Ms all de la construccin electrnica propiamente dicha en la que se
necesitan algunos componentes especiales, es necesario disponer de otro programador que
permita de programar el PIC18F2550, corazn de todos los modelos USB como este. La
solucin ms simple, si no se dispone de uno, es la de pedirle ayuda a alguien que lo posea.
Tambin se puede construir un programador de transicin, como por ejemplo el JDM para
puerto serie. El problema est en que los programadores tipo JDM necesitan un verdadero
puerto RS232 porque no trabajan bien con los adaptadores USB a RS232 y en los ltimos
aos, las computadoras no disponen ms de este tipo de puerto. Si se logra resolver el
problema de la programacin del primer PIC18F2550, despus se pueden construir todos
los programadores que uno quiera porque un programador programa al otro.
Les dejo para descargar el file zip con los circuitos impresos y tambin el cdigo en
formato hex de la ltima versin de firmware para el PIC18F2550. El programa PicKit2 lo
pueden descargar directamente desde el sitio de la Microchip
[Circuito Impreso]
[Firmware del PIC18F2550 (link al sitio de la Microchip)]
Link a la pgina PicKit2 en el sitio de la Microchip con Downloads)
Los micro que he probado a grabar son estos: 12F629, 12F675, 16F628A, 16F676, 16F73,
18F2550 y 16F88.
Bueno, no me alargo ms. Espero que el proyecto les guste
Hasta la prxima!!

Los contenidos de este blog son originales y estn bajo una licencia Creative Commons
BY_NC_SA

Categories: proyectos diy


Notice: This work is licensed under a BY-NC-SA. Permalink: Programador de
microcontroladores Pics
Regulador para tiras de LEDS con 555

Mtodo grfico para calcular la resistencia de los leds


121 Comments
1. Chipias dice:
27 marzo 2013 a las 13:14

Muchas gracias Gabriel, lo estaba esperando con ansias para poder completar mis
proyectos. Despus te comento como me fue. Saludos desde Crdoba, Argentina.
Saludos Chipias
Responder
2. Carmelo dice:
28 marzo 2013 a las 17:22

Hola Gabriel, me gusta mucho este circuito,


es bueno tener una alternativa al propio programador, el esquema y todo est a nivel
muy profesional, es un deber darte la Gracias.
y aprovecho esta oportunidad para desearte Felices Pascuas a vos y familia, y a
todos los Argentinos.
Gracias Carmelo, felices Pascuas tambin para vos y los tuyos!!!
Responder
3. Vladimir dice:
29 marzo 2013 a las 18:21

una pregunta: el pulsador que funcion tiene?


muchas gracias de antemano
Me parece que sirve para poner el programador en modalidad upgrade y poder
actualizar el firmware con una versin ms moderna desde el PC. Sin embargo,
tengo entendido che la Microchip ha abandonado el proyecto PicKit2 y por lo
tanto tengo mis dudas que hagan nuevas versiones del programa
Responder

4. Vladimir dice:
31 marzo 2013 a las 23:47

Muchas gracias por aclarar mi duda. Felicitaciones por todos los proyectos tan bien
explicados y la paciencia.
De nada Vladimir
Responder
5. Beto dice:
1 abril 2013 a las 22:08

Que programa usas para hacer los diagramas y pasarlos a pcb??


Hola Beto. Los circuitos y las vistas las hago con Corel Draw. El proyecto de los
circuitos impresos lo hago manualmente con KiCad
Responder
6. maxi dice:
8 abril 2013 a las 07:59

hola, queria preguntart con que otro integrado se puede reemplazar el que vos
pusiste para regular el voltaje porque no lo consigo por ninguna parte a ese
regulador, gracias
Hola Maxi. Cualquier regulador de 3,3V de tres patitas. De cualquier manera, si
no piensas por ahora de programar pics de 3,3V no es necesario que lo montes
Responder
7. Raul dice:
12 abril 2013 a las 18:24

Hola, me gustara saber con cul/es programa/s realizas los esquemticos y el dibujo
en donde van los componentes.
Agradecera mucho saberlo.
Saludos

Responder
8. Raul dice:
12 abril 2013 a las 18:28

Disculpa, acabo de ver que alguien te pregunt lo mismo y le respondiste.


Uso Corel Draw, pero desconozco de dnde tomar los cliparts de los componentes
se bajan desde algn lado?
Los posicionas a mano, o hay una forma automatizada que lee el archivo del
KiCad?
Preguntamos mucho no? es porque se ve genial tu trabajo!
Gracias Ral. Hago todo a mano y no tengo conexin tra KiCad y Corel. Es ms,
de KiCad uso solo PCB manualmente. Con Corel diseo todo al vuelo. Es un
trabajo de bestias pero me gusta el resultado. De cualquier manera no lo
aconsejo a la gente, solo para masoquistas
Responder
9. josechu dice:
17 abril 2013 a las 06:48

Gracias, muchas Gracias


es muy buena herramienta.
Si, es bastante til

. Hasta pronto

Responder
10.melvin moises renderos deleon dice:
27 abril 2013 a las 04:20

hola buenas noches, gracias por tu buen trabajo, yo soy mecanico automotriz pero
me agrada mucho la electronica y quisiera pedirle un favor,
encontre un programador de pics sin necesidad de ningun pic, mi pregunta es si
usted podria decirme donde colocarle los indicadores led como los que usted le a
puesto a su programador? aqui le mando el link del esquema que encontre, de
antemano muchas gracias por leer mi comentario y espero que siga subiendo
proyectos tan bueno.

Responder
11.melvin moises renderos deleon dice:
27 abril 2013 a las 04:21

http://electronica.webcindario.com/circuitos/imagenes/programador.jpg
Hola Melvin, el programador del que hablas es el JDM. Te paso el link de una
versin con leds. No la he provado pero parece estar bien hecha.
LINK Programador JDM con leds
Responder
12.melvin moises renderos deleon dice:
28 abril 2013 a las 03:43

< muchas gracias, si veo q es exactamente el mismo


diagrama que yo encontre y con los led..
que tenga un buen dia y siempre estoy pendiente de sus proyectos son muy buenos,
ah por cierto soy estudiante de japones por eso le escribi esa frase al principio
Cuando lo construyas mndame una foto. Felicitaciones por el japons (no pens
que gracias fuera tan largo ). Buen trabajo!!
Responder
13.luis alfonso monsalve dice:
8 junio 2013 a las 22:13

Hola:
Quiero poder construir un amplificador de potencia para trabajar con 4 leds de 10W
y un controlador RGB que se consigue en el mercado que solo saca 6Amp 2W
Hola Luis Ests seguro que el controlador RGB es de 6A y 2W? Abr un hilo en
el foro y pon un link al modelo que decs que lo veo.
Responder
14.Eduardo - dice:

6 julio 2013 a las 01:47

Hola amigo:
Mi consulta es este programador de Pics puede andar con el programa Winpic ?
Tambien quiero saber si se cometen errores al programar se puede volver a borrar y
rehacer el trabajo .
Otra duda: cuando te dan el codigo en Asm y en Hex si son lo mismo no es mejor el
Hex que es mucho mas corto?
Me interesa muchisimo este tema pero me cuesta todavia entender bien el
mecanismo de la programacion y el modo de hacerlo..
Disculpame la catarata de preguntas soy un aficcionado y me interesa . Gracias y
un Gran Abrazo .. Eduardo
Hola Eduardo. Este programador usa el software del PicKit2 oficial.
Lamentablemente WinPic ha sido abandonado hace ya tiempo y no hay
actualizaciones para este programador en su versin ms moderna. Por lo tanto
yo te aconsejo de usar el software PicKit2 de la Microchip (es gratis) o la suite
Mplab, siempre de la Microchip. Los file Hex son una copia exacta de lo que ser
cargado en la memoria del PIC mientras que los file asm son textos
comprensibles por nosotros que despus sern traducidos en hex por un
programa compilador. El defecto de los hex es que los programas no pueden ser
modificados mientras que los asm si.
Ahora veo que HJ te ha contestado en modo ms completo y mejor
Responder
o

Hctor Javier dice:


6 julio 2013 a las 04:15

Hola Eduardo:
Este programador NO funciona con el WinPic, solo funciona con el
programa PICkit2 o con el entorno de desarrollo MPLAB ambos de
microchip,ambos gratuitos que puedes descargar de su web.
Se que hay algn plugin para otros entornos pero no los he utilizado, ademas
esos entornos o bien son limitados o pagos, o ambas cosas.
Las lneas de micros 10Fxx, 12Fxx, 16Fxx, 18Fxx los puedes borrar y
regrabar muchsimas veces, en las lneas 24Fxx y 32Fxx hay micros que
solo las puedes regrabar unas 100 veces otros que bastante mas veces.
Hay moicros de produccin u OTP, que solo los puedes grabar una sola

vez, pero es algo que no vas ha utilizar seguramente, ya que casi no se


utilizan mas.
El HEX se genera a partir del ASM, el ASM lo entienden los humanos y el
HEX lo entienden los micros en mis comienzos programaba directamente
en cdigo de mquina, un equivalente del HEX, pero te aseguro que no es
para cualquiera, adems de complicado es tedioso, e innecesario hoy en da,
gracias al ASM (ensamblador).
Todos en nuestros comienzos tuvimos esas cataratas de dudas, por suerte
hoy existe Internet y pginas buensimas como inventable.eu, antes haba
que recurrir a los manuales tcnicos de los fabricantes y a la poqusima
bibliografa, en papel que exista.
Es un tema apacionante, una vez que le agarras el gusto no lo largas mas.
Saludos
HJ
P.D: Te he contestado yo de metidojeje
Yo tambin programaba en hex con 8 interruptores para los datos y dos
display a leds de 7 segmentos (uno para las direcciones y otro para los
datos). Las direcciones las incrementaba con un pulsador. Que tiempos
aquellos!!!!
Responder
15.Eduardo - dice:
6 julio 2013 a las 21:10

Estimados Amigos : Gabriel y Hector Javier :


Realmente me interesa mucho estos temas ,y,por desconocimiento empece a
recopilar programas y temas que hablaban del Winpic .. Entonces es posible que me
pasen la direccin para descargar el PICkit2 ?.
Al mismo tiempo el lenguaje ensamblador yo (insisto con mi ignorancia) no logro
todava verlo como si fuera en castellano ..todava creo que es mas fcil cargar
nmeros (aunque no pueda modificarlos )que un montn de instrucciones que no las
entiendo .Siendo as me gustara sin querer ser pesado que libro o direccin me

pueden dar para entender este lenguaje Asm que sea como un ABC bien para
principiantes Ante todo MUCHISIMAS GRACIAS queridos amigos
Responder
o

Hctor Javier dice:


6 julio 2013 a las 23:16

Hola Eduardo, el programa PICkit2, y mucha informacin sobre el mismo,


puedes bajarla de la siguiente pgina
http://www.microchip.com/stellent/idcplg?
IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en023805
Saludos
HJ
Responder
o

Hctor Javier dice:


6 julio 2013 a las 23:27

Eduardo, del siguiente enlace puedes bajar el MPLAB, el original, libre y


gratuito.
http://www.microchip.com/stellent/idcplg?
IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=
SW007002
Saludos
HJ
Responder
16.Eduardo - dice:
6 julio 2013 a las 21:13

Amigo Gabriel :
Entonces en ese programa PICKit2 puedo escoger entre cargar datos en HEX o en
ASM ?

Hola Eduardo, veo que Javier te est siguiendo y dando ptimos consejos
Responder
o

Hctor Javier dice:


6 julio 2013 a las 23:12

Eduardo, no has comprendido del todo, lo explico de otra manera: Siempre


tu vas ha escribir en lenguaje ensamblador(ASM), luego los vas ensamblar
y con ese proceso vas ha generar tu archivo para grabar en el micro(HEX).
Es decir al micro solo puedes cargarle o grabarle un archivo HEX.
Si el programa lo escribes tu, lo hars siempre ne ASM, luego convertirs
ese programa en HEX y grabaras el micro con el.
Si vas ha utilizar un programa hecho por otro, puedes grabar en el micro
directamente el HEX que el otro te proporcione, o en su defecto, si te da solo
el ASM, debers ensablarlo para convertirlo en el HEX que te servir para
grabar le micro.
Espero que ahora te quede un poco mas claro el tema.
Saludos
HJ
Responder
o

Hctor Javier dice:


7 julio 2013 a las 00:12

Eduardo, creo que convendra abrir un hilo en el foro sobre programacin en


ASM que te parece?
No me puedo comprometer a hacer un curso de programacin en ASM por
falta de tiempo, pero si a tratar de evacuar todas las dudas que se presenten,
y dar pequeos consejos y trucos aprendido durante aos
Aclaro desde ya que solo programo en ASM los 10Fxx, 12Fxx, 16Fxx y
18Fxx, a los micros mas grandes no los he programado nunca.

Responder
17.jose dice:
7 julio 2013 a las 03:21

Disculpame mi ignorancia, yo reparo tv, equipos de sonido,me gusta la electrnica y


quisiera entrar al mundo de los PIC,he ledo algunas lecciones en revistas de
electrnica , pero la verdad no los entiendo ,digame; se necesita llevar algn curso
especial para aprender a programarlos??o me puede indicar algunas paginas donde
pueda encontrar cursos de programcion de pic en forma sencilla .Les eatare muy
agradecido ahaa y que lenguajes dede mprogramacion debo aprender si o si ,otra
vez disclpenme.
Responder
o

Hctor Javier dice:


7 julio 2013 a las 16:19

Hola Jos, te comento, aprender a programar un microcontrolador en


particular, ya sea un PIC, o cualquier otro, no es difcil si tienes alguna base
de programacin. si no tienes ninguna base, te va ha costar un poco mas pero
se puede tranquilamente, va ha depender de cuanto tiempo le dediques,
aprender a programar requiere de mucho tiempo leyendo, analizando cosas
hechas, investigando y sobretodo, lo mas importante, va ha depender de
cuanto tiempo le dediques a programar
A programar solo se aprende programando, est bien leer, pero debes probar
lo que lees y sacar tus conclusiones, renegar y buscar el porque no hace lo
que debera, donde est el error, etc.
Para comenzar con PIC te recomiendo que lo hagas con alguno de los mas
simples, como los 16F629 que utiliza Gabriel aqu en inventable .eu
Lo primero que debes hacer es bajar la hoja de datos de la pgina de
microchip (el fabricante) y familiarizarte con el set de instrucciones, luego
trata de ver como funciona algn ejemplo simple que encuentres, el
siguiente paso, una vez analizado y comprendido, es modificarlo de alguna
manera y ver que responda como deseas, y luego intentar hacer tu propio
programa.

Como ya mencion mas arriba, hoy por hoy, con esta maravillosa
herramienta que es Internet, es bastante mas fcil acceder a la informacin
para aprender a programar.
Saludos
HJ
Responder

Hctor Javier dice:


7 julio 2013 a las 16:23

Me olvidaba mencionar, lo que escrib anteriormente es vlido si


deseas aprender con lenguaje ensamblador o ASM, pero tambin es
vlido si ya sabes programar en algn lenguaje de alto nivel, como
ser BASIC o C, hay varios compiladores de estos lenguajes,
incluso los hay basados en PASCAL.
saludos
HJ
Responder
18.Eduardo - dice:
7 julio 2013 a las 22:51

Hector Javier :
A ver,yo lo entend as: El lengueje Hexadecimal es el codigo mquina que el micro
entiende y el Asm sera el que nosotros podramos elaborar introduciendo los
cambios que quisiramos ..AHORA BIEN ; si yo por ejemplo copio el codigo HEX
de un reloj con el micro que me proporciona el circuito en s y no me interesa
cambiar nada solo que funcione como dice el autor entonces puedo cargar el mismo
codigo HEX que me proporciona sin hacer cambios y para eso uso el mismo
programa? esa es mi dudaPorque si vos me decis que tambin puedo cargar el
HEX en el micro .como lo hago?
AHHH sera fantstico si podras ensearnos a los que recin empezamos en este
tema desde lo mas elemental yendo de a poco como si fueran leccion 1 -leccion 2
Ok?
Mi experiencia en programacion es muy bsica yo hice muchos programas en
computadoras como la TK90 o Spectrum que utilizaban el codigo Basic extendido

para mi era muy fcil pero me qued en el tiempo y ahora (de viejo) quiero ponerme
un poco al tanto por eso y por muchas razones si no fuera por personas como vos y
Gabriel que nos ayudan sera muy dificultoso
NUEVAMENTE UN GRAN ABRAZO
Responder
o

Hctor Javier dice:


8 julio 2013 a las 01:14

Eduardo, efectivamente, si silos deseas grabar el micro con el HEX que te


proporcionan, sin hacerle modificaciones al programa, puedes grabarlo
directamente en el micro utilizando un programador o grabador de
micros como el descrito aqu y utilizando un Programa complementario al
mismo, como es el caso del PICkit2, del que puse el enlace para bajarlo mas
arriba.
La grabacin del micro es sencilla:
1: Instalas el programa PICkit2 en su versin 2.61, que es la ltima
disponible.
2: Conectas el aparato PICkit2 (este que presenta Gabriel u otro original) en
uno de los puertos USB.
3: conectas el micro que deseas grabar, o lo colocas en el zcalo, eso va ha
depender del programador en si que poseas.
4: Arrancas el programa PICkit2. El programa debera reconocerte
automticamente el micro que has conectado. De no reconocerlo puedes
seleccionar la opcin de verificar conexin o seleccionar el dispositivo a
mano.
5: Luego vas al men y Archivo (en realidad File ya que est en ingles) y
utilizas la opcin Importar HEX, buscas en tu disco duro donde est y lo
importas, como abres cualquier documento en Windows.
6: Presionas el botn Escribir y esperas unos segundo que realice la
operacin y listo, si no se produjo ningn error ya tienes tu micro listo.
Saludos
HJ

Responder
19.ronal cantu villanueva dice:
8 julio 2013 a las 13:32

hola hermao oye una consulta cual es el diseo del cable de datos me lo podrias
enviar a mi correo tengo esa duda es usb en ambos extremos o usb ah BD9 .gracias
Responder
o

Hctor Javier dice:


8 julio 2013 a las 13:37

Hola ronal, el cable es un cable USB comun con ficha tipo A del lado de
la PC y tipo B del lado de programador.
Saludos
HJ

You might also like