使用Arduino UNO烧录ATMETA16U2

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值