以下内容必须一字一句不差的认真阅读并实验,否则无助于解决问题。
使用USB下载线和STC-ISP下载软件的时候总会出现下载失败的问题,这次对我出现的下载失败现象和可能导致的原因给予总结。
-------------------------------------一、串口问题-------------------------------------
失败现象:
Chinese:正在尝试与 MCU/单片机 握手连接 ...
打开串口失败!
Chinese:串口已被其它程序打开或该串口不存在。
验证串口详见“使用系统、软件、手机/ComPort小软件验证串口发送接收”,如不能收到信息见下面的“解决方法:第5条。”
解决方法:
1,检查USB下载模块的连接是否正常,模块上的绿色和红色LED灯都亮起表示连接正常。绿色LED灯不亮表示USB驱动程序出现问题,可以拔下USB模块重插一次。红色LED灯不亮表示模块没有供电,或是USB模块后面的电源输出端(3.3V、+5V、GND)有短路。
2,在控制面板---》系统---》硬件管理器中找到“端口”---》CP2101串口,了解括号里的COM号。如果括号里显示COM4,那在STC-ISP软件里也要选择COM4才行。
STC-ISP软件:
3,有时由于STC-ISP软件不稳定也会导致找不到串口,重启软件、重插USB模块再试一下。
4,USB模块的驱动程序没有安装好,或者和其他端口驱动程序冲突,也会有找不到串口的情况。重新安装并重启电脑再试。
《USB下载模块的驱动安装》视频:http://www.eeskill.com/video/id/15110
5,更新PL2303或CH340/341驱动程序,在STC官网(http://www.stcmcu.com/)下载最新的STC ISP软件。
-------------------------------------二、原因较复杂-------------------------------------
失败现象:
Chinese:正在尝试与 MCU/单片机 握手连接 ...
(3秒钟后出现如下显示)
Chinese:连接失败,请尝试以下操作:
1.在单片机停电状态下,点下载按钮,再给单片机上电
2.停止下载,重新选择 RS-232 串口, 接好电缆
3.可能需要先将 P1.0/P1.1 短接到地
4.可能外部时钟未接
5.因 PLCC、PQFP 转换座引线过长而引起时钟不振荡,请调整参数
6.可能要升级电脑端的 STC-ISP.exe 软件
7.若仍然不成功,可能 MCU/单片机内无 ISP 系统引导码,或需退回升级,或 MCU 已损坏
8.若使用 USB 转 RS-232 串口线下载,可能会遇到不兼容的问题,可以让我们帮助购买兼容的 USB 转 RS-232 串口线
仍在连接中, 请给 MCU 上电...
解决方法:
1,出现这样的情况首先证明了USB模块的连接和USB驱动程序工作正常。是正常的下载提示,这时给单片机重新上电就可以开始下载了。如果重新上电仍然没有出现下载进度条,可能出现的问题集中在USB模块后端,即单片机电路的部分。
2,首先需要检查USB下载电路的硬件电路连接是否正确。同时看此视频测试模块的好坏:http://www.eeskill.com/video/id/15094
正确电路连接如下图:
3,检查单片机是否有接外部晶振。虽然有一些单片机之前设置的是内部RC时钟,即不需要外部晶振也可以下载,但如果不小心在某次下载时使用了STC-ISP软件默认的外部晶体,正好单片机外部又没有接晶振,就会下载失败。请在单片机的外部加6~35M之间的晶振、30P的电容(如上图),然后再重新下载试试。测试时单片机必须要加晶振!
4,STC-ISP软件里有下载保护设置,即需要将P1.0和P1.1两个IO接口同时与GND连接才可以下载程序。一般型号的STC单片机默认是不使用这个保护的,但如STC12C5406等单片机是默认开启保护的。如果上面的方法失败时请尝试将P1.0和P1.1接口短接在GND上再下载看看。而且以后注意在下载时关闭这个保护功能,除非当你需要保护。
单片机出厂时的缺省设置是“P1.0/P1.1”与下载无关,P3.0/RxD, P3.1/TxD 通过 RS-232 转换器连接到电脑的普通RS-232 串口就可以下载/编程用户应用程序到单片机内部用户应用程序区了。
如果单片机在正常工作时 P3.0/RxD 外接的是 RS-485/RS-232 等通信电路, 推荐选择步骤4中:
下次冷启动“P1.0/P1.1”等于“0/0”才可以下载程序
单片机冷启动后(先没有电,后上电)首先运行的是单片机系统 ISP 监控程序。系统ISP监控程序首先判断是否需要“P1.0/P1.1”等于“0/0”才可以继续执行系统ISP监控程序。
如果用户设置了下次冷启动后“P1.0/P1.1”等于“0/0”才可以下载程序,而下次冷启动后“P1.0/P1.1”不同时为“0/0”,则单片机立即结束运行系统ISP监控程序,软复位到用户应用程序区执行用户应用程序。
如果用户设置了下次冷启动后“P1.0/P1.1”等于“0/0”才可以下载程序,冷启动后如“P1.0/P1.1”同时为“0/0”,则单片机会去判断 P3.0/RxD 口有无合法下载命令流(有几百个字节)。如果有合法下载命令流,则下载用户应用程序。如果没有合法下载命令流,则单片机立即结束运行单片机系统ISP 监控程序,软复位到用户应用程序区执行用户应用程序。
如果冷启动后 P3.0/RxD 口有很多“乱码”进入P3.0串口,虽然系统ISP监控程序能正确地判断是不合法的命令,但是较多的“乱码”会使单片机从“运行系统ISP监控程序状态”变为“运行用户应用程序状态”的时间拉长,造成用户误认为是复位时间过长。
设置下次冷启动后“P1.0/P1.1”等于“0/0”才可以下载用户应用程序的好处是:
将单片机从“运行系统ISP监控程序状态”变为“运行用户应用程序状态”的时间缩短到50mS以内,此时间可忽略不计,因为 R/C 阻容复位电路的时间误差是毫秒级的。
大部分用户选择单片机出厂时的缺省设置“P1.0/P1.1”与下载无关就可以了。
5,USB模块后端的5个针没有定向装置,所以有时会插反,或者误把5V单片机的电源接在3.3V上,这些情况也会导致下载失败。
6,MCU已损坏。
-------------------------------------三、更换软件版本-------------------------------------
失败现象: 软件版本STC_ISP_V483
MCU Type is: STC12C5608AD
MCU Firmware Version: 6.2G
Chinese:MCU 固件版本号: 6.2G
下次冷启动后使用 内部 RC振荡器 YES
下次下载时 P1.0/P1.1 与下载无关
下次下载用户应用程序时将数据Flash区擦除: NO
3.7V 以下复位
启动内部看门狗后禁止改看门狗分频数 NO
下次上电自动用有关参数启动内部看门狗 NO
Idle(空闲)状态时内部看门狗停止计数 YES
MCU Clock:4.9512MHz./时钟频率:4.9512.
Chinese:正在重新连接 ...
Current Baud is: / 当前波特率为:2400 bps.
We are erasing MCU flash...
正在擦除应用程序区...
MCU 出厂序列号:E668016806EFBB
正在下载...(开始时间:***)
(几秒钟后显示)
设置选项失败。
解决方法: 软件版本stc-isp-15xx-v6.85M
用最新的版本下载程序即可,但是注意:如果使用外部晶振一定不要勾选“选择使用内部IRC时钟(不选为外部时钟)”。
如下图读取到的晶振频率为5.499958M,是当前单片机内部晶振的频率。stc-isp-15xx-v6.85M累同如上。
如果上次己经设置了“外部晶体或时钟”且正确烧录程序,那么本次读取到的内容如下。
-------------------------------------四、波特率设置-------------------------------------
失败现象:
Chinese:正在尝试与 MCU/单片机 握手连接 ...
MCU Type is: STC12C5A60S2
MCU Firmware Version: 6.2I
Chinese:MCU 固件版本号: 6.2I
下次冷启动后使用外部晶体或时钟
RESET pin 仍为 RESET
上电复位不增加额外的复位延时
振荡器放大增益: High gain
下次下载时 P1.0/P1.1 与下载无关
下次下载用户应用程序时将数据Flash区擦除: NO
P4.6/RESET2 用作 P4.6
启动内部看门狗后禁止改看门狗分频数 NO
下次上电自动用有关参数启动内部看门狗 NO
Idle(空闲)状态时内部看门狗停止计数 YES
冷启动后内部看门狗预分频数(未启动): 256
MCU Clock:24.045688MHz./时钟频率:24.045688M.
Chinese:正在重新连接 ...
(几秒钟后显示)
Connection failed. / 握手失败 (End: 21:00:39)
解决方法:
1,这个问题多出现在STC12C5A60S2单片机上,在较高的波特率时很容易在下载时出现握手失败。一般的解决方法是将第3步串口的最高波特率选择到1200,这样可以保证下载,但是下载的速度较慢。
2,另一种解决方法是把最高和最低波特率选择到同样的数值(如都调到9600),用下拉列表中不同的波特率来下载看看,找到成功率最高的那一个数值。那便是你的幸运数值了。
3,到STC公司网站上下载STC-ISP V4.86版本的程序,可以流畅地为STC12C5A60S2下载程序。不需要改波特率。
STC网站:http://www.STCMCU.com/
------------------------------------五、USB转串口线不兼容-----------------------------------
STC官方下载软件(stc-isp)不使用STC下载线直接下载程序,使用USB转串口线时,会出现无法下载程序的现象。可以购买图中UNITEK的USB转串口线,实际正常使用。
-------------------------------------六、程序闪退-------------------------------------
失败现象:
点击STC-ISP软件的“下载按钮”时,STC-ISP软件自行关闭。
解决方法:
1,先将单片机的电源断开,然后再点击“下载”按键,再给单片机上电。此问题的原因可能是单片机现存的用户程序在操作P3.0和P3.1接口(UART复用接口),使得STC-ISP软件接收到错乱的串口数据,而导致软件自行关闭。
-------------------------------------七、EEPROM填充0xFF-------------------------------------
使用高版本的软件,比如这里的V6.85M版本。
1、点击如下图1处“区域填充”,在“填充数据块”界面中根据单片机型号修改2、3处。
2、填充出来的效果如下图,2处的校验和也会发生相应变化,点击3处的“保存数据”,下次可以直接从4处打开EEPROM即可。
3、注意:用下面的软件生成的文件,STC_ISP不认。