使用Arduino UNO烧录ATMETA16U2

该博客详细记录了如何利用ArduinoUNO作为烧录器,通过命令行工具avrdude更新ArduinoDUE上ATMEGA16U2的固件。步骤包括制作ArduinoISP、准备avrdude命令、连接ISP线及执行烧录命令。此过程涉及串口通信、AVR芯片烧录和Arduino开发。

0. 前言

因某种原因需要更新我的Arduino DUE上面的USB转串口的芯片ATMEGA16U2里的固件,

找了很多资料,下面是操作步骤,记录一下,方便后续查找:

 

1. 用Arduino UNO制作一个烧录器

准备一块Arduino UNO的正常主板,用ArduinoIDE烧录一个示例程序:ArduinoISP

这块Arduino UNO主板就变成了一个AVR烧录器(ArduinoISP)了。

 

2. 准备命令行烧录工具

在ArduinoIDE的安装目录下找到avrdude程序,如:

C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe

命令行使用这个程序就能用(第1步制作好的)ArduinoISP烧录器来烧录avr芯片了。

 

3. 将烧录器和目标CPU的ISP线连好

ArduinoISP(UNO主板)

目标板(ATMEGA16U2)

10

RESET

11

MOSI

12

MISO

13

SCK

5V

5V

GND

GND

 

4. 执行命令行烧录

avrdude.exe -C ..\etc\avrdude.conf -v -patmega16u2 -cstk500v1 -PCOM15 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xF4:m -Uhfuse:w:0xD9:m -Ulfuse:w:0xFF:m
avrdude.exe -C ..\etc\avrdude.conf -v -patmega16u2 -cstk500v1 -PCOM15 -b19200 -Uflash:w:C:\Users\xxx\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.12\firmwares\atmega16u2\Arduino-DUE-usbserial-prod-firmware-2013-02-05.hex:i -Ulock:w:0x3F:m

稍微解释一下命令行参数:

-C后面是配置文件,arduino环境安装后自带一个,直接用就行。

-v 打开详细日志显示

-p 目标芯片型号

-c 烧录器型号,使用ArduinoUNO制作的ArduinoISP的型号就是stk500v1

-P 烧录器的串口号

-b 烧录器串口波特率

-e 整片全部擦除

-U 存储器操作指令

efuse:Extended Fuse Byte

hfuse:Fuse High Byte

lfuse:Fuse Low Byte

lock:Lock Bit Byte

flash:内部flash

 

5. 参考

https://blog.youkuaiyun.com/menglongfc/article/details/78853961

https://blog.youkuaiyun.com/weixin_36815313/article/details/90686150

 

烧录Arduino16U2芯片,可以按照以下步骤进行操作: 1. 准备一块正常的Arduino UNO主板,并使用Arduino IDE烧录一个示例程序:ArduinoISP。 2. 下载并解压avrdudess.exe软件,打开该软件。 3. 在avrdudess.exe软件中选择烧录方式为USBtiny simple。 4. 连接下载器,将一端接到电脑上,另一端通过牛角座连接到Arduino主控板上的下载串口芯片位置。 5. 点击“Detect”按钮,软件会自动检测当前所接的芯片,确保检测到的是ATmega16U2通信芯片。 6. 选择固件文件,固件地址可以选择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。 7. 点击“GO”按钮,开始烧录烧录成功后会在终端上显示相应的提示信息。 另外,也可以通过命令行进行烧录操作。可以使用C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe命令行工具,并执行以下命令: ``` avrdude.exe -C ..\etc\avrdude.conf -v -patmega16u2 -cstk500v1 -PCOM15 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xF4:m -Uhfuse:w:0xD9:m -Ulfuse:w:0xFF:m avrdude.exe -C ..\etc\avrdude.conf -v -patmega16u2 -cstk500v1 -PCOM15 -b19200 -Uflash:w:C:\Users\xxx\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.12\firmwares\atmega16u2\Arduino-DUE-usbserial-prod-firmware-2013-02-05.hex:i -Ulock:w:0x3F:m ``` 以上是烧录Arduino16U2芯片的步骤和命令。请根据实际情况选择适合的方法进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值