每天都有新人加入DIY阵营,但同时每天都有新人问固件怎么烧录?
新人就算了,特别是一些老人也总是烧录失败,这就迫切需求一个详尽简单的烧录教程。
所以这次的教程是,百分百被空手……不,单片机百分百被烧录成功器!
一、程序烧录原理
古人云:知己知彼,方能百战百胜。
想要真正达到百分百烧录成功,一定是深入明白烧录原理的人。
有人留言说买一个自动烧录器就行了,实际上楼主是不推荐的,因为所谓自动烧录器不过是自动断电,和你自己手动插拔一下供电线是一样道理,并不能真正解决问题。
使用USB转串口烧录固件,本质上说,串口并没有直接对单片机内部FLASH编程的能力,串口只是起到一个电脑和单片机握手通信作用的传话筒,真正实现编程的另有其人:
单片机中的内鬼:引导程序BootLoader
你以为单片机里面只有一个电调程序,实际上单片机早就“精神分裂”,里面出厂就固化了一个引导程序,每次上电,都是这个引导程序先运行,然后再运行用户程序。烧录固件的功能也是这个引导程序实现的。
简单的说,一个完整的固件烧录流程是这样的:
1、电脑端烧录软件不断发出“有人吗?收到请回复……有人吗?收到请回复……”;
电脑端显示:正在检测目标单片机...
2、单片机上电,引导程序运行,持续监测RX引脚0.3秒钟,;
3、引导程序检测到命令,回复“OK,发固件过来吧”;
电脑端显示:单片机型号xxxx...
4、电脑发送“巴拉巴拉¥#@#&*@%¥#¥…………”;
电脑端显示:正在下载用户代码...
5、引导程序回复“烧录完成”;
电脑端显示:操作成功!
6、引导程序结束,运行用户程序。
而一个失败的固件烧录流程是这样的:
1、电脑端烧录软件不断发出“有人吗?收到请回复……有人吗?收到请回复……”;
电脑端显示:正在检测目标单片机...
2、单片机上电,引导程序运行,持续监测RX引脚0.3秒钟,;
3、0.3秒后,某些原因导致没有检测到数据,引导程序自己结束,运行用户程序。
所以明白了吗,固件能不能烧录,在你为单片机接通电源的那一瞬间零点几秒内就已经决定了!
如果单片机上电一秒后电脑上还没有显示开始烧录固件,还是“正在检测”,不用再眼巴巴的等了,已经失败了,查找原因重新来吧!
留一个思考题,什么原因会使烧录过程出错失败?
二、百分百成功的最小系统烧录法
实际上,不管什么自动下载器都不能保证百分百烧录成功,因为单片机的外围电路是会影响烧录的。
举个最简单的例子,如果单片机的TX、RX引脚接了其他元器件或短路接地了,那就永远不可能烧录成功了,除非断开外围电路。
所以,对于初次接触单片机烧录或烧录困难症患者们,应该把单片机取下来单独烧录,减小烧录难度。
新手准备:在你第一次学习烧录单片机之前,需要准备三样东西
1、USB转串口模块
2、串口模块的电脑驱动
本站所有下载访问密码都是:www.l77l.com
3、电脑端烧录软件
本站所有下载访问密码都是:www.l77l.com
一套通用的单片机烧录法:
1、查单片机型号、找出烧录引脚:
STC下载软件内置有所有单片机引脚图,以单片机【型号STC15W104 DIP8封装】为例,打开软件查看
2、制作最小系统烧录座:
STC15W开头、STC8开头的单片机,不需要外部晶振,一个单片机就是最小系统;
STC12开头、STC11开头的单片机,需要焊接外部晶振才能下载。
3、电脑端打开软件烧录。
评论