还是来说ATmege328p芯片干系的,都是arduino把它带火的。先看一个例子,在硬件上,如果想自己做一块arduino板或者想将ATmege328p嵌入到其它PCB项目里,在软件上,直策应用arduino ide 肯定是做好的选择了,开源的库很多嘛。那么问题来了,才买回来的ATmege328p最小系统,你是不能直策应用arduino ide 来烧写arduino程序的,那怎么才能烧写进去呢?这便是这个教程要办理的问题了。
Arduino Bootloader的浸染bootloader一样平常情形下微处理器写入程序时都通过专门的编程器进行烧写,但是也可以通过在MCU中预先写入一些程序来实现某些基本功能,这些预先写入的程序代码便是bootloader。这样每次复位时MCU就不是从程序存储器起始位置开始读取命令,而是先加载bootloader,实现一些设置和功能,再开始实行代码。 arduino通过预先写入的bootloader,每次通过串口给arduino板下载程序时,首先会令arduino板复位一次,这样就前辈入了bootloader,接着向arduino板发送特定的下载指令,bootloader识别到这些指令后就会紧接着开始吸收剩下的新的程序代码写入到内部flash中,如果没有进行下载,bootloader没有识别到下载指令,那么它就会跳转到程序区正常事情。简而言之,Arduino上的bootloader便是能让你用一根usb线就可以愉快下载程序的缘故原由所在。
烧写bootloader实质上只是利用编程器烧写一段分外的程序到单片机中,因此其方法与利用编程器烧写程序是一样的,avr芯片来说,烧写程序是通过ICSP(in-circuit serial programmming)硬件接口来实现的 。

ICSP接口有6个引脚,分别是:
SPI接口 MISO、 MOSI、 SCK电源 VCC、 GND复位 Reset对付arduino来说,管脚的对应关系是这样的:
MISO<------->12MOSI<------->11SCK <------->13硬件连线为了阐述的方便,我们把arduino板子称为ISP板,把ATmege328p最小系统板为目标板。
软件烧写步骤
在这里,我们直策应用arduino ide 来烧写。
按照前面的办法连接好ISP板和目标板后,将ISP板连接到电脑上。
1.打开arduino IDE的Tools -> Programmer下显示了所有支持的编程器列表,这里利用Arduino as ISP办法。
Arduino as ISP大略来说便是用另一块arduino板,给它用普通办法下载一段 专门的程序,将其变为一个ISP下载器,再将其相应引脚与待烧写bootloader的板子相连,再通过arduino IDE来掌握进行bootloader烧写。
2.打开IDE,Files -> Examples -> ArduinoISP -> ArduinoISP,利用这个程序下载到ISP板子中。
3.打开IDE,然后点击Tools -> Boards选择目标板的类型。然后在Tools -> Programmer中选择Arduino as ISP,末了点击Tools -> 烧录勾引程序,此时会开始进行烧写,须要耐心等待一会就成功了。
测试是否对目标板烧写成功bootloader
利用arduino ide 直接对目标板烧写随便一个arduino程序,成功烧写,对目标板烧写bootloader成功。
这种办法该当是最大略的了,不过对付AVR单片机还有很多的方法,后续我会陆续的先容怎么利用USPASP或者USBISP来直接配置熔丝位,来自己烧写一个特定的bootloader,这个就更通用了。
喜好我文章的朋友,欢迎关注、点赞、评论、互换。版权个人所有,转载请注明出处。