需要用到USBtiny下载器和下载工具,USBtiny下载器如下所示:
下载工具在如下链接:https://download.csdn.net/download/weixin_36815313/11245570
第一步:烧录16U2固件
16U2固件推荐选用Arduino\avr\firmwares\atmegaxxu2\arduino-usbserial\Arduino-usbserial-atmega16u2-Uno-Rev3.hex
否则用Arduino\hardware\arduino\avr\firmwares\atmegaxxu2\Genuino-COMBINED-dfu-usbserial-atmega16u2-Uno-R3.hex
的话会在设备管理器会显示Gunuino UNO的标识,而非Arduino UNO的关键字样。
1.1下载解压烧录软件,之后打开avrdudess.exe软件
1.2选择烧录方式为USBtiny simple…
1.3接线,下载器一端接在电脑端,另一端通过牛角座连接在Arduino主控板上下载串口芯片程序的位置。
1.4点击“Detect”会自动检测到当前所接芯片,我接的是ATmega16U2通信芯片。
1.5之后选择固件
1.6固件地址如下
1.7之后直接点击“GO”即可,烧录成功后在终端会有相应提示
第二步:更改熔丝位配置地址
此地址可从Arduino\hardware\arduino\avr\boards.txt
中查到,例如板子为UNO,则查询
“uno.bootloader.low_fuses=0xFF”
,
“uno.bootloader.high_fuses=0xDE”
,
“uno.bootloader.extended_fuses=0xFD”
之后配置熔丝位位置。
2.1更改熔丝位配置,先读取熔丝位。
2.2之后改成如下图所示地址,然后点击“Write”,等待成功即可。
第三步:烧录引导程序BootLoader
可利用IDE直接烧录,简单,方便且有效。
3.1更改接线位置,将下载器线接在Arduino主控板上,给主控芯片ATmega328P下载程序的接线口位置。
3.2打开Arduino IDE,更改烧录器为USBtinyISP
3.3之后直接选择“烧录引导程序”即可。
附:Arduino 官方板子提取出来熔丝位位置数据:ATmega16U2为L = 0xEF,H = 0xD9,E = 0xF4
。ATmega328P为L = 0xFF,H = 0xD6,E = 0x05。
我所烧录的熔丝位位置数据(从电脑软件中提取出来的):ATmega16U2为L = 0xFF,H = 0xDE,E = 0xFD
。
备注:本人在烧录时,只进行了我前文提到的三步,之后板子便可正常运行了,有不同意见的欢迎留言讨论。
File: optiboot/optiboot_atmega328.hex
C:\Program Files (x86)\Arduino\hardware\arduino\avr\firmwares\atmegaxxu2\Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex