Como utilizar bootloader en AT90CAN128 o AT90USB128?

Hola a todos,

Alguien puede darme unas ideas basicas de que como funciona el bootloader o bien donde puedo leer algo sobre el tema. Mi idea es poder actualizar el programa que esta cargado en la flash del AT90 sin tener que usar el programador ISP. Quisiera enviar el fichero .hex por el puerto serie del micro, despues grabarlo en la flash o bien en la eeprom y luego sobreescribir el propio programa, tengo entendido que la unica forma de hacerlo es con el bootloader, pero no tengo ni idea de como hacerlo, alguien me puede iluminar un poco.

Llevo pocos meses programando el AT90 por lo que mi conocimiento es limitado, gracias de antemano.

Saludos.
 
Hola: No soy un experto en esto, pero puedo darte alguna idea, en la página 17 del documento doc7618.pdf (de Atmel) dice:
7. Using the USB bootloader for In System Programming​
Flip software is the PC side application used to communicate with the USB bootloader (Flip is
available for free on the Atmel website).
For detailed instructions about using Flip and USB bootloader, please refer to AVR282: “USB​
Firmware Upgrade for AT90USB” (doc 7769).
O sea, como ves debes usar el programa FLIP (sin cargo) de Atmel, este te permite comunicarte con los micros que vienen con BootLoader incluidos de fábrica.
Saludos
 
Muchas gracias por la informacion, pero ese programa ya lo uso para actualizar el firmware del AT90USB, lo que quiero hacer es no utilizar ningun programa externo sino que el propio firmware del AT90 reciba la actualizacion por su puerto serie en el caso del AT90CAN y que el solito se actualice, se que se puede hacer con el bootloader, pero no se como. Intento buscar algunas lineas de codigo que me aclaren su funcionamiento. En el documento: http://www.atmel.com/dyn/resources/prod_documents/doc4250.pdf habla del tema pero la verdad es que sin codigo no me entero mucho, tambien puede ser que llevo poco tiempo con el tema y seguro que mas adelante y con mas experiencia tendre la solucion.

Muchas gracias,
Saludos
 
Última edición:
Si no estás mal de inglés, en el foro AVRFreaks.net encontrarás muchas soluciones. Hay un protocolo escrito al respecto, y el AVRStudio (si no me falla la memoria) lleva un cargador de bootloader por el puerto serie, siempre y cuando el bootloader cargado sea el que está definido en este documento.

También puedes buscar 'buttloader' con google, que es un bootloader ya escrito para muchos AVR, que ocupa poco, y que está en código abierto. Piensa que en cualquier caso, necesitarás un programa el en PC para pasar el archivo .hex por el puerto serie.

Bootloaders para los AVR hay a montones ya escritos. Incluso Atmel tiene uno open source para hacerlo a través del CAN mismo. Sólo hay que buscar y documentarse. Tarea que puede llevar bastante tiempo.

Básicamente, aunque nunca he llegado a usar bootloaders, estos son programas que se deben programar en algún momento con programadores estándar (como el ISP) en todos los AVR a excepción de los USB, que lo llevan ya preprogramado. Este programa lo que hace es cuando arranca el micro, comprueba si hay comunicación o no, saltando al programa cargado en el segundo caso, o empezando a recibir en el primero. La condición esta depende del bootloader cargado.

Una vez arrancado el bootloader en condiciones de programar, éste espera los datos a través de algún canal de comunicación (habitualmente, el puerto serie, pero USB y CAN no son nada raros), y luego los programa usando ciertos comandos en ensamblador que sólo pueden ser usados bajo ciertas condiciones, y que permiten escribir y borrar la Flash de programa (la EEPROM se puede borrar siempre desde cualquier aplicación). Estos bootloaders suelen llevar vectores de interrupción diferentes, igual que se suelen grabar en partes particulares de la Flash, para evitar que al programar el nuevo firm se borren.

Por cierto, busca Arduino, que se basa en bootloaders para evitar que los usuarios tengan que comprarse programadores, aunque por 30€ tienes un AVRISP, y por 70€ un Dragon. Claro que hay circunstancias (como la accesibilidad) en las que no se pueden usar, y que hacen del bootloader la única opción.

Suerte.
 
Atrás
Arriba