(redirected from Main.Bootloader)
Learning Examples | Foundations | Hacking | Links
Vea esta página para una explicación mas completa de que es un gestor de arranque y por que necesitamos usar uno.
Si quieres utilizar el total de la memoria disponible para tus programas o evitar el retraso que se produce al encender la placa puedes utilizar cargar tus sketches utilizando un programador externo.
Para grabar un gestor de arranque necesitaras comprar un AVR-ISP ( programador "in-system" ), USBtinyISP o construir un programador paralelo. El programador se puede conectar la los pines ICSP ( las 2 filas de 3 pines ) - Asegurate de de conectarlo de la forma correcta. La placa debe ser alimentada por una fuente de energía externa o directamente por un cable USB.
También debes asegurarte de tener correctamente seleccionada la opción correcta en el menú Tools | Board. Por último solo hay que lanzar el comando apropiado desde el menú Tools > Burn Bootloader del Arduino IDE. Grabar un gestor de arranque puede durar 15 segundos o más, así que se paciente.
Aquí están las instrucciones para grabar el gestor de arranque, gracias a Gian Pablo Vilamil.
Windows XP puede causar problemas en el puerto paralelo e interrumpir el proceso de grabación del gestor de arranque. Necesitas este parche:
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Parport\Parameters] "DisableWarmPoll"=dword:00000001
Mira en este hilo del foro para mas detalles.
Hay diferentes versiones del gestor de arranque para trabajar sobre dispositivos diferentes o por que han cambiado a lo largo del tiempo.
Los gestores de arranque actuales ( p. e. el incluido en la versión Arduino 0009) son prácticamente idénticos para la Diecimila y la NG (con ATmega168). Ambos corren a 19200 baudios y ocupan unos 2 KB de memoria flash en el ATmega168. La única diferencia está en el tiempo que el gestor de arranque espera para que un nuevo programa llegue y el numero de destellos que emite el LED del pin 13 cuando arranca. Por que en el reseto automático de la Diecimila este gestor de arranque emplea muy poco tiempo de espera, menos de un segundo, y para ahorrar tiempo el LED del pin 13 solo destella una vez. El gestor de arranque de la NG espera de 6 a 8 segundos y el LED del pin 13 destella 3 veces.
El gestor de arranque que actualmente carga la Arduino NG es ligeramente diferente. Este activa la resistencia interna pull-up en el pin RX. Tampoco espera después de recibir datos no validos, así que si le envías datos inmediatamente después de que se resetee tu sketch nunca se ejecutará.
El gestor de arranque del Arduino BT hace una configuración inicial del módulo bluetooth.
El gestor de arranque del ATmega8 sólo ocupa 1 KB de memoria flash. Este tampoco espera después de recibir datos no validos, necesitas estar seguro de que no le envías nada durante los 6 u 8 segundos que tarda en ejecutarse.
Algunas versiones antiguas del gestor de arranque funcionan a 9600 baudios (en lugar de 19200). Para asegurarnos el éxito a la hora de cargar sketches con este gestor de arranque necesitamos cambiar el valor del parámetro serial.download_rate en el archivo preferencias a 9600.
Terceras partes han hecho modificaciones en el gestor de arranque. Esta página contiene enlaces a algunos de ellos.
Los comandos "Burn Bootloader" en el entorno Arduino utilizan una herramienta open-source, avrdude. Hay cuatro pasos: desbloquear la sección del gestor de arranque en el chip, fijar los fusibles en el chip, subir el código del gestor de arranque al chip y bloquear la sección del gestor de arranque en el chip. Esto está controlado por determinados parámetros del archivo de preferencias.
Para el gestor de arranque del ATmega8 son:
Para el ATmega168, estos son (donde <BOARD> es según corresponda "diecimila" o "ng"):
El código fuente del gestor de arranque.