Red de conocimiento informático - Material del sitio web - Cómo grabar el gestor de arranque arduino

Cómo grabar el gestor de arranque arduino

Para restaurar la función de Arduino, debe reprogramar el gestor de arranque en el microcontrolador ATMega328P (de hecho, Arduino preestablece un programa de gestor de arranque en el microcontrolador AVR, por lo que cuando se combina con el entorno de desarrollo Arduino, se convierte en el llamado Arduino, pero la palabra Arduino en sí está reservada sólo para uso oficial). Por supuesto, también puedes comprar microcontroladores AVR preprogramados en Taobao, pero ya tienes un microcontrolador AVR, por lo que no hay necesidad de gastar ese dinero desperdiciado.

Así que inmediatamente abrí el omnipotente Baidu e ingresé la palabra clave "Arduino bootloader". Efectivamente, surgieron muchas preguntas confusas relacionadas después de una ronda de selección, y descubrí que muchas de ellas no eran muy buenas. claro, pero tengo una idea aproximada: un microcontrolador AVR común y corriente puede programar un gestor de arranque y usarlo como Arduino. Entonces la pregunta es, ¿cómo grabar el gestor de arranque en el microcontrolador AVR? De hecho, esto es un problema, de todos modos, es un problema para mí que no entiendo el desarrollo de AVR. Afortunadamente, compré un descargador USBASP en Taobao antes. Al igual que antes de borrar el gestor de arranque, también necesito usar el software progisp (porque el ATMega328P en este momento es solo un microcontrolador AVR común y no se puede programar con el software de desarrollo Arduino). .

Dado que necesitamos grabar el gestor de arranque, ¿qué es un gestor de arranque? Como puedes imaginar, el gestor de arranque es, por supuesto, un programa. Dado que se va a grabar en el microcontrolador, debería ser un archivo como .HEX. ¿Pero de dónde viene el archivo del gestor de arranque? Continúe hasta Baidu. . . Lo encontré en hardware\arduino en el directorio de instalación del software Arduino. El archivo "boards.txt" en esta carpeta es muy importante y los demás se pueden encontrar en Baidu, pero debido a que este archivo me tomó la mayor parte de la noche, no hay una explicación clara sobre Baidu. Abra el archivo y busque su versión de Arduino correspondiente. Debido a que la mía es "Arduino Uno", bloqueo las instrucciones en el área "uno.name = Arduino Uno". Debido a que parece desordenado, asegúrese de leerlo con atención. Busque "uno.bootloader.low_fuses=0xff", que significa que el bit bajo del fusible de programación es FF, "uno.bootloader.high_fuses=0xde" significa que el bit alto del fusible de programación es DE y "uno.bootloader. extended_fuses=0x05" significa que el bit extendido es 05. Estos tres valores son muy importantes y son la clave para determinar su éxito al grabar el gestor de arranque. En cuanto al significado específico de estos tres valores, no lo tengo muy claro, pero el bit del fusible debe configurarse al quemar el microcontrolador AVR y no se puede configurar al azar. Esta es también la diferencia entre el AVR y el microcontrolador 51.

Utilice el software progisp para escribir los valores de estos tres bits de fusible en el microcontrolador AVR, luego continúe explorando el archivo "boards.txt" y busque hacia abajo para encontrar "uno.bootloader.path=optiboot" Es decir, el archivo del gestor de arranque que se va a grabar está en la carpeta bootloaders\option y el nombre del archivo "uno.bootloader.file=optiboot_atmega328.hex" es optiboot_atmega328.hex. Este es el programa que se debe grabar. A continuación, el microcontrolador AVR. Utilice el software progisp para cargar este archivo y luego escríbalo directamente en el microcontrolador AVR. Un AVR compatible con Arduino está listo. . .

De hecho, este problema en sí no es difícil, pero para las personas que nunca han estado expuestas al AVR, todavía lleva mucho tiempo y hay muchos problemas diversos en el proceso. En cuanto a cómo usar progisp, es muy simple. Hay muchos tutoriales en Baidu y debes tener un descargador que pueda grabar microcontroladores AVR. Simplemente ignoré los valores de los tres bits de fusible en ese momento, así que lo intenté una y otra vez sin éxito. Baidu no proporcionó una explicación detallada del archivo "boards.txt". El programa se puede grabar normalmente sin configurar el bit del fusible, pero no se puede utilizar con Arduino, por lo que debes seguir las instrucciones proporcionadas en el sitio web oficial. Pasé la mayor parte de mi tiempo en dos temas. Uno fue la ubicación específica del archivo .HEX. Debido a que hay diferentes versiones de Arduino, los archivos .HEX también son diferentes y el otro fue el bit de fusible.