TODOPIC

Microcontroladores PIC => Programadores => Mensaje iniciado por: Nocturno en 11 de Agosto de 2004, 06:00:00

Título: Bootloader
Publicado por: Nocturno en 11 de Agosto de 2004, 06:00:00
Ahora que estoy haciendo mis primeros pinitos en C, también he aprovechado para usar por primera vez un bootloader.

He conseguido que funcione perfectamente el PIC Downloader pero aún así tengo algunas dudas:

- ¿se puede usar el WinPic como grabador vía bootloader?
- he leído alguna vez en el foro (creo que fue Abago) que para grabarlo con un bootloader hay que tener puntería con el botón de reset, porque sólo hay una fracción de segundo para grabarlo. Yo no tengo ningún problema, le doy a grabar al software y se queda esperando reset. Cuando reseteo el micro, lo detecta y lo graba. La verdad es que así me va bien, pero ¿porqué dijo eso Abago?
- si cambio de bootloader,¿tengo que cambiar de PicDownloader?, ¿van juntos o se pueden usar diferentes versiones en PC y PIC.

Gracias
Título: RE: Bootloader
Publicado por: Sispic en 11 de Agosto de 2004, 08:32:00
Pero nocturno , no me digas que estas dandole al pulsador reset cada vez de programar el pic .

Si es que usas este :
http://www.johnsrud.no/pic/index.php

Implantale RTS pin 7 del com a traves del max232 a MCLR del pic y te olvidas . Si este codigo no lo tiene implantado ya te lo mando modificado . Ademas se cierra solito si termina sin errores .
Título: RE: Bootloader
Publicado por: odukec en 11 de Agosto de 2004, 08:40:00
Hola

Nocturno disculpa molestarte.. pero lo del bootloader no lo logro entender.. pues se que hay que reservar un espacio en memoria..
Ya me lo habian explicado.. pero no entendi.. yo tambien programo en c.. si me pudieras ayudar te lo agradeceria.. pues con un ejemplo simple.

Gracias

Saludos
Título: RE: Bootloader
Publicado por: Nocturno en 11 de Agosto de 2004, 11:14:00
Para Sisco

No sabía lo que me has dicho para evitar pulsar Reset, pero suena bien. Lo probaré. El programa que uso es el mismo, pero en una versión anterior. No me has dicho nada sobre el WinPic; deduzco por tanto que no lo puedo usar como Downloader (¿Posible mejora / ampliación de Winpic?)

Para Odukec

No estoy en condiciones de ser un maestro del tema, pues empecé ayer, pero te cuento lo que sé. Todo lo que necesité lo descargue de la página http://www.microchipc.com/PIC16bootload/

1- Hay que descargar un Bootloader e instalarlo en el micro. Normalmente te bastará con un HEX que tendrás que grabar sobre el micro con un grabador normal y corriente, el que suelas utilizar. A la hora de elegir el HEX tendrás que decidir con qué velocidad vas a usar luego el puerto serie y con qué cristal está oscilando el micro, puesto que la compilación varía de uno a otro.

2- Conectas el micro al puerto serie del PC a través de un MAX232. Si tienes dudas sobre cómo hacerlo échale un vistazo a este gráfico.

(no olvides conectar las patillas 15 y 16 a masa y 5V, en el gráfico no se ve bien y me comí el coco un rato - los condensadores electrolíticos son de 1 uF)

3- Ejecutas en tu PC el programa PICDownloader (está en la web que te dije o incluso en el link que ha publicado Sisco), eliges el HEX que quieres grabar y le das al botón Write. Luego pulsas reset en el micro y debe detectarlo, y pasar el programa al micro.

Como las cosas no suelen salir bien a la primera, y si no que se lo digan a Murphy , el paquete que habrás descargado contiene un HEX que permite chequear si la conexión RS232 está bien hecha. Es muy fácil. Cargas el HEX en el PIC, abres el Hyperterminal y, si todo va bien, verás un mensaje de bienvenida de nuestro PIC cada vez que lo resetées. Si no estás viendo el mensaje, no intentes lo del PICDownloader todavía, porque la conexión RS232 no está en condiciones. Resuelve el problema y luego continúa.

Bueno, esto es lo que sé. Todavía no he probado lo que dice Sisco, por lo que todavía me queda mucho que avanzar en este tema, pero te recomiendo que lo intentes porque es un sistema de grabación "in circuit" muy cómodo y rápido.
Título: RE: Bootloader
Publicado por: odukec en 11 de Agosto de 2004, 11:54:00
Hola..

Gracias Nocturno por tu ayuda.. ustedes son lo maximo..!!

Saludos
Título: RE: Bootloader
Publicado por: Nocturno en 11 de Agosto de 2004, 12:24:00
Jajaja, qué pasada. Ya funciona perfectamente lo de la salida RTS directo a MCLR.

Gracias Sisco, eres un maestro.
Título: RE: Bootloader
Publicado por: Sispic en 11 de Agosto de 2004, 12:44:00
No el WinPic800 todabia no lo soporta , y otra cosa no olvides pasar RTS por el Max  ya que sobra pin .
Título: RE: Bootloader
Publicado por: Nocturno en 11 de Agosto de 2004, 12:52:00
Sí, me expresé mal. Lo he pasado a través del MAX232. Es más, le he puesto un diodo de protección para que no le lleguen 13V al max232 si grabo el PIC con el ICSP.
Me gusta
Título: RE: Bootloader
Publicado por: Nocturno en 13 de Agosto de 2004, 00:37:00
Escrito originalmente por Sispic
Pero nocturno , no me digas que estas dandole al pulsador reset cada vez de programar el pic .

Si es que usas este :
http://www.johnsrud.no/pic/index.php

Implantale RTS pin 7 del com a traves del max232 a MCLR del pic y te olvidas . Si este codigo no lo tiene implantado ya te lo mando modificado . Ademas se cierra solito si termina sin errores .


Sisco, he descubierto que haciendo esto, me graba perfectamente sin necesidad de pulsar reset, pero dejan de funcionarme las comunicaciones serie cuando ejecuto un programa (lo he publicado en el foro Microcursillo en C).

No encuentro explicación a que el micro se grabe perfectamente, puesto que mientras se está grabando la comunicación serie está funcionando, y sin embargo luego no funcione en tiempo de ejecución.

¿Alguna sugerencia?
Título: RE: Bootloader
Publicado por: Modulay en 13 de Agosto de 2004, 01:19:00
Prueba con el polímetro a ver que voltaje tienes en RTS antes,durante,y después de la grabación del pic con el downloader
A ver si así consigues sacar algo en claro
Título: RE: Bootloader
Publicado por: Sispic en 13 de Agosto de 2004, 12:46:00
Asegura lo que dice Modulay comprovando que no existe un nivel 0 a la patilla reset del pic despues de programarlo .

Por lo demas tiene que funcinar normalmente si el pic no queda con 0 en reset .
Otra cosa podria ser que tu programa decomunicaciones mande a 0 RTS al ejecutarse .

suerte.
Título: RE: Bootloader
Publicado por: Golden_Eagle en 13 de Agosto de 2004, 20:25:00
alguien a probado el bootloader descripto aqui??

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011788

Pasa que funciona cuando quiere, aveces comienza a descargar el codigo y queda colgado en la mitad de la transferencia... cosa q me desconcierta completamente, ya q usa handshaking por hardware, para asegurar q se transmita todo en tiempos adecuados.
pasa exactamente lo mismo simulandolo en proteus o en un prototipo real.
Título: RE: Bootloader
Publicado por: Nocturno en 14 de Agosto de 2004, 01:30:00
Ya he comprobado RTS con el polímetro.

Mientras está inactiva, mantiene -12V; cuando grabo con el PICDownloader, envía un pulso de 0V, que es el que provoca el reset correcto. Sin embargo, cuando abro el hyperterminal se pone a +12V. Supongo que el MAX232 se vuelve loco y envía un Reset al micro. ¿Tiene solución?

Golden_Eagle, no he probado ese bootloader. El que utilizo es este y funciona bastante bien, eso sí, todavía tengo que pulsar reset a mano.
Título: RE: Bootloader
Publicado por: Modulay en 14 de Agosto de 2004, 01:43:00
Esos 12V indican que RTS está a 0,así que tu pic está muuuyyy reseteado:
+12V  -> 0 lógico
-12V   -> 1 lógico
Si mides directamente en el pin MCLR lo verás.
Un saludo
Título: RE: Bootloader
Publicado por: Golden_Eagle en 14 de Agosto de 2004, 12:30:00
Gracias nocturno por tu respuesta.
Si no doy pie con bola en poco tiempo, voy a tenes q probar con otro bootloader.

Para resover tu problema del RTS, tal vez te sea util armar un cable NullModem y conectar 2 puertos com te tu pc. luego utilizando el COMPIM en proteus puedes darte una buena idea de como  se van alternando las distintas señales en el puerto.
Título: RE: Bootloader
Publicado por: Sispic en 14 de Agosto de 2004, 12:36:00
Si el Hiperterminal que usas no puedes configurar para que MCLR se mantenga a 1 , usa otro , los hay muy buenos por la red .
Título: RE: Bootloader
Publicado por: Nocturno en 25 de Agosto de 2004, 06:29:00
A veces me pasa que cuando grabo varias veces el programa con el bootloader a través del puerto serie, falla y ya no graba más. Para que vuelva a funcionar tengo que grabar de nuevo el bootloader sobre el micro utilizando WinPic y programación ICSP.

Supongo que estoy machacando con mi programa las posiciones de memoria que ocupa el bootloader, pero no sé cómo reservar memoria en C para que no me ocurra.

Lo que me extraña es que sólo me pasa a veces, siendo el mismo programa el que intento grabar.