Autor Tema: Construir y entender un programador  (Leído 46238 veces)

0 Usuarios y 6 Visitantes están viendo este tema.

Desconectado arcachofo

  • PIC16
  • ***
  • Mensajes: 126
    • Foro para usuarios Linux.
Re: Construir y entender un programador
« Respuesta #90 en: 10 de Octubre de 2008, 23:54:40 »
Pues al final me decidí a montar un zócalo de 28 p soldado y con un conector para el ICSP todo bien hechito, pensando en hacer pruebas con distintos cables y resulta que ahora funciona perfectamente con un cable plano de esos, de 20 cm sin apantallar ni nada... se vé que a los duendecillos les gustan las cosas bien hechas y ordenadas.... cualquier día de estos aprendo...

De cualquier forma creo que voy a empezar a plantearme los circuitos con ICSP, porque como soy novatillo y tengo que hacer muuuuchas pruebas con los programas, al final acabo harto de quitar y poner pics, además de que acaban fastidiándose las patillas con tanto trajín.

Es cierto lo que dices, si el retardo es el mismo en todas las lineas todo debería ir bien, y estaba confundiendo el tiempo de respuesta, osea el tiempo que tarda en pasar de 0 a 1 (algunos ns), con el tiempo que tarda en leer una entrada y escribir a una salida, que este sí es mucho mayor (algunos us); de todas formas solo estoy divagando con esto, por ahora seguiré con este programador hasta que me dé el próximo fallo.

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Construir y entender un programador
« Respuesta #91 en: 11 de Octubre de 2008, 00:00:21 »
Pues yo por cada 10 fallos que me da el programador, armo uno nuevo...  :D
La poca experiencia que tengo con programadores es porque estos me daban errores y me cansaba, me ponia a investigar y armaba otro desde cero...
Dendro de poco seras un experto en programadores  :mrgreen:
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado sandra

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 374
Re: Construir y entender un programador
« Respuesta #92 en: 11 de Octubre de 2008, 14:19:00 »
Lo consegui!!!.... gracias por el interés....
Sandra prende un velón pero de los gordos  :D :D :D :D... más que nada a ver si cambio y soy un poco más cuidadoso...


Pues bueno que bien que por fin te funcione el programador :-/  y con eso de la veladora de las gordotas para la distracción no te preocupes que siempre tengo una encendida para mí  :mrgreen: así que la puedo compartir. :D :D :D
Ahora con respecto a  utilizar un pic como bufer  tan solo como eso lo veo innecesario y en consto excesivo cuando hay integrados  específicos para esa tarea.
Ahora que tratándose de un desarrollo completo como los programadores ya mencionados que únicamente    cargan el .hex y realizan toda la faena de modo autónomo pues bueno esas ya son palabras mayores.

Con respecto a utilizar la alimentación del puerto usb para alimentar el programador lo miro poco práctico y además riesgoso cualquier corto y te chutas en el menor de los casos el puerto usb.

Si lo que deseas es que tu programador sea independiente en cuanto a su alimentación recuerdo alguna ves haber visto programadores paralelos que se alimentaban a trabes de una batería de  9v   es una modificación un poco mas costosa  porque requiere dos convertidores DC DC  uno para obtener los 5 vcc y otro para los 13.5 anque es probable que existan otros métodos para obtener estos voltajes a través de la pila de 9v es el mas recomendable para obtener la mayor eficiencia de la batería.
Un saludo :g)

El pesimista se queja del viento
El optimista espera que cambie
El realista ajusta las velas

Desconectado arcachofo

  • PIC16
  • ***
  • Mensajes: 126
    • Foro para usuarios Linux.
Re: Construir y entender un programador
« Respuesta #93 en: 11 de Octubre de 2008, 16:11:55 »
Citar
Ahora que tratándose de un desarrollo completo como los programadores ya mencionados que únicamente    cargan el .hex y realizan toda la faena de modo autónomo pues bueno esas ya son palabras mayores.

Si claro... eso son palabras más que mayores para mí... por lo pronto ese pic debería vérselas con el protocolo USB para la transmisión de datos... eso ni me lo imagino...

La idea era usar un pic no solo como bufer, sino además para generar 10v o 11v para  Vpp, también para suministrar Vdd a traves de una de sus patillas (Vdd=4.5v es suficiente) y para gestionar LVP o HVP controlado por un conmutador por ejemplo, entonces el programador solo sería un pic de 18 pines barato y algún condensador y diodo para la bomba de carga, pero sin transistores ni reguladores de tensión, con lo que seria un hardware más sencillo y más barato,... si fuera posible hacerlo.. claro

Citar
Con respecto a utilizar la alimentación del puerto usb para alimentar el programador lo miro poco práctico y además riesgoso cualquier corto y te chutas en el menor de los casos el puerto usb.

Eso si que es verdad.... pero quizás con una resistencia limitadora de muy pocos ohm se pueda proteger,... nosé... no conozco las características del puerto USB, ya te digo que por ahora solo estoy divagando con esto.

Desconectado arcachofo

  • PIC16
  • ***
  • Mensajes: 126
    • Foro para usuarios Linux.
Re: Construir y entender un programador
« Respuesta #94 en: 12 de Octubre de 2008, 20:34:13 »
Pues poco me ha durado la alegría... el caso es que programa todo bien, menos User IDs... no sé porqué.
Es esto importante?... a mi me dá que no, pero me extraña mucho el tema.

Desconectado ing_alqa

  • PIC10
  • *
  • Mensajes: 12
Re: Construir y entender un programador
« Respuesta #95 en: 02 de Junio de 2009, 01:20:41 »
Marttyn: estoy leyendo tus experiencias con los programadores. Quisiera hacerte una pregunta, ¿tú programador actual me sirve para un PIC18F4520? Es decir, ¿has programado ese tipo de micros? Aparte, te doy mis más sinceros agradecimientos, chao.  :-/

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Construir y entender un programador
« Respuesta #96 en: 02 de Junio de 2009, 11:36:29 »
Hola amigo! Bienvenido al foro!
La verdad no probe programar ese pic en concreto, pero como digo al principio:

Cita de: Marttyn

Señales de programacion

Un microcontrolador de la marca Microchip (PIC) necesita 5 señales para el proceso de grabacion. Esas señales salen del programador y llegan a las patitas de nuestro PIC. Las señales son las siguientes:

    * Vss: Tambien conocido como Gnd es la alimentacion negativa. Los demas voltajes seran con respecto a el.
    * Vdd: Es el archienemigo de Vss, si se juntan saltan chispas Razz. Es el terminal positivo. La mayoria de las veces seran 5v, pero hay PICs que necesitan 3.3v. Estos incluyen la letra J o K en el modelo. No preocuparse por esto, probablemente no te toparas con estos individuos. No confundir "Low Voltage Programing" con los PICs que funcionan a 3.3v! (Si no sabes lo que significa esto, olvidalo)
    * Vpp: Voltaje de programacion. Es el voltaje necesario para que el PIC entre en modo programaion y el programador pueda escribir el HEX. Coincide siempre con el pin MCLR del PIC. Para no confundirte, si Vpp vale sobre 13v esta bien. Dependiendo el PIC el margen es mayor o menor, pero nunca superior a 14v!. AQUI hay una tabla con los valores de Vpp admitidos por algunos PICs.
    * PGC: Linea de reloj para la cominicacion serial. En algunos PICs aparece como "ICSPCLK". Por esta linea el programador transmite una señal de onda cuadrada entre Vss y Vdd marcando el pulso para la linea de datos.
    * PGD: Linea de datos para la comunicacion serial. En algunos PICs aparece como "ICSPDATA". Por aqui el programador envia los datos a programar. Cada bit se transfiere en un flanco de bajada de PGC, es decir, en la transicion de Vdd a Vss.


Una vez sabido esto, es muy facil saber si un hard programador es compatible con el PIC que queremos programar. Primero si tiene ICSP es compatible por coj**es. Y sino, tendra uno o mas zocalos para colocar el PIC, hay que ver si alguno de los zocalos tiene una distribucion de los pines de programacion que coincida con nuestro PIC. Bien visto, cualquier PIC es compatible con cualquier programador, ya que si no tenemos el zocalo donde coincidan los pines de programacion de nuestro PIC, siempre podemos sacar 5 cablecitos desde el programador hasta un protoboard y programarlo alli... un ICSP casero  lol

en resumen, cualquier programador deberia servir para cualquier micro siempre y cuando las señales del zocalo de programacion coincida con la distribucion de pines de nuestro micro.

No quiero tirar por tierra mi programador, pero por el foro hay muchos otros programadores mas utiles que este... sobre todo los que son USB.
Aunque admito que este puede ser mas simple de hacer, y aprenderas muchas cosas en el intento  :mrgreen:
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado ing_alqa

  • PIC10
  • *
  • Mensajes: 12
Re: Construir y entender un programador
« Respuesta #97 en: 13 de Junio de 2009, 14:27:29 »
Muchas gracias Marttyn; estaba tan concentrado en tus otros temas que no me había fijado que me habías respondido, muchísimas gracias. He estado leyendo y me he dado cuenta de que en principio todos los PIC utilizan las mismas señales de programación. Quería hacerte una pregunta: veo muchos Vdd, Vss, DATA, Clock y Vpps, pero según entiendo, cuando uno conecta un micro de 8, 18, 28 o 40 pines, el WinPIC se da cuenta de que microcontrolador le conecté y habilita únicamente las líneas apropiadas. Marttyn, ¿es correcta mi apreciación o me equivoco? pues la verdad no entiendo muy bien como decirle al WinPIC que le estoy conectando un micro de 8, 18, 28 o 40 pines. Dios te bendiga, muchas gracias, que te siga yendo muy bien. :-/

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Construir y entender un programador
« Respuesta #98 en: 13 de Junio de 2009, 22:05:47 »
Amigo, no hace falta que dios me bendiga por echarte una mano! Seguramente habra a quien le haga mas falta  :P
El tema de las lineas de programacion es asi, cualquier micro de la empresa microchip necesita Vpp, Vss, Vdd, Clk y Dat para ser programado. Segun nuestro pic tenga mas o menos pines, la posicion de los pines de programacion en el chip sera una u otra. Se podria decir que todos los pics con el mismo numero de pines tiene ubicado los pines de programacion en el mismo sitio, por ejemplo, los pics de la familia 12F de 8 pines tiene Vdd en el pin 1, y Vss en el pin 8. Nota1
Podriamos tener varios zocalos, uno de 8, otro de 18, otro de 28 y otro de 40 pines. Esto nos garantiza que poniendo el pic en el zocalo correspondiete, las lineas de programacion estaran ubicadas correctamente. Asi es como esta diseñado el pablin 2 (http://www.pablin.com.ar/electron/circuito/mc/ppp2/index.htm)
El problema de los zocalos normales es lo molesto de ponerlos y quitarlos, ya que podemos romper las patitas. para eso existen los zocalos ZIF (zero insertion force, fuerza de insercion nula). Para no tener varios zocalos zif, que ademas de ocupar espacio son caros, a alguien se le ocurrio diseñar una distribucion de las lineas de programacion para poder colocar en un mismo zocalo de 40 pines cualquier pic, sea cual sea el numero de pines que tenga. Asi, colocando el pic en una posicion u otra dentro del zocalo las lineas de programacion que hacen contacto con sus patas es la correcta. Nota2
Por desgracia no es posible hacer que quepan en un mismo zocalo TODOS los pics, por eso inventaron Vpp1 y Vpp2 que es lo mismo que Vpp, solo que aplicado en pies diferentes, asi cuando en winpic seleccionas un pic de 8 o 18 pines, la señal de Vpp se enviara por el pin 5 del LPT hacia el programador, mientras que si seleccionas un pic de 28 o 40 pines este enviara la señal de programacion por el pin 6 del LPT (leete esta parte nuevamente en el primer post) y eso hace que nuestro zocalo tenga 2 Vpp. Esto es porque Vpp es el unico voltaje "peligroso", ya que al ser de unos 13v, si se aplica en el pin incorrecto puede dañar nuestro pic. Mientras que las demas señalas de programacion no son mas que 0v o 5v, por lo que si se aplican en pines no destinados a la programacion, realmente no ocurrira nada. Asi, al colocar un pic en uno de estos zocalos, tendra Vss, Vdd, Clk, Dat y Vpp donde corresponde, y ademas seguramente tenga Vss, Vdd, Clk o Dat aplicado en algun otro pin, aunque no le corresponda, pero NUNCA tendra Vpp en un pin que no le corresponda.

Nota1: hay pic que no son como el resto, y por mas que tengan 8, 18, 28 o 40 pines, puede que la distribucion de las lineas de programacion sea diferente a la gran mayoria. si es la primera vez que trabajamos con algun pic, lo ideal seria mirar su datasheet para ver si coincide con nuestro programador.
Nota2: Para saber cual es la posicion dentro del zocalo zif primero seleccionar el pic que vamos a programar en el winpic, y luego darle al boton que tiene forma de chip en un zocalo, que esta justo debajo del boton "programar". Esto nos dira como colocar el micro en el zocalo

Bueno, espero haber aclarado mas que enredado.... tengo el don de no saber explicarme  :D
Salu2
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado ing_alqa

  • PIC10
  • *
  • Mensajes: 12
Re: Construir y entender un programador
« Respuesta #99 en: 14 de Junio de 2009, 19:11:44 »
Estimado Marttyn. Eso que me acabas de explicar no es más que la comprobación de algo que ya sabía, simplemente necesitaba que tú, el autor de tan expectacular programador me diera su visto bueno, lo cual acabas de hacer al darme una explicación que coincide con lo que tenía en mente. En conclusión, eso significa que tienes el don de SI SABER EXPLICARTE y si, me has aclarado y de ninguna forma me has enredado. De todas formas, volveré a repasar tus preciados aportes "Construir y entender un programador" y "Tengo programador nuevo! (ZIF, 2 Vpp, Vdd, ICSP...)". Muchas gracias, espero que el próximo mensaje que te escriba incluya una foto con mi programador. Salu2 :-/

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Construir y entender un programador
« Respuesta #100 en: 14 de Junio de 2009, 20:30:57 »
Pues esperara por las fotos, animo!  :mrgreen:
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado ing_alqa

  • PIC10
  • *
  • Mensajes: 12
Re: Construir y entender un programador
« Respuesta #101 en: 17 de Junio de 2009, 00:26:21 »
Sandra, a mi entender y no lo tomes a mal, el circuito que posteaste no es correcto.

Aunque el mismo funciona bien durante la programación, el diodo D2 no permite una buena estabilidad del pin MCLR durante la operación normal del circuito, debido a que no puede filtrarse ningun tipo de ruido a masa en la configuración de la figura.
Además considero que el capacitor de 10 uF es innecesario, la corriente que drena normalmente el pin es minima, yo preferiria colocar algun capacitor de bajo valor, entre 100 nF y 1 nF dependiendo del ambiente, en reemplazo del mismo, que es un filtro más efectivo que el capacitor electrolítico de capacidad mayor.

El diodo D2 deberia ser removido, colocandolo en la rama de la resistencia pull-up. Además faltaria colocar una resistencia en el lugar del diodo, que limita la corriente que el capacitor puede introducir en el pin durante algun evento anomalo, ya sea ESD o OES. Además, la resistencia evita que se produzca el latch-up del PIC cuando tratamos de puentear MCLR a masa, en general con un pulsador (Microchip recomienda no puentear directamente MCLR a VSS porque se pueden inducir corrientes tan altas como 80 mA a traves del pin durante el evento). El valor de esta resistencia debe ser mayor a 1K segun el fabricante.

Esta es tan solo mi opinión personal en bases a mi experiencia y las recomendaciones de Microchip, cualquier opinión será bienvenida. El circuito que generalmente yo utilizo es el siguiente:



Tal como haz comentado Sandra, la serie PIC18 requiere de un reset, pero previo al comienzo de la programación antes de colocar la señal de Vpp, no conozco los detalles y tampoco desconozco si se requiere un reset postprogramacion, pero por experiencia propia puedo decir que al programar los 18F necesitamos una señal extra del ICSP para reiniciar el PIC automaticamente durante el proceso de programación. Tal vez alguien mas interiorizado con el protocolo pueda contarnos como funciona.

Saludos desde Argentina.

Hola amigo Marttyn. Recuerdas que te dije que volvería a leer tus aportes "Construir y entender un programador" y "Tengo programador nuevo! (ZIF, 2 Vpp, Vdd, ICSP...)". Pues ya lo hice y aprendí aún más. Te cuento que estoy investigando todos estos temas para poder encender un bombillo que este en otra casa distinta a la mia, a través de Internet, utilizando PIC de la familia 18 y ENC28J60. Ya realicé tu esquema en el Proteus que es el software con el que me gusta trabajar y como ya te dije volví a leer los foros. Me preocupa mucho lo que le respondió Gonzalo a Sandra en este post. Según entiendo, si deseo programar mi micro 18F452 o 18F4550 empleando tu programador debo hacer lo siguiente: 1) debo añadirle ese circuito de reset a tu Programador Zif, 2) debo programar mi micro y 3) debo oprimir el pulsador reset al finalizar el proceso de grabación. La verdad es que si o si necesito programar micros de la serie 18 y para serte sincero me gusto mucho tu programador. Te agradecería mucho tus aclaraciones y tu colaboración, de antemano gracias.
« Última modificación: 17 de Junio de 2009, 18:17:34 por ing_alqa »

Desconectado ing_alqa

  • PIC10
  • *
  • Mensajes: 12
Re: Construir y entender un programador
« Respuesta #102 en: 17 de Junio de 2009, 18:08:32 »
Holas amigos del foro.
Me siento un poco apenado por haber dirigido mi último post únicamente a Marttyn ya que soy conciente de los grandes aportes de los demás integrantes como Sandra, pajaro, arcachofo, Marttyn y gonzalo, entre otros. Les estoy muy agradecido a todos ustedes.
Mi duda es la siguiente: necesito programar microcontroladores de la familia 18F, más exactamente los 18F452, 18F4520 y 18F4550; ya tengo listo el diseño del programador ZIF de Marttyn y estoy dispuesto a quemarlo en el ácido, pero no estoy seguro de si necesito añadirle al programador de Marttyn el circuito de reset que va al pin mclr propuesto por Gonzalo_BlackHawk. Aclaro que por el momento no necesito de ninguna manera programar In Circuit, es decir, ICSP.
A todos los integrantes de este foro, muchísimas gracias, bye :-/

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Construir y entender un programador
« Respuesta #103 en: 17 de Junio de 2009, 20:11:37 »
La verdad no tengo idea de si puedes programar pics de la familia 18... suponia que si... pero los que saben diran.
Quizas seria mejor que busques por el foro si hay algun post sobre esto, y sino crees uno, porque aqui tal vez no obtengas demasiadas respuestas...
Salu2
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.


 

anything