用Arduino板为另一块Arduino烧写(更新)BootLoader

手上有两块几年前买的arduino nano板子,这两天要用的时候发现用arduino IDE 1.8.11烧写的时候始终报错“上传失败”。查阅相关资料发现应该在 IDE–工具–处理器 中选择ATmega238P(Old Bootloader)即可上传成功。
这也侧面说明了我的板子的BootLoader已经旧了,不如顺便更新一下。
在这里插入图片描述

  • 烧写BootLoader至少需要两块arduino板,其中一个作为ISP下载器,另一个则是需要被烧写的板子(它们的型号可以不一样)
  • 本例将用两块arduino nano ATmega238P(Old Bootloader) 互相依次更新为最新的BootLoader

过程

1. 将ISP下载器的程序烧录进第一块arduino板(下文将其称为 ISP板):

打开 arduino IDE – 示例 – 11.ArduinoISP 示例文件,并上传(烧录)进arduino板中,因为两块板子都是old BootLoader,所以应注意此时选择的处理器应为“ATmega238P(Old Bootloader)”才能成功上传。
在这里插入图片描述


2. 将第二块arduino板(被烧录板)与ISP板相连:

本例中使用的arduino nano 的ISP接口是D10~D13口,分别是SS, MOSI, MISO, SCK
在这里插入图片描述
将ISP板与被烧录板的MOSI(D11), MISO(D12), SCK(D13), GND, 5V 引脚相接,将ISP板的SS(D10)引脚与被烧录板的RST引脚相接

ISP板被烧录板
MOSI(D11)MOSI(D11)
MISO(D12)MISO(D12)
SCK(D13)SCK(D13)
GNDGND
5V5V
SS(D10)RST

注:由于不同型号的arduino板在引脚复用时对应的引脚不一样,所以括号内的引脚名称仅适用于arduino nano 和arduino UNO。若要使用arduino mega2560 等其他型号的板子时,注意对应的ISP接口与引脚号的对应与此表括号内的引脚号是不同的。


3. 进行BootLoader烧写
在 IDE–工具–处理器 中选择ATmega238P,选择没有括号的那个,作为要烧写进去的版本
在这里插入图片描述
IDE–工具–编程器 中选择Arduino as ISP
在这里插入图片描述
点击“烧录引导程序”即可完成烧写。
在这里插入图片描述


至此第二块Arduino nano 板的BootLoader已经烧写(更新)为最新的了。而第一块nano板作为ISP下载器,其中的BootLoader并未更新。接下来对调两者的角色,再如法炮制即可。

需要注意的是,此时给第二块(已更新)的nano板烧录ISP程序时,在IDE–工具–处理器 中就应该选择 ATmega238P了,烧录好ISP程序后,然后再给第一块板烧录BootLoader。


常见报错

在烧录引导程序的时候有过这样的报错:
avrdude: ser_open(): can't open device "\\.\COM10": ϵͳ�Ҳ���ָ�����ļ���
错误原因是串口端口被占用,尝试关闭IDE或其他软件的串口监视器后重试。

还有报错:
avrdude: Expected signature for ATmega328P is 1E 95 0F. Double check chip, or use -F
或:
Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check.
在这里插入图片描述
解决方案:
在 IDE–文件–首选项 中把所有的调试信息(显示详细输出)打开,若显示Device signature = 0x000000Device signature = 0xffffff等情况,其实不是真的芯片签名有误,而是电路连接有问题,再次检查接线是否接对。


总结

总体思路是:

  1. 上传例程“11.ArduinoISP”,将其中一块Arduino作为ISP烧写器。
  2. 通过ISP引脚将两块板子相连。
  3. 选择BootLoader版本并上传。

值得注意的有两点:

  1. 我们会在步骤1和步骤3,两次涉及到在 IDE–工具–处理器 中选择处理器型号。其中步骤1中选择的是上传程序的那块板子(跟电脑用USB连接的那块)的处理器(BootLoader)型号。步骤3中选择的是要被烧写BootLoader的那块板子(用引线连接的那块)的处理器(BootLoader)型号。
  2. 这两块Arduino板的型号可以不一样,但要注意它们对应的ISP的引脚号也会不一样。不能单纯按照板子上印刷的引脚号相应连接,而应该找各个板子的PinMapping,找到对应的ISP的引脚。
ISP引脚nano和UNOmega2560
SSD10D53
MOSID11D51
MISOD12D50
SCKD13D52

觉得有用的话,不要吝惜评论点赞分享哦,希望大家多多包涵,有任何问题欢迎指正、讨论。
本文基于CC-BY-SA 4.0协议,欢迎转载
(博客看累了?去我的B站瞧一瞧?)

  • 16
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: Arduino烧写bootloader是指将Arduino开发板的bootloader程序烧录到芯片中,以便在使用Arduino IDE进行编程时,可以通过串口将程序上传到开发板中。这个过程需要使用专门的烧录器和相关软件来完成。烧写bootloader可以使开发板具备更多的功能和扩展性,例如支持更多的通信协议和外设。 ### 回答2: Arduino开发板通常都会安装预装有Arduino引导程序(bootloader),使得我们可以通过USB端口上传程序。但是有时候由于各种原因,Arduino开发板中的引导程序可能会被错误地擦除或丢失,这就需要重新烧写bootloader。 首先需要准备一个Arduino ISP,可以将一个Arduino作为编程器,将引导程序烧写到需要更新的开发板中。确保Arduino作为编程器的引脚和需要烧写引导程序的开发板引脚正确相连,可以根据开发板的型号和引脚图调整连接方式。 在Arduino IDE中选择开发板型号,确定端口后,打开“Arduino as ISP”例程并上传到Arduino编程器板,现在就可以将引导程序烧写到目标开发板中。按下RESET键后,再按下上传按钮即可烧写bootloader。 在Arduino IDE中的菜单栏中选择“工具”,再选择“引导程序烧写”,此时就可以看到不同型号的引导程序可以选择。选择对应的引导程序后,按下烧写按钮开始进行烧写操作。烧写过程中请勿断电或停止操作,否则可能会导致开发板损坏。 当烧写完成后,可以重新用USB传输线将开发板与电脑连接,并在Arduino IDE中选择正确的开发板和端口。现在就可以利用Arduino开发板进行编程了。 ### 回答3: Arduino烧写bootloader是一个重要的任务,在该过程中,我们需要下载和安装适当的工具。这篇文章将为大家介绍Arduino烧写bootloader的过程。 首先,我们需要一个工具来烧写bootloader。在Arduino工具箱中,有一个名为“Arduino as ISP”的工具,可以帮助我们完成这一任务。 步骤1:下载和安装Arduino as ISP工具。这个工具可以从Arduino的官方网站上下载。下载完成后,我们可以使用USB转TTL的串口转接板将Arduino板连接到电脑上。 步骤2:准备一块空板子。我们需要将待烧写bootloaderArduino板作为ISP连接到电脑上。将输入(TX)、输出(RX)、电源和地线连接到与ATmega芯片电路板相应的引脚上。同时,我们还需要将Arduino Uno与要烧写的板子连接起来。 步骤3:在Arduino IDE中打开程序。我们需要打开Arduino IDE,并选择要烧写bootloader程序。这个程序同样可以从Arduino的官方网站上下载。 步骤4:编译和上传程序。在Arduino IDE中,我们需要编译并上传bootloader程序。在上传过程中,Arduino IDE将会将程序上传到ISP中,并让ISP将程序烧写到我们的目标板子上。 步骤5:完成烧写过程。烧写后,我们可以通过Arduino IDE打开串口窗口来验证烧写的程序。同时,我们还可以通过检查程序是否与目标板子的芯片类型兼容来确认是否烧写成功。 Arduino烧写bootloader是一个比较简单的过程,但仍需要一些技术和经验。大家可以按照上述步骤,了解并掌握烧写bootloader的基本原理和过程,帮助自己更好地进行编辑和控制Arduino板子。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值