ATmege328p 芯片与 Arduino Bootloader:烧写程序的关键步骤

来烧写arduino程序的,那怎么才能烧写进去呢?ICSP接口有6个引脚,分别是:软件烧写步骤来烧写。IDE来控制进行bootloader烧写。直接对目标板烧写随便一个arduino程序,成功烧写,对目标板烧写bootloader成功。

先说一下ATmege328p这个芯片,它是被Arduino搞红的,举个例子,硬件方面,如果你想做一块Arduino板子,或者把ATmege328p嵌入到其他PCB项目中,直接使用Arduino IDE肯定是一个不错的选择,有很多开源库。那么问题来了,你不能用Arduino IDE直接把Arduino的程序烧录到刚买的ATmege328p最小系统中,怎么烧录呢?这就是本教程要解决的问题。

什么是 Arduino Bootloader?

一般在给微处理器写程序时,都是通过专门的编程器来烧写Bootloader的。不过一些基本的功能也可以通过在MCU中预先写一些程序来实现,这些预先写好的程序代码就是Bootloader。这样每次MCU复位的时候,它并不是从程序内存的开头读命令,而是先加载Bootloader,实现一些设置和功能,然后才开始执行代码。Arduino用的就是预先写好的Bootloader,每次通过串口给Arduino板下载程序的时候,都会先复位一次Arduino板,这样它就会先进入Bootloader,然后给Arduino板发送具体的下载指令,Bootloader识别到这些指令之后,就会立刻开始接收剩余的新程序代码,并写入内部Flash中。如果没有下载,Bootloader识别不到下载指令,那么就会跳转到程序区正常工作。总之,Arduino上的Bootloader就是你只用一根USB线就能开心地下载程序的原因。

准备在 Arduino 上进行 ICSP

烧写Bootloader本质上就是用编程器把专门的程序烧写到单片机里,所以方法和用编程器烧写程序是一样的。对于AVR芯片来说,烧写程序是通过ICSP(在线串行编程)硬件接口实现的。

ICSP接口有6个引脚,分别是:

对于Arduino来说,引脚的对应关系如下:

硬件连接

为了描述方便,我们将Arduino板称为ISP板,将ATmege328p最小系统板称为目标板。

ATmege328p 芯片与 Arduino Bootloader:烧写程序的关键步骤

软件烧录步骤

这里我们直接使用Arduino IDE来烧写。

按照上述步骤连接好ISP板和目标板后,将ISP板连接到计算机。

1. 打开 Arduino IDE,选择 Tools -> Programmer,查看所有支持的编程器列表。这里我们使用 Arduino 作为 ISP。

ATmege328p 芯片与 Arduino Bootloader:烧写程序的关键步骤

Arduino 作为 ISP 简单的说就是使用另一块 Arduino 板,按照常规方式下载专门的程序到上面,让它变成一个 ISP 下载器,然后把它对应的引脚连接到需要烧写 bootloader 的板上,然后通过 Arduino IDE 来控制 bootloader 的烧写。

2.打开IDE,Files -> Examples -> ArduinoISP -> ArduinoISP,使用此程序下载到ISP板。

ATmege328p 芯片与 Arduino Bootloader:烧写程序的关键步骤

ATmege328p 芯片与 Arduino Bootloader:烧写程序的关键步骤

3.打开IDE,然后点击Tools->Boards选择目标板类型,然后在Tools->Programmer中选择ISP为Arduino,最后点击Tools->Burn Bootloader,此时会开始烧写过程,需要耐心等待一段时间才能成功。

ATmege328p 芯片与 Arduino Bootloader:烧写程序的关键步骤

测试bootloader是否成功烧写到目标板

使用Arduino IDE直接烧录任意Arduino程序到目标板。烧录成功,并将bootloader成功烧录到目标板。

这个方法应该是最简单的,但是对于AVR单片机还有很多其他的方法,后面会介绍如何使用USPASP或者USBISP直接配置fuse位自己烧写特定的bootloader,通用性更强。

单片机

树莓派:小巧强悍的卡片式电脑,用途广泛价格美腻

2024-5-30 3:02:01

单片机

天赋异禀北极星小姐姐发色美炸!程潇也这么染

2024-5-30 4:01:51

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索