AVR系列单片机ATmega2560(Arduino)Bootloader烧录指南
Arduino系列单片机的开发与应用可以说是相当方便,Arduino IDE也是相当简洁明了,目前甚至有些STM32单片机也能用Arduino IDE开发,不过我觉得Arduino官方出的那几款开发板可玩性其实还OK,只不过太贵了,不过好在Arduino开源,我们就可以很轻松的制作基于那几种主控的控制板。
然而,制作控制板,还是需要几个小小的步骤,尤其是需要让你的Arduino知道他自己是个Arduino
- Bootloader烧录工具列表
- Windows系统的电脑一台
- Progisp软件,推荐1.72版本
- Arduino IDE Version1.6.9及以上(更低版本有可能也能实现烧录)
- USBasp/USBisp等SPI通信的下载器一个(以及驱动程序)
- 待烧录的AVR单片机(芯片可以很多种,ATmega328P之类的都可以)
只焊接最小系统就可以烧录Bootloader了👆
烧录步骤①-连接/驱动准备
首先将购买的USBasp或者同类烧录器连接至电脑以及待烧录的单片机,此处值得注意的有:
- 待烧录的单片机应至少完成最小系统的焊接,否则单片机本身没处于能运行的状况,自然不能烧录成功
- 烧录器和单片机的接线,六根线序不要接错,尤其是电源线
USB口直插
Win电脑
USBasp
待烧录单片机
具体线序连接为:
USBasp烧录器 | 待烧录单片机 |
VCC | VCC |
GND | GND |
MOSI | MOSI |
MISO | MISO |
SCK | SCK |
RESET | RESET |
检查完成连接之后,在电脑上安装USBasp烧录器的驱动程序,驱动我已经上传,USBasp烧录器驱动程序链接,下载之后只需要右键安装.inf就可以安装成功。不过往往电脑会报错“无法验证数字签名”。
此时(以win10系统为例):设置–更新与安全–恢复–高级启动–立即重新启动–启动选项–禁用驱动程序强制签名,重启再安装就没问题了
上述步骤都搞定之后,就可以在设备管理器中找到正确显示的USBasp设备而不是"无法识别的设备"。
烧录步骤②-芯片识别&熔丝位设置
进入Progisp软件,这个软件可以用上一步骤中设置好驱动的USBasp读取单片机芯片的相关信息。
当然,此处要特别注意的就是,芯片的型号千万别选错了,不然还不知道为啥读取不了芯片ID呢…
至此,该软件的任务已经完成了一半,成功读取芯片的ID就证明了之前焊接的单片机芯片和外围的最小系统电路都是正确的,接下来就是熔丝位的设置。熔丝位可以通过Arduino安装文件中找到,分别是High-Fuse/Low-Fuse/Extend-Fuse三个熔丝位。
文件目录:安装Arduino IDE之后
安装位置——hardware——arduino——avr——board.txt
找到对应的单片机型号之后,里面就可看到三个熔丝位的信息,之后将这三个熔丝位的值分别填入Progisp软件之中,烧写熔丝位,就完成了!
友情提示
如果熔丝位烧录错了,会造成一些难以想象的后果,比如说你的单片机芯片“甚至都无法被Progisp软件读取"
这时候也千万不要慌张,因为熔丝位中有的部分就是可以用来控制单片机的时钟,如果因为烧录错了熔丝位导致单片机下线,可以用别的单片机或者波形发生器导出对应频率的信号,直接连接到烧录错熔丝位的芯片上,有一定概率能救活。
烧录步骤③-IDE烧录
这一步相当重要,之前虽然完成了熔丝位的烧录,但是单片机还是不知道自己能运行Arduino IDE的程序,所以需要通过Arduino IDE灌入对应的Bootloader。
- 首先选择需要下载Bootloader的开发板型号,也就是找对应单片机芯片型号的Arduino主板名,比如说ATmega328P就对应了Arduino UNO
- 选择对应的下载器(USB烧录器)
- 点击烧录引导程序,完成后会显示四行红色的烧录失败,但是事实上就已经成功了,因为USBasp不是Arduino官方的下载器。
至此,整个烧写步骤全部完成,之后就可以通过IDE编写程序运行了