¿Cómo grabar el gestor de arranque de Arduino?
Para restaurar la funcionalidad del Arduino, debes reprogramar el gestor de arranque en el microcontrolador ATMega328P (de hecho, Arduino viene preinstalado con el gestor de arranque en el microcontrolador AVR, por lo que con el desarrollo de Arduino El entorno se llama Arduino, pero el término Arduino en sí está reservado sólo para uso oficial). (El término Arduino está reservado únicamente para uso oficial). Por supuesto, también puedes comprar un microcontrolador AVR preinstalado en Taobao, pero si ya tienes un microcontrolador AVR, 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 aun así me dejó entender una idea aproximada: un AVR normal. Sin embargo, esto también me dio una idea aproximada: un microcontrolador AVR normal se puede utilizar como Arduino después de quemar el gestor de arranque. Entonces la pregunta es, ¿cómo grabar el gestor de arranque en el microcontrolador AVR? Para mí, que no entiendo el desarrollo de AVR, esto es realmente un problema. Pero afortunadamente, antes compré un descargador USBASP en Taobao. Al igual que antes de borrar el gestor de arranque, tuve que usar el software progisp (porque en este momento el ATMega328P es solo un microcontrolador AVR normal y no se puede desarrollar con el software Arduino grabado).
Ya que quieres grabar un gestor de arranque, ¿qué es un gestor de arranque? Como puedes imaginar, el gestor de arranque es, por supuesto, un programa y, dado que se grabará en el microcontrolador, debería ser un archivo .HEX o similar. ¿Pero de dónde vienen los archivos del gestor de arranque? Sigue buscando. Lo encontré en el directorio de instalación del software Arduino en hardware\arduino. El archivo "boards.txt" en esta carpeta es muy importante, sí, es muy importante. Probablemente se puedan encontrar otros en Baidu, pero debido a este archivo pasé la mayor parte de la noche y no hay una explicación clara sobre Baidu. Abra el archivo y busque su versión de Arduino correspondiente. Como la mía es "Arduino Uno", bloqueé la descripción del área "uno.name=Arduino Uno" porque parece desordenada, asegúrese de leerla con atención. Descubrí que "uno.bootloader.low_fuses=0xff" significa que el nivel bajo del fusible de programación es FF, "uno.bootloader.high_fuses=0xde" significa que el nivel alto del fusible de programación es DE y "uno.bootloader .low_fuses=0xde" significa que el fusible de programación es DE. El nivel alto del fusible es DE, "uno.uno.name=Arduino Uno" significa que el nivel bajo del fusible de programación es FF. "uno.bootloader.extended_fuses=0x05" significa que el bit extendido es 05. Estos tres valores son muy importantes para el éxito de la grabación del gestor de arranque. En cuanto al significado específico de estos tres valores, no lo tengo muy claro, pero el microcontrolador AVR necesita configurar el bit de fusible al programar, y no se puede configurar al azar. Esta es también la diferencia entre el microcontrolador AVR y 51.
Utilice el software progisp para escribir los valores de los tres bits de fusible en el microcontrolador AVR, luego continúe explorando el archivo "boards.txt" y busque "uno.bootloade" .path="optiboot " Es decir, grabe el archivo del cargador de arranque en la carpeta bootloaders\option, "uno.bootloader.file=optiboot_atmega328.hex". El nombre del archivo es optiboot_atmega328.hex. Este es el programa que debe grabarse en el microcontrolador AVR.
Utilice el software progisp para cargar este archivo y luego escríbalo directamente en el microcontrolador AVR. Se completa un programa que admite Arduino AVR....
De hecho, este problema en sí no es difícil, pero para las personas que no han estado expuestas al AVR, todavía lleva mucho tiempo y hay muchos problemas en el proceso. En cuanto a usar progisp, es muy simple. Hay muchos tutoriales en Baidu y debes tener un descargador que pueda programar microcontroladores AVR. Ignoré los valores de los tres bits de fusible en ese momento, por lo que fallé una y otra vez y no hubo una explicación detallada del archivo "boards.txt" en Baidu. El programa se puede grabar sin colocar un fusible, pero no se puede utilizar con Arduino. Sólo puedes seguir las instrucciones del sitio web oficial. Pasé la mayor parte de mi tiempo en dos cuestiones, una era la ubicación exacta del archivo .HEX, ya que hay diferentes versiones de Arduino, por lo que los archivos .HEX son diferentes, y la otra era la ubicación de los fusibles.