atmega168P烧写bootloader
烧写bootloader的方法大体分为两种:
1.使用Arduino IDE烧写bootloader
2.使用USBasp烧写
方法一:使用Arduino IDE烧写
中文教程
我们可以使用另一块Arduino,下载烧录器固件代码,然后连接需要烧写bootloader的单片机芯片进行烧写。
1.硬件连接
图中标记的是Arduino UNO上的ICSP,引脚定义为:
将第一块Arduino的MISO、MOSI、SCK连接至待烧写的单片机芯片的MISO、MOSI、SCK,同时将两者的5V、GND连接在一起,将第一块Arduino板的 pin 10 引脚连接至芯片的RESET引脚
第一块Arduino板 | 待烧写bootloader的单片机芯片 |
---|---|
VDD/5V | VDD/5V |
GND | GND |
MISO | MISO |
MOSI | MOSI |
SCK | SCK |
PIN 10 | RESET |
如图所示:
2.使用Arduino IDE进行烧写
1.将第一块Arduino连接至电脑,点击文件-->示例-->ArduinoISP-->ArduinoISP
2.选择正确的开发板信息,上传程序:
3.工具-->编程器:-->"Arduino as ISP"
4.选择待烧录芯片的开发板信息:
(PS:这里是选择待烧录bootloader的芯片的开发板信息而不是第一块Arduino的开发板信息,如果你的芯片是atmega328,arduino板为mega2560,则要选择的是atmega328)
5.点击工具-->烧录引导程序
,等待完成即可
6.编写自己的程序后,点击项目-->使用编程器上传
即可将程序上传到芯片
方法二:使用USBasp烧写bootloader
1.购买USBasp编程器
2.下载progisp.exe软件
下载链接:https://pan.baidu.com/s/1HYUu9dytKVLp0Ynk5LoflA 密码:h3yp
选择芯片型号
点击“调入Flash",选择bootloader文件,以我的Adruino IDE安装路径为例D:\Arduino\hardware\arduino\avr\bootloaders\atmega\ATmegaBOOT_168_ng.hex
点击"自动"即可。
我买了一块atmega168P(特征码为:1E:94:06),使用方法一烧录bootloader时发现,Arduino IDE默认的编程器只有atmega168(特征码为:1E:94:0B),查了一些方法,可以修改IDE文件将atmega168的特征码修改为atmega168P的特征码,但还是错误
随即买了一块AVR USBasp下载器,使用USBasp下载bootloader成功后,依然无法通过Arduino IDE下载程序,但是可以使用USBasp的"调入Flash",将.HEX
格式的程序文件下载至atmega168P,所以可以暂时先用这种方法烧写程序
利用Arduino IDE生成.HEX
格式的程序
可以在Arduino IDE中编写好程序,保存成.HEX
格式文件用以USBasp下载器写入,具体方法如下:
1: 在arduino工具的文件-->首选项
中找到preferences.txt文件。
2:用记事本打开preferences.txt,选择hex文件存放的路径,在最后一行加入 build.path=d:\arduino\MyHexDir(路径可更改)
3:关闭arduino。
4:关闭preferences.txt ,关闭时对话框显示是否保存,选择保存。
(转自:http://blog.chinaunix.net/uid-23381466-id-4149304.html)
上述操作完成后,每次编译或上传都会在d:\arduino\MyHexDir
路径中生成.HEX
文件,但是当下一次程序编译或上传后生成的.HEX
文件会完全替换掉上一次保存的.HEX
格式文件,一定要注意!