jump to navigation

Documento: Programador por puerto paralelo para PIC 20 noviembre, 2006

Posted by pjmicrocontroladores in Documentación.
trackback

Recapitulando un poco los documentos de orientación del proyecto, la primera falta que podemos encontrarnos es la imposibilidad de grabar código ensamblador en el microcontrolador. Bien, si tenemos código ensamblador con ayuda de las gputils y de uno de sus programas, el gpasm, podemos obtener el código hexadecimal listo para grabar en el microcontrolador. Pero para grabarlo necesitamos dos cosas, un dispositivo hardware y otro software. El software puede ser odissey (1) para linux o icprog (2) para windows, entre otros muchos, pero el hardware es el mismo para todos los sistemas operativos.

Hay mucha diversidad de hardware para grabar los microcontroladores PIC pero el más fácil de crear es el programador por puerto paralelo. Por ahora veremos éste pero podemos encontrar propuestas que usan tanto el puerto serie como el puerto USB (ver 3). El principal problema de los que usan USB es su precio, y personalmente el problema del puerto serie es que mi portátil no tiene : ).

El principio de funcionamiento de del programador se basa en la programación usando el protocolo ICSP de Michochip. Por ello se puede usar pinchando el PIC en un zócalo convenientemente dispuesto en el programador o con el microcontrolador soldado a la placa definitiva. Para la segunda opción tendremos que haber considerado esa opción en el desarrollo de la placa.

La programación según el modelo ICSP usa cinco líneas. Tres de alimentación y dos para la programación en si. Las líneas de programación son DATA y CLOCK, las cuales no nos es difícil adivinar que se usan para datos y reloj. Las líneas de alimentación son VPP para la tensión de programación de 13,2 voltios, y VCC y GND para 5 y 0 voltios. Los microcontroladores que admiten ICSP tienen pines que corresponden con estas cinco entradas, estando algunas veces duplicadas algunas de las mismas como es el caso de nuestro micro donde se usan dos entradas de GND. No tiene mayor misterio que puentearlas.

El principio de funcionamiento de ICSP es, alimentar el microcontrolador normalmente, pero elevar la tensión en el pin MCLR a VPP, la tensión de programación. El microcontrolador entrará con ésta acción en el modo programación y los pines marcados como DT y CK funcionarán como datos y reloj para, a través del protocolo indicado por la especificación ICSP, escribir o incluso leer (en caso de que no este protegido) la memoria de nuestro PIC.

El modelo de programación por puerto paralelo se basa en escribir directamente los unos y ceros en pines del puerto paralelo conectados a los pines adecuados del microcontrolador. La alimentación se ha de conseguir de forma externa al programador. La línea DATA puede no solo escribir datos, sino también leerlos, por lo que usaremos dos pines uno de entrada y otro de salida según la utilización del puerto. Usaremos otro pin del puerto paralelo para controlar la entrada de 13,2 voltios, activándola o no, para entrar al modo programación del chip.

Con esto en mente cualquiera puede realizar este programador que es una simple prolongación del puerto paralelo a la interface ICSP del micro. Sin embargo hay ciertas recomendaciones, que cuando las sigamos, nos ahorraremos muchos problemas en la programación. Para ir más rápidos primero observemos la figura siguiente:

 

Lo primero que no hemos comentado y que resulta la parte más llamativa del programador es el integrado 74LS04N. Este contiene seis inversores, de los que hemos usado tres, dos para la línea DATA y uno para CLOCK. A nivel lógico hemos invertido las líneas, pero en el software lo indicaremos así y no habrá diferencia en la operación, pero sin embargo a nivel eléctrico, asegura que pese a que el nivel de intensidad en el puerto paralelo sea bajo, entregamos suficiente potencia para que la comunicación sea efectiva. Además protegemos al puerto paralelo de posibles malas conexiones, dejando el posible daño en este integrado. Hay otros muchos circuitos que se podían haber usado en su lugar, pero el 74LS04 es barato, fácil de encontrar y funciona.

Como anunciamos la tensión de programación se controla con un simple pin del puerto paralelo gracias al transistor 2N3904. La configuración muestra que funciona como inversor de la señal de entrada, con lo que si introducimos un nivel alto a la base del transistor este conducirá entre emisor y receptor y llevará la entrada MCLR a cero. Con un nivel bajo, introducimos la tensión dada por VPP, estableciendo el micro en estado de programación.

Pese a decir que un simple pin realiza la entrada no estamos ni mintiendo ni nos hemos equivocado de figura. Vemos que la entrada a la base de transistor puede venir de dos pines distintos del puerto paralelo. La elección de cual escoger la da el dispositivo a programar, dado que si tiene 28 pines o más, el programador debe usar el pin 6 y en caso contrario usará el pin 5. La distinción en estos dos estados es la diferencia de distribución encontrada entre estos dos grupos. En un programador con un solo zócalo, se pueden duplicar el transistor y conducir las otras líneas a todas las posibilidades. En este caso se ha decidido usar un mismo conector ICSP que puede usarse con varios zócalos, localizando en los mismos las posiciones deseadas.

Tenemos cuatro clases de zócalos que cubren la mayoría de los dispositivos PIC y se clasifican según el número de pines del integrado a programar. Se muestran en la figura siguiente. Los dispositivos que no se anexan a ninguna clase, nos obligaran a o bien crear el zócalo oportuno o usarlo desde el circuito con las restricciones normales.

El programador no esta completo sin una fuente de alimentación de la que podamos tomar 0, 5 y 13.2 voltios. Una posible es la que se presenta en el esquema de la figura siguiente.

Básicamente esta fuente de alimentación toma un voltaje de al menos 15 Voltios, y nos entrega 5 y 13,2. Con el condensador C1 estabilizamos la entrada. El integrado 78L12 consigue a su salida 12 voltios, por lo que usando las resistencias R1 y R2 introducimos 1,2 como referencia de tierra del integrado, consiguiendo que este entrege 12 voltios sobre 1.2, resultando los 13.2 necesarios para la tensión de programación. Con el integrado 78L05 conseguimos los 5 voltios para VCC. El condensador C2 simplemente estabiliza aún más la señal. Para la entrada de 15 voltios (o más) podemos usar cualquier transformador de alterna a continua de 12 voltios no regulado o 15 regulados. Lo único a tener en cuenta es que el máximo voltaje es de 35 voltios.

Como contras o desventajas de este programador nos encontramos con la necesidad de usar un alimentador externo, con el consiguiente aumento de volumen del programador e incapacidad de usarlo de forma portátil, sino es en conjunción de pilas externas de alto voltaje, pero en todo caso incomodo.

Como ventajas es más fácil de crear y depurar para iniciados y una vez conectado siempre funciona. Por ejemplo podemos sustituir las salidas ICSP con diodos led con sus resistencias adecuadas para comprobar el funcionamiento correcto del programador antes de arriesgarnos a pinchar un chip. Además no tiene problemas con puertos de baja intensidad.

La idea inicial está basada en el programador “Pablin 2”, basado éste a su vez en el programador “propic 2”. El original, el “propic 2”, estaba pensado para usar con un solo zócalo ZIF (inserción de fuerza cero) por lo que triplicaba los transistores para seleccionar tres configuraciones distintas. También controlaba el VCC activando y desactivando éste para limitar su operación. En el programador “Pablin 2” se duplican las puertas inversoras en las tres líneas para evitar la inversión de la señal, y se usan cuatro zócalos para los distintos chips soportados.

El principal problema del programador “Pablin 2” es que no regula la entrada de 13.2 voltios, sino que supone que una entrada de 12 voltios no regulada o 15 regulados unidos a un diodo led, llevarían a un rango válido para el voltaje VPP. Esta presunción podría funcionar en microcontroladores permisivos, pero no en la gran mayoría de ellos. Un transformador de 12 voltios no regulados entrega unos 16,97 voltios. La caída de tensión en un led verde (de los led normales el de mayor caída) es de unos 2.4 voltios, dando 14.57 voltios, superior a los 14 máximos aconsejados y con una fuente de 15 regulada, obtenemos 12.6 V insuficiente para el voltaje de programación. No solo no conseguiríamos programar un PIC sino que lo pondríamos en peligro. La razón de su extendido uso es que sí es acto para el 16F84 chip famoso por su precio, su benevolencia ante errores de diseño y ser generoso en rango.

Estos problemas quedan solucionados con el uso del integrado 78L12 y el divisor de tensión visto en el programador presentado con lo que conseguimos la generalidad y operatividad buscada sin incrementar apenas el coste.

1) http://www.desert.cx/odyssey/downloads.php
2) http://www.ic-prog.com/
3) http://www.hobbypic.com/index.php?option=com_content&task=view&id=12&Itemid=34

Anuncios

Comentarios»

1. Ranganok Schahzaman - 21 noviembre, 2006

Hola,

Tambien podrías usar un bootloader que te cargase el sistema via puerto serie sin necesidad de un programador; simplemente tendrías que tener siempre un puerto serie, pero la mayoría de los montajes lo llevan o dejas esas líneas libres.

Además el problema de tu portátil quedaría solucionado con un convertidor USB-Serie.

S2

Ranganok Schahzaman

2. pjmicrocontroladores - 21 noviembre, 2006

Hola Ranganok

El bootloader involucra el uso de memoria de código. El objetivo principal es crear software directamente en lenguaje C para los microcontroladores PIC. El uso de un cargador y no un programador lo dejo para implementación posterior e incluso para funciones de libreria de usuario. De todas formas para meter el bootloader se necesita un programador HW ( o un amigo que lo tenga).

Realmente te tomo la idea para un futuro, porqué si se integra en un debuger podemos tener un poderoso amigo para el desarrollo, pero por ahora el mejor y más fácil (y económico) programador es el paralelo junto al serie. Próximamente publicaré un montaje con un programador serie pero el poner éste principalmente es porque lo tenia fresco de hacerlo hace poco y es el que uso normalmente. El puerto paralelo lo tengo libre y el serie ocupado con otro proyecto con PIC, por lo que me parecio buena idea.

Respecto al conversor USB-Serie, ya la has liado, ahora tengo que comprar uno y probar el programador serie con él y corregirlo en su caso. Tu te crees que con lo que tengo liado me puedes picar la curiosidad de esa manera XD.

Bueno saludos y gracias por el comentario. Espero más.

Pedro José Ramírez Gutiérrez.

3. Ranganok Schahzaman - 24 noviembre, 2006

Si usas un conversor USB-serie no te olvides que la alimentación del programador tiene que ser externa ya que los portátiles con USB y los conversores USB-serie no dan nunca las tensiones necesarias para la programacion (12v en Vpp)

S2

Ranganok Schahzaman

PD: hay muchas cosas que te pueden ir bien en esta página: http://www.webdearde.com

4. pjmicrocontroladores - 24 noviembre, 2006

Bueno, algo malo tenía que tener );. Supongo que el problema estará a medio camino entre la tensión y la corriente del USB, pero bueno, cosa de probar.

Gracias por la página, ya está en mis marcadores.

Saludos.

Pedro José Ramírez Gutiérrez.

5. Angel Fall - 30 noviembre, 2006

necesito controlar una tarjeta usb y necesito que me digan como puedo establecer una pc con una tarjeta national instrument, por medio de c

6. Angel Fall - 30 noviembre, 2006

si tienen alguna idea que me pueda ayudar escribanme porfavor angelfallfirsst@hotmail.com

7. pjmicrocontroladores - 30 noviembre, 2006

Hola Angel.
En principio como puedes observar el blog está dedicado al porting de GCC al PIC 16F877. Además el comentario que has sumado esta en un programador para PIC. Por lo tanto te recomiendo que busques en la web de national ejemplos para controlar una tarjeta por USB.

Si decides cambiarte a PIC o usar al menos una interfaz PIC, hay varios modelos en la familia 18F que tienen interface USB. Puede que te sirvan.

De national no se si hay compiladores C libres, pero supongo que la mejor manera de comunicar con tu PC es usando una UART.

No puedo darte más información porque no me dedico en estos momentos a national instrument, pero si te cambias a PIC, en la web de microchip tienes las applications notes donde hay varios ejemplos con micros PIC18F que comunican por USB con un PC. Además también puedes buscar por el foro de TODOPIC http://www.demo-1.com.ar/foros/ donde me consta que usan PIC para comunicación con PC.

Suerte.

Pedro José Ramírez Gutiérrez.

8. PPAVA - 30 noviembre, 2006

SI ALGUIEN ME PUEDE DAR INFORMACION DE COMO HACER UN PROGRAMADOR USB, AGRADEZCO LA INFORMACION.

9. PPAVA - 30 noviembre, 2006

SI ALGUIEN ME PUEDE DAR INFORMACION DE COMO HACER UN PROGRAMADOR USB, AGRADEZCO LA INFORMACION.
pm_pava@etb.net.co
pm_pava@hotmail.com

10. pjmicrocontroladores - 30 noviembre, 2006

Hola PPAVA

Si te fijas en el artículo el enlace 3 conduce a un programador USB. Te repito el link
http://www.hobbypic.com/index.php?option=com_content&task=view&id=12&Itemid=34

Se basa en el mismo principio que el artículo, la programación ICSP pero a través de un microcontrolador 18F2550 que lleva USB integrado y hace de puente.

Ranganok Schahzaman me dio la idea de mostrar un bootloader en funcionamiento. Ha estas alturas del proyecto no tengo mucho tiempo libre, pero pongo en la lista junto con el bootloader, un programor USB libre. Tengo perdidos por la mesa de trabajo el esquema de un programador serie que en cuanto tenga un poco de tiempo para escribir un artículo lo mostraré.

No obstante si buscando por la red encuentras uno libre (ya he visto que el del link no parece muy libre), ruego lo comuniques por aquí.

Yo solo he hecho el programador paralelo (y como dije me basé en otros) y no puedo dar soporte a otros que no haya creado, pero lo que digo lo suelo cumplir, así que paciencia.

Saludos y suerte en tu busqueda.

Pedro José Ramírez Gutiérrez.

11. Julian - 1 diciembre, 2006

SALUDOS, necesito mas informacion para el montaje de un programador de PIC.

12. pjmicrocontroladores - 1 diciembre, 2006

Hola Julian.

¿que información necesitas?

Saludos

Pedro José Ramírez Gutiérrez.

13. pjmicrocontroladores - 2 diciembre, 2006

Bueno, dado que Julian no estará disponible, recuerdo a todos los que lean el artículo, que soy humano y lo que digo puede tener fallos o no estar completo. Si alguién trás la lectura del artículo tiene algún problema o algo que no ha entendido, o ve que le falta algo, ruego lo comunique como comentario, para bien explicarselo o bien ampliar el artículo.

Saludos

Pedro José Ramírez Gutiérrez.

14. Documento: Programar un PIC con el programador por puerto paralelo desde Linux. « Porting de GCC a PIC16F877 - 3 diciembre, 2006

[…] Vimos en un artículo anterior (1) como se podía construir el hardware para programar un microcontrolador usando un puerto paralelo. Construimos el programador (en sitios latinos podemos ver como lo llaman entrenador) basado en la simplicidad de desarrollo y en el bajo coste, sin renunciar con ello a la generalidad. Pero lo explicado no permite a los iniciados en el tema de los microcontroladores PIC conseguir escribir un programa en la memoria Flash del micro. Pasamos en este artículo a describir la otra pieza que nos hace falta para conseguirlo, el software. […]

15. leonardo - 8 diciembre, 2006

Necesito redactar un programa en c on en MsDos que me permita controlar un circuito eléctrónico(apagado y encendido)

16. pjmicrocontroladores - 8 diciembre, 2006

Hola leonardo

Por lo escueta de tu pregunta voy a suponer un escenario que deberías haber dado. Creo que quieres crear un programa para PIC, compilarlo con gcc-pic en msdos y que te permita apagar y encender un circuito.

Bien, el programa será básicamente poner a cero o a uno un pin del microcontrolador pero dado que todavía no hay bibliotecas de apoyo, el colocar ese pin de entrada es directo en ensamblador, pero puedes usar las funciones inline de C. El resto del control lo puedes hacer en C, pero recuerda que estoy todavía en la alpha.

El hacerlo en DOS o Linux no tiene mayor inconveniente que compilarlo para msdos o para linux, yo doy las fuentes. Sin embargo compilar un programa en linux es mucho más fácil que montar el entorno necesario para compilar gcc en msdos, pero si lo consigues, ruego me lo indiques porqué en un futuro pensaba hacerlo yo y escribir otro artículo.

Entiendo esto de tu corta afirmación. Si te refieres a un programa en C para msdos que corra en un PC, usa las funciones inp outp estandar para el puerto paralelo.

Saludos.

Pedro José Ramírez Gutiérrez.

17. claudio campos b - 14 diciembre, 2006

necesito ampliar la memoria de el pic 16f84 con una memoria de la familia 24 xxx serial no se como hacer para que cuando yo programe el pic este traspase esta informacion ala memoria y cuando la necesite la recoja de esta
de esta manera trendre mas memoria en mi pic
atte claudio canpos

18. pjmicrocontroladores - 15 diciembre, 2006

Hola daudio campos

Sinceramente esta cuestión no sé porqué piensas que cuadra en este artículo. No creía que me llegarán tantos comentario al margen de la información expuesta. Recuerdo a todos que la mejor opción es usar el foro.

Sin embargo te diré que la mayoría de memorias 24xxx usan la interfaz I2C. El pic 16f84 al no disponer de ninguna te obligará a implementarla por software. Hay datasheet en la web de microchip que explican como y buscando por google tendrás algunas más. Una vez implementado la interfaz simplemente escribe y lee lo que quieras de y hacia memoria. Aún así piensa en un microcontrolador con más memoria y la interfaz I2C implementada como el 16f73 o 16f877.

Además comentas que la memoria se programe cuando programes el pic. La forma normal de hacerlo es programar independientemente la memoria (con este mismo programador puedes). Si quieres más interactividad usa una UART para comunicar con el ordenador por el puerto serie y desarrolla un programilla para hacerlo bonito. El pic que has elegido tampoco tiene interfaz UART, por lo que también tendrías que implementarlo.

Saludos

Pedro José Ramírez Gutiérrez

19. Mayra - 5 enero, 2007

hola

Talvez alguien podria ayudarme con información acerca de que pic puedo utilizar de la familia 18f para realizar una comunicacion a usb

20. pjmicrocontroladores - 5 enero, 2007

Hola Mayra (¿Gomez? 🙂 ).
Si vas a usar un chip usb externo te sirve cualquiera, es decir, el que necesites, de cualquier familia. Si quieres que implemente comunicación USB en el micro, te tendrás de remitir a los modelos:
PIC18F2450
PIC18F2455
PIC18F2550 (es del que más se habla).
PIC18F4450
PIC18F4455
PIC18F4550
Que son los que Microchip actualmente comercializa.

Hay varios drivers y ejemplos por todo google.

Saludos.
Pedro José Ramírez Gutiérrez.

21. maxi sanchez - 18 enero, 2007

disculpa, tal vez una pregunta tonta, pero lei el articulo y a menos que me lo haya salteado no está.
como tenemos que configurar en el ICprog este programador? que lineas tenemos que invertir y cuales no?
gracias.

22. pjmicrocontroladores - 18 enero, 2007

Hola maxi.

La pregunta no es nada tonta. Este es el primero de tres artículos (que quiero aumentar pero todavia no he tenido tiempo) para programar los PIC. La respuesta rápida es invertir MCLR y dejar las demás sin invertir. Para leer los otros artículos que serian la respuesta larga, pasate por:
https://pjmicrocontroladores.wordpress.com/2006/12/13/documento-programar-un-pic-con-el-programador-por-puerto-paralelo-desde-windows/
para configurar el programador y programar el pic desde windows y por:
https://pjmicrocontroladores.wordpress.com/2006/12/03/documento-programar-un-pic-con-el-programador-por-puerto-paralelo-desde-linux/
si quieres tenerlo desde linux.

Espero que el tiempo me permita crear más entradas de hardware, pero el porting de gcc a pic es muy exigente XD.

Saludos
Pedro José Ramírez Gutiérrez.

23. maxi sanchez - 19 enero, 2007

te agradezco la rapida respuesta. de todas formas lo estuve analizando un poco yo, y llegue a la conclusion de que las lineas Data, y Clock tambien hay que invertirlas. al menos a mi me esta funcionando a la perfeccion con esa configuracion.

24. pjmicrocontroladores - 19 enero, 2007

Hola maxi,

Pues dos cosas te tengo que decir, gracias por confirmarme que funciona, ya que he echo tantos montajes distintos de programador que al final no se si el que tengo marcado como bueno es el bueno o no 😉 . Y de segundo otro gracias porqué efectivamente hay que invertir DATA (entrada y salida), CLOCK y MCLR. La modificación que tengo hecha y que también funciona es usar dos inversores por linea (seis en total) y así no hay que invertir el software. El esquema lo hice cuando use un inversor al que había quemado dos puertas (cosa de aprovechar componentes 🙂 ).

Saludos y gracias.

Pedro José Ramírez Gutiérrez.

25. liliana - 27 enero, 2007

beuno quisiera saber la conficuracion de un contados 555 para enviar pulsos a visual basic

26. pjmicrocontroladores - 27 enero, 2007

Hola liliana,
La configuración de un contador 555 está muy clara en su datasheet y tienes multiples ejemplos por google. Para recoger los pulsos en visual basic necesitas elegir un puerto de entrada al PC y programarlo para leer continuamente del pin elegido hasta detectar el cambio de pulso. Desconozco para que quieres hacer eso.

Ruego que una porción del tiempo que gasto en contestar lo gasteis por lo menos en expresaros con mayor claridad.

Saludos
Pedro José Ramírez Gutiérrez.

27. Javier - 20 febrero, 2007

Hola ,… Soy Javier

Weno Tengo un gravador paralelo, y si en vez de resistencias como el caso tuyo el mio usa diodos.
Este grabador que me lo pasaron temniea una ventaja adicional,… tambien se podia usar para el DSPIC 30FXXXX. REsulta que no lo use en momento, ahora que deseo usar para grabar mi primer programa tengo el problem de que no funciona,.. segun datos me emncionaron de la dicion de una resistencia pero no se donde,…
Entonces, el punto esta ahi,….
Espero me puedas ayudar ,….de ante mano te lo agradeszco

mi correo es jartm6uni@hotmail.com

28. pjmicrocontroladores - 21 febrero, 2007

Hola Javier.

En principio, no tiene ningún impedimento físico para grabar los micros de Microchip de 16 bits en modo ICSP. Por lo tanto con este programador podrías. Como software deberás buscar un poco más.

El uso de diodos, supongo que te refieres en la entrada de masa del 78L12. Yo he usado un simple divisor de tensión que entrega 1.2 voltios, por lo que se puede usar diodos que tengan una caida de tensión similar. Me parece más elegante el uso de las resistencias, pero la opción diodos es también válida.

No se como de parecido es tu esquema, pero en principio con un voltimetro puedes probarlo sin arriesgar ningún micro. Mira las salidas de la fuente de alimentación (13.2V, 5V) y despues prueba con algún programa tipo ICProg cada linea (data out, data in, clk, vpp) que un uno lógico es mayor de 4.3V y un cero no pasa de 0.5V. Y que la entrada VPP es realmente 13.2 y no sensiblemente menos. Si los diodos los tienes entre la entrada de VPP, es el fallo que comento en el artículo que tiene Pablin, elimina esos led, son bonitos pero no funciona.

Saludos.
Pedro José Ramírez Gutiérrez.

29. juan manuel - 27 febrero, 2007

saludos, solicito codigo fuente de programas cencillos para pic de 18 pines que sean compatibles con ic-prog

30. pjmicrocontroladores - 27 febrero, 2007

Hola Juan Manuel.

Los programas no tienen que ser compatibles con ic-prog. Ic-prog solo es un “grabador” de programas en la memoria de los PIC. Por tanto teniendo el programa creado para un PIC de 18 pines, en IC-prog basta seleccionar el modelo y darle a grabar.

Por otro lado te pido un poco de paciencia, ya que estoy realizando un pequeño artículo con ejemplos simples en C, donde comento paso a paso su funcionamiento. Te permitirán empezar más facilmente en la programación de microcontroladores. Estará proximamente en el blog.

Saludos.
Pedro José Ramírez Gutiérrez.

31. Programador por puerto serie para PIC « Porting de GCC a PIC16F877 - 2 marzo, 2007
32. Gusty - 3 abril, 2007

ME SACO EL SOMBRERO!!!
Estoy empesando a programar en Visual Basic y C y quisiera saber como utilizar, desde estos lenguajes, los puertos paralelo y usb(ya ke tambien diseño hardward-a mateur-tu sabes:brasos electronicos, equipos de medicion laser,etc).
Agradecere cualkier dato o link ke me faciliten(si me mandan apuntes bienvenido sea:)
mi electronico es: el_gusty_2005@yahoo.com.ar

33. pjmicrocontroladores - 4 abril, 2007

Hola Gusty

En C, para acceder al puerto paralelo en linux tienes dos opciones principalmente.
1º modo root: inb,outb (de sys/io.h) para el acceso pidiendo permisos con ioperm antes (todos los comandos en el man).
2º modo usuario: usando la API parport que es muy fácil.

En Windows (XP) necesitarás un driver que trabaje en el nivel de nucleo ya que en usuario lo tiene prohibido. Uno de los muchos es:
http://www.beyondlogic.org/porttalk/porttalk.htm

Para el puerto USB necesatarás el driver adecuado dependiendo del chip que utilices (dedicado, de la familia PIC18F…).

Si alguien más quiere dar algún consejo bienvenido será.

Suerte.
Pedro José Ramírez Gutiérrez

34. juan carlos - 17 abril, 2007

Les pido toda colaboración con respecto a los programadores por puerto paralelo para PIC 16F8xx quiero realizar en pesar a realizar mis propios proyectos en tal forma que pueda innovar, desarrollar y aprender de otras experiencias con respecto a PIC.

Espero a que lean es te mensaje y puedan colaborarme en lo que pueda dan.

Dentro de la información que pido es imágenes, tutorías, mejor dicho información con laque pueda darme gusto creando y poder compartir con ustedes

35. pjmicrocontroladores - 18 abril, 2007

Hola Juan Carlos

¿Que deseas saber sobre los programadores por puerto paralelo?

Para información general sobre PIC pasate por el foro TODOPIC
http://www.todopic.com.ar/foros/
donde puedes aprender mucho.

Saludos
Pedro José Ramírez Gutiérrez

36. miguel de malaga - 24 abril, 2007

Bueeenooo pues mi problema radica en que tengo una entrenadora MicropicTrainer de msbilbao y según el fabricante se puede programar con icprog ( windows ) seleccionando SHAER PROGRAMER pero yo simplemente quiero un programa ( a se posible grafico) que me funcione con mi ubuntu y consiga de una vez programar un pic con dicha tarjeta que me costó en su tiempo una passsttttaaa.Gracias

37. pjmicrocontroladores - 24 abril, 2007

Hola Miguel

Lamentablemente desconozco tu programador. Si alguien sabe algo seguro que responderá, pero mientras tanto, ¿has probado ICprog con WINE?.

Suerte
Pedro José Ramírez Gutiérrez.

38. bufot - 2 mayo, 2007

hola!
antes que nada pedir perdon por mi desconocimiento de la electronica, pero creo que mi pregunta es facil de formular.

el tema es el siguiente: a traves de internet vemos multiples ejemplos de como encender un maximo de 8 leds por puerto paralelo, lo que pasa es que mi problema es que necesito sacar mas de 8 leds por puerto y me daria igual que fuera en puerto usb, la pregunta es esa que cantidad de leds individualmente hablando podria encender con un puerto informatico, usb, firmware, etc…

yo en vez de leds, al final pondria reles y activaria una linea que lo que tiene que hacer es quemar una resistencia al final de un cable, esa parte ya la tengo clara, pero necesito muchos mas que 8 leds por puerto paralelo que daria un total de 40 leds usando una placa base con un maximo de 5 puertos.

Gracias por todo, y perdonar mi lenguaje nada tecnico.

bufot

39. pjmicrocontroladores - 2 mayo, 2007

Hola,
La solución a tus problemas es no usar un puerto paralelo, sino uno serie. Así solo necesitas usar dos lineas o pines del puerto. Uno de reloj y otro de datos. Puertos así en un microcontrolador tienes I2C o UART que pueden manejar “INFINITOS” leds. La limitación está en el coste y en el tiempo razonable de funcionamiento.

Ahora bien , obviamente la implementación no es tan básica como en un PC por puerto paralelo.

Para hacerlo tendrías que usar integrados de carga serie y salida paralela. Pondrías en cascada tantos como salidas necesites y cargas la información de bit en bit a la máxima velocidad que permita el puerto. Cuando estén todos, activas las salidas y PLIN, tienes X leds (o releé) activos selectivamente.

Un tema a parte es ¿para qué quieres quemar resistencias?

Saludos
Pedro José Ramírez Gutiérrez.

40. bufot - 2 mayo, 2007

hay alguna manera donde me pueda informar de esa forma de hacerlo pero para un nulo en electronica como soy yo?

otra pregunta seria podria tambien recibir datos y saber cual de esas resistencias finales estan conectadas y cual no?

Buena pregunta lo de, para que quemar resistencias, en realidad es para una maquina de disparo de pirotecnia y la cosa es algo liosa pero se que donde tuviera un led me valdria para lo que necesito, que pasa por quemar resistencias.

no se si esto te aclara algo pero si no preguntame.

un saludo.

41. bufot - 2 mayo, 2007

por cierto muchas gracias por tu rapidez de respuesta, ha sido sencillamente impresionante.

un saludo

42. pjmicrocontroladores - 2 mayo, 2007

Hola,

Me has pillado delante de la pantalla.
Me temo que no es un tema fácil para un principiante, sobre todo si al final de un cable hay algo que hace BOOOM :).

Navegando un poco he encontrado la idea que te he transmitido pero mucho mejor explicada
http://www.ucontrol.com.ar/Articulos/matrizled7x32/matrizLED7x32.htm

Yo no usaría BASIC para programar el PIC, por dos motivos;1 he desarrollador el porting de GCC para PIC16F877 para programar en C y 2 el BASIC para microcontroladores lia más que ayuda.

Saludos
Pedro José Ramírez Gutiérrez.

43. bufot - 2 mayo, 2007

muchas gracias voy a ver si lo leo detenidamente y a ver si lo entiendo.

por lo de hacer BOOOM no te preocupes, de eso es de lo que entiendo y eso es lo que menos miedo me da.

un saludo.

bufot

44. froilan - 12 mayo, 2007

tengo un problema de no poder tener un grabador de pic el problema es que no puedocontruirlo es que mi cono cimineto es muy pobrepero lo mas impor tante es que lo intentare hasta poder lograr.
como lei tu nota en esta pajina no se si me puedes llegar ayudar a dar mas informacion de los grabadores de los pic mi correo.
froilan_73@yahoo.com.
gracias .
chau

45. LUZ MARIA BECERRIL - 4 junio, 2007

HOLA A TODOS!!!
SOY LUZ MARIA BECERRIL Y NECESITO UN FAVOR, SI ALGUIEN ME PODRIA ACONSEJAR QUE PROYECTO HACER PARA FIN DE SEMESTRE, TOMANDO EN CUENTA QUE SOLO ME QUEDA COMO MAXIMO UN MES PARA TERMINARLO, POR LO TANTO, NO DEBE SER TAN COMPLEJO!!!. ESTOY ESTUDIANDO ING. SISTEMAS COMPUTACIONALES. LES AGRADECERE MUCHO SI ME ACONSEJAN!!!!!!

46. pjmicrocontroladores - 4 junio, 2007

Hola Luz Maria
Lo primero, en internet escribir en mayusculas es señal de gritar y está muy mal visto. Si pides ayuda en los foros así, la mayoría de la gente no te ayudará.

No conozco tu carrera. Creo que es de Mejico. Si el trabajo de fin de semestre es parecido al proyecto fin de carrera, aquí necesitas un tutor que te guie y es él quien te da el tema. Si en tu universidad es diferente mejor.

Un proyecto bónito es la creación de las bibliotecas de dispositivo para el PIC16F. Usarias mi porting por lo que es una tecnología bastante novedosa. Debes usar GPL por lo que tu trabajo te dará publicidad aunque no lo remates y además es relativamente fácil de hacer.

Si no estás muy puesta en bibliotecas y PIC y quieres hacer algo más básico la típica pantalla de led controlada por microcontroladores es un proyecto fácil y que llama mucho la atención, pero no será novedosa. Puedes también hacer algo con la familia de los PIC24H con sonido tipo reproducir voces o alguna música corta.

Si quieres algo más fácil, monta el programador por puerto serie (tienes esquemas en mi blog), monta un circuito básico de un PIC y haz parpadear un led(el programa lo tienes en un comentario del blog). Lo haces todo con mi porting y te centras en analizar como has montado un entorno de desarrollo completo con software libre y hardware abierto por menos de 15 € (o el equivalente en tu pais) a precio de terceros.

Proyectos no te faltan, pero deberías indicar tus gustos y conocimientos. Obviamente yo te aconsejo tirando a microcontroladores PIC y a mi porting que para eso lo he echo : )

Saludos
Pedro José Ramírez Gutiérrez

47. yuri - 5 junio, 2007

quiero comparar puerto paralelo con el puerto serie en cuanto a
economia.
posibilidades de conexion de pc.
rapidez.
exactitud en la comunicacion .

48. yuri - 5 junio, 2007

hola estoy envuelto en un proyecto de curso y necesito que me ayuden en lo referente a los programadores de memorias
si pudieran decirme el diseño y una explicacion sencillade los programadores por puerto paralelo y puerto serie se lo agradeceria mucho . gracias

49. pjmicrocontroladores - 5 junio, 2007

Hola Yuri.

Buscando “programadores memoria” en google, en los dos primeros resultados tienes un programador por puerto serie y otro por puerto paralelo, ambos super simples de montar. No abandones a google, él no lo haría 🙂

Realmente todas las memorias tienes su protocolo de comunicación para lectura y escritura y lo único que has de hacer es implementarlo en el puerto que tengas. Las memorias más conocidas son las 24Lxx que se programan con I2C. Puedes usar un puerto serie, paralelo o USB para implentarlo o usar un PIC que lo implente y éste comunice con el PC por el puerto que eligas.

No tiene mucha más complicación.

Saludos
Pedro José Ramírez Gutiérrez.

50. Luz Maria - 7 junio, 2007

Hola Pedro, sinceramente nunca creì que escribir en mayúscusculas signifique que estoy gritando o algo similar; a decir verdad es la primera vez que ando en estos foros, si escribí en mayusculas fue por que quice llamar la atencion de alguna manera, una disculpa a todos!!!:-(, PERDON, NO LO VULEVO A HACER!; cambiando de tema con respecto a lo del consejo del proyecto de fin de semestre, pues te agradezco mucho que hayas hecho caso a mi peticion, normalmente estoy trabajando con el pic 16f877, (he manejado interrupciones, memoria EE-PROM, comunicación con el PTO. SERIAL y PC); es muy buena la idea de la biblioteca pero creo que sería mucho pedir, si me explicas como funcionaría para comenzar ha diseñar, por que si te soy sincera, no sé bien a que te refieres 😉
saludos…..

51. pjmicrocontroladores - 7 junio, 2007

Hola Luz María

Te he mandado un email.

Saludos
Pedro José Ramírez Gutiérrez.

52. leo - 27 junio, 2007

Hola:
necesito hacer correr un pic12F675 con un oscilador externo, el cual se alimenta a 2.5v.
¿Funcionara el clock externo del pic con esa tension de salida del oscilador?

53. pjmicrocontroladores - 27 junio, 2007

Hola Leo

Según datasheet y con configuración LP o XT podrías. No obstante, haz un programa de prueba para comprobarlo.

Saludos
Pedro José Ramírez Gutiérrez.

54. leo - 28 junio, 2007

Bien, muchas gracias Pedro.

55. Aleander - 18 julio, 2007

Que tal y saludos.

En la carrera yo usaba el puerto serie para conectar mi quemador de pics, en estos momentos mi computadora es portatil y el puerto que tiene es USB, naturalmente mi intención grabar PICs 16F84 pero no he encontrado un quemador con interfase USB para este PIC, si de alguna manera puedes ayudarme te lo agradecería, en sí quiero saber si existen circuitos prácticos para poderme diseñar un quemador USB para este tipo de PIC.

Alexander Arnaud

56. pjmicrocontroladores - 19 julio, 2007

Hola Alexander Arnaud

Te recomiendo el programador PicKit2 de Microchip. Es económico y funciona con todos los pic (24, 30 y 33 incluidos). Si quieres montarlo tienes tanto los esquemas como el software del PIC18 que monta como del PC con acceso gratuito desde la página de Microchip, aunque te saldrá más caro.

Puedes buscar otro como el creado por el autor del winpic, pero tiene las fuentes cerradas de forma que el mantenimiento y actualización es únicamente realizada por el autor y no puede usarse con tanta profundidad como la que permite PicKit2 (está, sino ya, siendo portado a Linux).

Saludos
Pedro José Ramírez Gutiérrez

57. luisin - 29 julio, 2007

hola, una pregunta, que pasaría si uso resistencias de 1k en vez de las de 10k???

58. pjmicrocontroladores - 31 julio, 2007

Hola Luisin

En principio serviría igual de bien. Las resistencias son únicamente una medida de protección, para limitar la corriente máxima.

Saludos
Pedro José Ramírez Gutiérrez

59. Félix Cruz - 1 agosto, 2007

si alguien me puede ayudar parra saber como grabo una memoria para un tv KTV ya que un colega me indicó que un amigo de él puede grabar ese tipo de memoria, deseo saber si es verdad y si alguien puede ayudarme a entender algo sobre eso, les agradezco de antemano por su ayuda. Me pueden escribir a mi correo felixcruz19@hotmail.com

60. wicho - 2 agosto, 2007

Hola de nuevo pjmicrocontroladores, espero que no sea mucha molestia, pero, quisiera pedirte ayuda con esto de los pic, en primer lugar, para nosotros los novatos hay cierto temor a joder el pic por ejemplo…. vi en el programador de pablin que decia que un led tenia q estar encendido para poder meter el pic sin clavos, q si no se podia dañar, y bueno, si no es mucha molestia podrias decirnos masomenos el proceso de grabación de pic, a prueba de tontos claro … a mi ahorita q llevo medio circuito armado, se me calienta bastante el 7805, y bueno…. no se si me explicas por correo o por aca (yo prefiero por aca por si otros tienen los mismos problemas y dudas)

un saludo y gracias 😉

61. pjmicrocontroladores - 2 agosto, 2007

Hola Wicho

La parte software está explicada en los otros dos artículos (los enlaces los tienes en el comentario 22).

No obstante te explico la parte de puesta a punto. Una vez decidido el entorno de programación de los PIC (windows o linux), en ambos programas tienes la posibilidad de testear el programador. Por tanto el primer paso es hacerle un test de funcionamiento y voltaje. Debes desactivar todas las salidas de la interfaz y comprobar con un tester (multimetro, voltimetro,…) que todas las salidas valen 0 voltios (o casi cero, menos de 0,6). Si alguna mide más algo esta mal y es peligroso pinchar un PIC. Despues, una a una, ve activando las distintas señales que deben entregar casi 5 (4,3 – 5 voltios). Y la salida más importante (por que es la que se puede cargar el microcontrolador) es la VPP que debe medir 13,2 (13,1 – 13,3). Esta salida tienes que estar seguro que cuando en el programa está apagada marca casi 0 voltios y cuando esta encendida marca 13,2.

Con esto probado, ya no debe de existir peligro de perder el microcontrolador.

Pasos para programar el PIC.
1. Sin el PIC conectado, encender el programador conectando primero la fuente de alimentación y después el puerto paralelo.
2. Ejecutar el programa de grabación (en linux una llamada, en windows encender icprog). Si no se ejecutan, la configuración por defecto del puerto es desconocida y podría dañar el PIC.
3. Ahora y solo ahora enchufar el PIC en el zócalo adecuado (con el interruptor en la posición adecuada) o la interfaz ICSP a la placa del circuito.
4. Carga el hex en el programa y grabar el microcontrolador.
5. Una vez que el programa ha terminado de grabar e informa de ello (ICprog hace una verificación por defecto y odissey informa textualmente), solo entonces, retirar el PIC del zocalo o la interfaz ICSP.
6. Microcontrolador grabado y listo para ver que no funciona porque has echo algo mal en el programa. Pero tranquilos que el proceso de grabación es el correcto. 🙂

Si los programas informan de errores al terminar o empezar a grabar, vuelve a la etapa de testeo sin PIC y mira que no haya cortos y el circuito es correcto.

Lo más normal es que los primerizos en la grabación de PIC crean que cuando el microcontrolador no hace nada la primera vez es que la culpa es del programador. En un 20% puede ser verdad pero lo habitual es que el programa este mal. Aconsejo a todos empezar por un simple led intermitente.

Saludos
Pedro José Ramírez Gutiérrez.

PD: Añado otra cosa. El 7805 se calienta un poco, pero lo normal para estos integrados. Si se calienta mucho revisa que no tenga cortos o que la alimentación sea correcta, tanto en voltaje como en polaridad. Si le has dado un calenton grande, porque lo has enchufado mal, posiblemente ya esté dañado pero en esto también te recomiendo un multimetro.

62. wicho - 9 agosto, 2007

hola de nuevo

ya tengo armado el programador y me parece que esta bien armado, ya que con la prueba de hardware del IC PROG, sí veo que cuando desactivo algo, efectivamente se desactiva XD … pero bueno.. cuando le pido que lea solo me lee un monton de 0x3FFF’s .. el pic es un PIC16C74A y lo he sacado de un UPS … se me ocurre que quizas este protegido o algo asi… cuando le digo que programe el pic supuestamente lo hace pero en la verificación, obviamente, al leer solo 0x3fff’s me dice que la verificación estuvo mal 😦 …. está protegido ? y si es asi, como lo desprotejo ? .. me parecio genial el bicho este porque tiene conversores A/D y un monton de puertos… pero bueno.. me parece que tendre que comprarme un bichito de los pequeños por ahora (me encanta la idea de programar pic’s y no puedo esperar!)

espero me podas ayudar 😉

gracias de antemano ;).. un saludo!

63. wicho - 9 agosto, 2007

también en el IC PROG me tiene deshabilitada la opción de Borrar el PIC, no se si sea por que no esta soportada esa opcion o qué ..

64. angel - 10 agosto, 2007

una pequeña pregunta, si quiero poner un LED (al igual que en el programador Pablin 2) que me avise cuando puedo quitar/poner el PIC (es decir, cuando hay VPP en el PIC), podría cambiar R3 por una resistencia de menos K y poner un LED verde ahi? Saludos

65. HHH - 2 septiembre, 2007

Hola buensa tardes, me gustaria saber como puedo efectuar disparos pirotecnicos desde mi ordenador de forma muy basica, ya que soy novato en esto, disparo los cohetes con electricidad pero nunca he utilizado un ordenador para esta finalidad y lo necesito. por fabor si pueden ser tan amables de ayudarme lo agradeceria mucho por que lo necesito. Les dejo mi e-mail para que me puedan enseñar es: hectoret_2401@hotmail.com
Muchas gracias

66. Lobo - 4 septiembre, 2007

supondo que enganchando un microcontrolador y haciendo lo de los leds(si llega informacion se enciende un led), en vez de led con interruptores enganchados a la corriente, pones las mechas despues de el led, cuando la corriente pase por la mecha la encenderá….XD

queria hacer una pregunta
tengo un microcontrolador 16f84,¿que prodramador me serviria para conectarlo al usb del ordenador?

67. Raul - 5 septiembre, 2007

Hola que tal, necesito un poco de ayuda cn respecto a un programador en paralelo.

Tengo montado en un protoboard un programador ICSP en el puerto paralelo. Al probar con winpic800 cada uno de los pines de salida, compruebo que estan funcionando de manera correcta, pero en el momento que le pido que detecte el dispositivo o que lo programe, me dice que hay error.
Ya probe con varios pics y no encuentro cual es el problema. Hay un programa que me recomienden probar o saben de una posible causa del problema.
Gracias

68. pjmicrocontroladores - 5 septiembre, 2007

Saludos Raul

La detección del microcontrolador no es posible con el programador paralelo y winpic. La escritura si tenía que funcionar. Si dice error inmediatamente puede ser más permisos de puertos que fallo en el programador. Prueba ICProg. En esta página tienes hasta un paso a paso para configurarlo.

Saludos
Pedro José Ramírez Gutiérrez

69. Raul - 6 septiembre, 2007

Hola de nuevo, muchas gracias por responder.
El problema no es inmediato, de hecho es al intentar escribir en el pic, manda error en la comparacion de los datos escritos y los leidos. Por lo mismo creo que o no esta escribiendo o leyento correctamente.
He hecho pruebas, si leo conectandola entrada de datos a tierra o a 5 v directamente, lee FFF o 000, segun el caso.
De todas formas voya intentar con icprog.
Saludos

70. Raul - 14 septiembre, 2007

Hola, yo de nuevo.

No comprendo cual es el problema, pues pruebo y todos los pines funcionan bien, tanto en icprog como en winpic800.
He probado con diferentes pics, conectando las patas como indica la hoja de datos y aun asi no logro progamar niinguno.

Alguien tiene alguna propuesta, solucion o recomendacion que me pueda dar?
Gracias

71. pjmicrocontroladores - 14 septiembre, 2007

Hola Raul.

Supongo que ya has leido y seguido paso a paso las indicaciones que hago para usar icprog en:

https://pjmicrocontroladores.wordpress.com/2006/12/13/documento-programar-un-pic-con-el-programador-por-puerto-paralelo-desde-windows/

En el mensaje anterior dices que cuando conectas a tierra lees FFF y a 5 lees ceros. En ese caso no has invertido la entrada de datos, dado que cuando conectas a tierra tienes que leer 000 y con 5 voltios 3FF.

Lee en enlace y siguelo paso a paso. En IC-prog cuando pones el pin de salida de datos a activo, el de entrada debe mostrarte también activo y similar para el cero. Si están cambiados debes invertir la que esté incorrecta en la configuración.

Saludos y suerte
Pedro José Ramírez Gutiérrez.

72. BalzaK - 18 septiembre, 2007

Hola;.pjmicrocontroladores, he mirado que tienes mucho vagage sobre el tema de progracion en ISCP, se que puedes ayudar a crear un Programador de PIC para el 16F877, Podrias ayudarme con la informacion tecnica hago referencia los planos electricos de conexion y montaje como tal. y al software con el cual programarlos.,

Gracias estare pendiente de tu respuesta

73. pjmicrocontroladores - 18 septiembre, 2007

Hola Balzak

Al incio de ésta página tienes los esquemas para un programador por puerto paralelo. En las direcciones siguientes:

https://pjmicrocontroladores.wordpress.com/2006/12/03/documento-programar-un-pic-con-el-programador-por-puerto-paralelo-desde-linux/

https://pjmicrocontroladores.wordpress.com/2006/12/13/documento-programar-un-pic-con-el-programador-por-puerto-paralelo-desde-windows/

tienes la información para usar el programador tanto en Linux como en Windows.

En este mismo blog tienes otros artículos para crear y usar un programador por puerto serie. Ambos han sido probados con el PIC 16F877 y funcionan.

Saludos
Pedro José Ramírez Gutiérrez.

74. drake2121-7 Noviembre,2007 - 7 noviembre, 2007

hola pedro
Mira es que tengo el siguiente problema soy muy novato en el mundo delos pic y necesito implementar un voltimetro de 0-20v con el pic 18f4550 y quisiera saber si me puedes ayudar a crear el codigo para este proyectico que es para ayudar a subir un poquito la nota del previo(parcial) q realmente nos fue muy mal a todos en el grupo y tambien quisiera saber si me podrias decir como hacer el montaje en protoboard es para estar seguro de no quemar ningun componente y el mismo pic.el profesor la verdad es que nos ha dado muy pocas bases y nos pide proyectos de esta clase sin ni siquiera habernos mostrado algunos proyectos como este para que nosotros nos vayamos acostumbrando a ellos y a manejar los diferentes componentes del pic.gracias de antemano por los aporetes que me puedas dar.

75. drake2121-7 Noviembre,2007 - 7 noviembre, 2007

este es mi correo por si alguien me pudiera ayudar con algun aporte para ver si puedo pasar esta materia q la verdad es muy importante y quisiera dominarla junto con las otras siete materias q veo por semestre.gracias.
wayne_2121@hotmail.com

76. Edgar Canul - 7 diciembre, 2007

alguien tiene el codigo completo para encender un led en c++, turbo o ensamblador, se lo agradeceria mucho. no sean gachos manden la in formacion en mi correo: akwied@yahoo.com ò en akwied@hotmail.com.mx.

77. Edgar Canul - 7 diciembre, 2007

se me pasaba decirles que lo necesito controlando el puerto paralelo, si alguien lo tiene o sabe como, colaboren!!!

78. andres - 6 marzo, 2008

como resibir informacion del puerto serial, atraves de celurar, para transmitirla al puerto

79. david - 16 marzo, 2008

Hola, gracias por este articulo que es de gran ayuda.
He mirado la fuente de alimentación del ordenador y tiene un cable de 5v y otro de 12v (que es inferior a los 13.2v), se podría utilizar esa fuente en vez de la que sale en el circuito? quizas quitando alguna resistencia…
¿Cuanto vale construirlo? porque he visto los que venden montados y no bajaban de 60 €

Saludos.

80. pjmicrocontroladores - 16 marzo, 2008

Hola David

Los 12 voltios del ordenador ya están estabilizados por los que no se puede sacar más voltaje con pequeños cambios. No sería demasiado dificil conseguirlos desde 12 voltios y -5 voltios (GND del circuito). Sin embargo tendrías que revisarlo a fondo.

El circuito vale en total menos de 6 euros, y 3 son del transformador de 15 voltios. Hay quien los cobra a 60 euros. Por supuesto llevan adjunto software probrado, hardware a prueba de fallos y soporte técnico, además de que te ahorras el montaje manual que según para que personas es más o menos complicado. Todo eso hay que pagarlo.

Sin embargo, si eres minimamente manitas, por menos de 6 euros puedes tener un programador perfecto.

Saludos
Pedro José Ramírez Gutiérrez.

81. david - 17 marzo, 2008

Gracias de nuevo Pedro José no me había parado a pensar en los -5 V. Pero ya que es de tan bajo costo no me complicaré la vida (tampoco es que no me guste complicarme la pero no tengo conocimiento ni tiempo suficiente).

Saludos.

82. Fabian - 27 marzo, 2008

Ya probe el Programador por elpuerto paralelo y funciona perfecto pero necesito implementar un programador por el puerto serie y no entiendo muy bien lo que comentaban del bootleader, este modelo icsp tambien puede ser utilizado para este programador por el puerto serial.

83. pjmicrocontroladores - 27 marzo, 2008

Hola Fabian.

El interfaz ICSP es el mismo para todos los microcontroladores PIC (más o menos), pero según que programor hardware lo implemente usará un puerto serie, usb o paralelo. En éste mismo blog tienes instrucciones para un programador por puerto serie.

El Bootloader es otra forma de programar los PIC. Un PIC con Flash (PIC16Fxx) puede programarse a si mismo. Por lo tanto si con un programador le metemos un programa preparado para o bien ejecutar el código que tenga a partir de cierto sitio o, ante algún evento, leer por un puerto serie un nuevo programa y escribirlo en la FLASH, ya no necesitamos un programador paralelo. Ese programa es a lo que se llama un bootloader. Una vez está grabado en el PIC, ya no hace falta programador sino seguir la secuencia que necesite el bootloader para grabar un nuevo programa o ejecutar el que hay.

Como cosa mala es que perdemos cierta cantidad de memoria. Como cosa buena es que ya no dependemos de conseguir voltajes o adaptarlos o etc. sino que con una conexión serie estandar de cualquier ordenador o conversor serie-usb podemos programar el microcontrolador.

Saludos
Pedro José Ramírez Gutiérrez.

84. nuevo novat0 - 31 marzo, 2008

de cuanto valor son las resistencias R1 y R2 en ohms o Kilo ohms

85. pjmicrocontroladores - 31 marzo, 2008

Hola nuevo

En los esquemativos normalmente no se pone ohmios, ni el símbolo omega. Si son ohm no se pone unidad, si son kilo ohmios se pone K, para mega ohmios M. En este esquemático 10K significaría 10 Kilo ohmios.

De todas formas, en este circuito lo importante es limitar la corriente. Puedes poner 10K o 1K, o cualquier cosa intermedia que tengas a mano. Lo importante es que no este conectado directo.

Saludos
Pedro José Ramírez Gutiérrez

86. Fabian - 3 abril, 2008

Fabian

Gracias por su Pronta respuesta

Estoy desarrolando un proyecto en el cual debo quemar un PIC 16f877a pero sin despegarlo de la Baquelita, el programa de desarrollo lo estoy construyendo en VB6, visual me deja manejar de forma muy facil el puerto serie y quiero aprovechar esto para crear dentro del programa la subrutina para programar el Pic, me surgen varias dudas:

* El archivo de extension .Hex que describe el codigo implementar no comprendo como enviarlo por el puerto, tengo entendido que en este se especifican las direcciones de memoria y los datos de cada direccion. Encontre en un blog que simplemente se envian uno detras del otro en el orden que aparecen en este archivo .hex

*Como selecciono si quiero escribir o leer en caso de que se quiera hacer una verificacion de el contenido de la memoria del pic.

Si tienes algunos links relacionados agradezco que me los facilite.
Muchas gracias por su ayuda

87. pjmicrocontroladores - 3 abril, 2008

Hola Fabian.

De los bootloader, el que siempre suena es Tiny PIC bootloader en http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm.

Yo lo vi funcionar pero hace tiempo. Usa éste hasta que tengas practica y despues piensas en crearte uno tu mismo (o modificar éste).

De todas formas si lo que te preocupa es no desoldar el chip para poder programarlo, puedes insolar la entrada ICSP para poder programar el chip sin despegarlo (ICSP significa in circuit serial programming osea, programación serie directamente en circuito final). Con ésto consigues liberar el puerto serie y la operatividad del microcontrolador. En la página de Microchip hay varios documentos para lograrlo. Busca por isolate ICSP.

Saludos
Pedro José Ramírez Gutiérrez.

88. linda - 18 abril, 2008

hola a todos lo que pasa es que yo estoy trabajando con pic 18f2550 y lo que pasa es que no he podido manejar i2c con este pic, yo ya he trabjado con 16f876A pero hasta el momento no he podido manejar el i2c en el pic 18f.

porfa necesito ayuda muchisisimas gracias

89. nuevo novato - 5 mayo, 2008

hola de nuevo,quiero agradecerte Pedro Jose Ramires por lo de las resistencias.
Me surguio otra pregunta y si pueden aclararmela, es sobre la primer diagrama electronico,en la conexion del conector DC salida 2(GND) y 3(Vcc) se en cuentra una salida a IC1P,que se puede conectar en esa salida o para que sirve

90. pjmicrocontroladores - 5 mayo, 2008

Hola nuevo

Es solo la alimentación del chip de los inversores. Indica que el integrado 74ls04 debe ir alimentado con ese voltaje.

Saludos
Pedro José Ramírez Gutiérrez

91. nuevo novato - 7 mayo, 2008

Ok, gracias de nuevo Pedro Jose Ramirez, ahora si terminare el programador de PICs

92. goku - 14 mayo, 2008

espero que si estudian esto despues me pasen

93. Edwin - 22 junio, 2008

Hola Pjmicrocontroladores, estoy trabajando en mi proyecto de grado y necesito reprogramar un microcontrolador 16f877a utilizando una interfaz rs232 y visual Basic. He encontrado que lo puedo realizar con un bootloader y para ello he probado con algunos que encontré en internet que han funcionado. Para probar con el bootloader utilizo el archivo ejecutable “PicbootPlus” pero ahora necesito saber la forma de enviar los datos del archivo .hex para implementarlo desde la interfaz que estoy desarrollando en visual basic para escribir este código en la memoria de programa utilizando el bootloader que se ha precargado en el micro.
Gracias por su atención y colaboración, cualquier sugerencia para este asunto es bienvenida.

94. pjmicrocontroladores - 22 junio, 2008

Hay muchos cargardores y cada uno funciona de forma distinta. Por ejemplo en:
http://www.microchipc.com/PIC16bootload/index.php
tienes un cargador que funciona en 16f87x. Allí tienes además del bootloader, el código fuente del cargador para DOS,WIndows y Linux (incluso una versión en delphi para Windows).

Más fácil imposible.

Saludos
Pedro José Ramírez Gutiérrez.

95. RAAL - 6 julio, 2008

me podrian ayudar como puedo hacer una conexion wireless usando el usb del PIC 18f2550 para comunicar con la compu y controlarlo??

96. monserrat - 19 julio, 2008

nencesito programar el puerto serial, con el fin de que prendan 8 lets

97. Alexander - 24 agosto, 2008

Han utilizado este programador con el WinPIC800, tengo la verison v3.63c pero que hardware hay que elegir: ¿Pablin o ProPic2?, tambien tengo el IC-Prog v1.06B y hay que elegir ProPic 2 Programmer ??? No se realmente… Saludos a todos y espero su pronta respuesta…

98. pjmicrocontroladores - 24 agosto, 2008
99. nuevo novato - 17 septiembre, 2008

hola como estan,quisiera saber si la fuente del grabador de pics requiere un puente de diodos para rectificarla y convertirla a corriente directa o si se conecta a la corriente alterna despues de reducirla ya que en el diagrama indica 12vac

100. pjmicrocontroladores - 17 septiembre, 2008

Hola 99.

Te cito el artículo, que lo explica:
“Para la entrada de 15 voltios (o más) podemos usar cualquier transformador de alterna a continua de 12 voltios no regulado o 15 regulados. Lo único a tener en cuenta es que el máximo voltaje es de 35 voltios.”

He cambiado el diagrama para que quede más claro. Gracias por el aviso.

Saludos
Pedro José Ramírez Gutiérrez

101. Carlos - 19 noviembre, 2008

Hola, de casualidad alguien sabe como se programa el pic18f452 con el pickit2, yo solo estoy conectando las 5 lineas del pickit2 directamente al pic , nose si necesito ponerle mas componentes o voltaje externo ya que como lo pongo no me programa el pic.

102. Henry - 24 septiembre, 2009

Saludos Pedro Jose.

Antes que nada, felicitar a todos por las aportaciones que han escrito.

Solo tengo una duda (y seguro que es la más tonta de todas), pero para grabar un PIC de 18-Pin (el 16F84A) es necesario añadir un nuevo Zocalo? por lo que he visto, no se puede acoplar el pic de 18 pin en los zocalos de 28 y 40 porque difieren el VPP y el VCC.

Gracias.

103. pjmicrocontroladores - 24 septiembre, 2009

Hola Henry

Puedes acoplarlo en el zocalo de 14 pines. Unicamente que cuatro se quedan al aire, pero no interfiere.

Saludos
Pedro José Ramírez Gutiérrez.

104. Paolo - 26 agosto, 2011

Hola! saludos desde ya! Bueno la verdad es que necesito ayuda para arma un programador de PIC por puerto paralelo principalmente, necesito algún diseño de PCB que funcione ya que anduve buscando por ahi pero las fuentes no me parecieron confiables y para no andar gastando dinero innecesario probando cosas que no conozco, prefiero una recomendación o alguna sugerencia. Ah y si conocen algún soft para programar que corra en Linux (ubuntu 11.04) también lo agradeceria mucho. :D!


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: