STC单片机使用串口ISP(在系统编程:InSystemProgram)编程(或称:下载、烧写、烧录等),不需专用编程器,只要有串口和单片机接成最小系统(带有MAX232电路)就可以了,非常方便。
(注:若USB转串口下载器/下载线本身可直接输出TTL电平,则连MAX232电路也不需要(例如使用CH340T芯片的下载器))
(2014.08起,最新新的STC15W4KxxS4系列单片机支持接USB D-/D直接下载,非常方便)
但是大量的实际编程下载时可能遇到各种各样下载失败的问题,影响了用户体验,现整理原因和解决方法如下:
下载不成功不外乎单片机本身或下载环境这两方面的问题,我们可使用替换法来检查问题出在何处,首先可试更换另一片单片机或另一个下载线或下载板,排除个体差异。
因STC-ISP对串口信号的时序、电平的指标要求较严格 ,若果使用低价的劣质USB转串口线,问题大多出现于此。
我们强烈建议以下配置作为测试标准平台:台式机的原生串口 + 32位的WINXP(64位可能兼容性不够好)+ 原厂MAX232(SP232)芯片(3.3V系统需要MAX3232)+ 单片机最小系统。
(注意:部分用户的精简版WINXP 由于组件不完整,可能导致STC-ISP软件不能正常运行或出错,请改用完整版)
其实,STC-ISP软件已经列出了常见的下载失败原因,见下图:
STC-ISP软件已经列出常见的失败原因
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串口线
我们也总结失败的原因如下:
1、首先检查最小系统连线是否正常,有否短路或开路、接触不良的现象。(特别注意:烧写点击编程键后,单片机必须断电进行冷启动!)
2、检查电压是否稳定和正确(不可过高或过低,F系列为5.0V,L系列为3.3V,W系列为宽电压3.3-5.0V)。
3、试将STC-ISP的下载波特率调低,并将最低和最高波特率调为一致(例如均选为4800BPS)。
4、检查是下载选项上次是否选择了P1.0/P1.1(15F系列为:P3.2/P3.3)同为0才下载,而本次没有将其拉低为低电平。
5、检查STC-ISP下载选项上次是否选择了使用外部晶振,而本次未接入外部晶振或震荡电路不工作。
6、是否有外挂电路的影响(例如外挂了RS485等电路会干扰串口)。
7、STC-ISP的下载选项延时设置是否正确(建议勾选“上电复位使用较长延时”)。
8、232电平转换电路是否良好(3.3V系统需要MAX3232。部分国产232芯片不稳定,请使用原厂正品,并注意配套电容的容量。强烈建议不要用2个三极管搭建的廉价232电路)(若使用某些输出TTL电平的USB专用下载器(如CH340T芯片的),则不需要232电平转换电路)。
9、若使用USB线转串口线,注意USB线的质量问题,推荐使用CH340T芯片的线。(PL2302芯片假冒品很多,需找到合适的驱动,最新的驱动未必最好)。
10、部分USB转串口线会通过RxD/TxD引脚对单片机供电,导致下载时不能彻底断电。 可在单片机的TxD引脚串一个二极管 (接正极,如图) ,使单片机可彻底断电冷启动。(注:若USB转串口芯片共板,不要对USB芯片断电,否则USB转换的串口会消失)
11、检查是否复位不良。
12、早期版本(2010-10-18前)的STC15F104E/204E请使用STC-ISP V1.06版下载,后面版本的推荐使用STC-ISP V6.53及以上的最新版本( STC-ISP V4.83 / STC-ISP V4.88 ,建议仅用于早期的脱机下载板或早期固件的单片机)。
13、15系列单片机调节的频率过高,超过标称值(例如40MHZ),导致软件进行频率调整超时等失败(请按芯片型号标示的最高频率内进行调节,例如25MHZ和35MHZ等,不要超频使用)。
14、芯片损坏或不良(因过流、过压烧毁或芯片内ISP CODE固件丢失等原因),请更换另一片芯片重试。
宏晶STC单片机串口ISP烧录故障及解决实例
1、现象:客户使用STC-ISP V4.83对ATMEL AT89S52烧写失败。
解决:STC-ISP只能对STC单片机进行烧写,其他牌子的单片机请使用其专用软件或支持的编程器。
2、现象:STC12C5A60S2 下载STC-ISP软件提示“正在检测目标单片机 ..”
解决:检查供电电压为4.25V,用户使用USB口供电,线材内阻大导致压降大,更换优质USB线后电压为4.85V,问题解决。
3、现象:使用STC-ISP V4.83+STC官方下载板(V3.0)下载STC12C5A60S2,无任何反应。
解决:经检查,客户将电压跳线选择为3.3V上,单片机供电不足导致下载失败,重新将跳线设置5V,下载成功。
4、现象:用户称所有的几片STC12C5A60S2都只能烧写一次,下次再使用就“坏”了,不能下载!!!
解决:用户所做的最小系统为无晶振的电路,但STC-ISP的下载选项选择了“下次使用外部晶振”,导致单片机因无时钟无法工作而下载失败,增加外部晶振电路即可。
5、现象:用户称所有的几片STC12C5A60S2都只能烧写一次,下次再使用就“坏”了,不能下载!!!是否为OTP芯片假冒FLASH芯片???
解决:用户STC-ISP的下载选项选择了“下次冷启动P1.0/P1.1为0/0才下载”,而实际下载并未拉低导致下载失败,将该两脚接地即可(注:应留意STC-ISP的下载选项,理解各参数的用法,做出合适的选择)。
6、现象:芯片型号为“STC15F2K61S2”, 但下载时在STC-ISP找不到对应的型号,使用IAP15F2K61S2时提示“型号错误”。
解决:经联系厂家,此为早期芯片,型号印刷有误,应为STC15F2K60S2,选择该型号后下载成功。
7、现象:STC12C5A32S2在某51开发板下载不稳定,成功率很低,降低波特率也无法下载,提示“无法找到单片机”,而单片机则自动运行上一次的程序。
解决:单片机可运行,代表最小系统无问题。通过替换法排查,发现在另一块单片机开发板上可以正常下载,最后将原开发板上的国产的MAX232芯片(DIP封装,带插座)更改为正品的SP3232芯片后解决(估计为该MAX232芯片性能不良,有时外部的电容容量过小或性能不良也会出现类似故障)。(推荐使用STC官方的下载板作为基准最小系统平台)。
8、现象:某开发板下载传统STC单片机正常,飞线下载IAP15F2K61S2无反应。
解决:经仔细检查,用户犯了低级错误,将RXD,TXD与P3.0/P3.1对调导致下载失败,更正后立即下载成功。
9、现象:某51开发板下载很不稳定,常常下载失败,试过何种方法也无法下载。
解决:检查板上MAX232芯片外围电荷泵电容为0.1uF,而查手册该型号后缀的芯片对应的电容容量为1uF,均更换为1uF电容后解决。
10、现象:用户一直使用STC15F104E在线下载无问题,后改用另一批次芯片,下载成功率很低,客户一直认为下载环境无改变。
解决:经查,虽然单片机特性均在数据手册范围以内,但部分特性不同,在STC-ISP软件的“下载选项”勾选“上电复位使用较长延时”后下载成功。
11、现象:用户使用USB转串口专用下载器,之前一直正常,某天突然下载STC15F2K61S2失败,STC-ISP提示“调整频率无响应”。
解决:使用替换法检查,使用原生串口+RS232电路可以下载,冷启动电脑,卸载并重新安装USB转串口下载器的驱动后解决。
12、现象:STC12C5A60S2下载无反应,但之前下载的流水灯测试程序可以正常运行。
解决:经了解,用户上次使用第三方SP300U编程器下载过芯片,后来就不能使用STC-ISP下载。经查,该编程器已破坏STC芯片的ISP CODE代码(固件),已经不能串口下载(点评:STC单片机建议使用原厂STC-ISP下载即可,不建议使用其它编程器)。
13、现象:STC12C5A08S2下载无反应
解决:经查,客户在STC-ISP中选择了“下次冷启动使用外部晶振”,但实际下载环境晶振使用了插座,检查该插座有一脚与PCB虚焊了,震荡电路不工作。补焊后正常下载。
14、现象:用户手工使用洞洞板搭建最小系统,但是下载不成功。使用芯片:STC89C52RD+。
解决:经查,客户使用性能不良的开关电源,不稳定,且滤波不良。更换优质电源后解决。
15、现象:IAP15F2K61S2下载,一直停留在“正在调整频率”环节。
解决:经检查,用户的芯片型号为“IAP15F2K61S2-25I-PDIP40”,该芯片最高工作频率为25Mhz,但用户手工将工作频率设定为40MHZ(超频)。为稳定,使用标称频率以内即可正常。
16、现象:IAP15F2K61S2(2013年C版),下载设定频率为15MHZ, 但实际为14.2MHZ, 偏移约10%!
解决:经咨询厂家,该系列芯片只能在常用频点(例如:11.0592M、12M等)范围内调整能达到误差少于0.3%,部分不常用的频点会有较大误差。用户选择常用频率后正常。
17、现象:IAP15F2K61S2下载若超过30MHZ,以后不论如何设置都不能下载,不是无响应就是长期卡在“调节频率中”上,但放置到次日就可以正常下载(30MHZ以下)。百思不得其解!
解决:后来在单片机正面的型号中发现有“BATEA”字样,表明这是一个样片(应该是当初送样的,估计没有直接销售)。此芯片为试产样片A版本,可能存在各种不稳定的情况,后续的B版、C版芯片已经改正。
18、现象:用户需下载“STC15F104E”芯片,但STC-ISP 软件单片机型号下拉菜单与“打开程序文件”按钮均为灰色,型号固定为“IAP15F2K61S2”且无法读入烧写HEX文件,换过几台电脑,在WINXP和WIN7下均如此。
解决:经咨询,客户使用的STC-ISP左上角的版本号显示为V6.31,其实这是一个被自助发布的版本,被定义为“IAP15F2K61S2”且HEX已内置。原因:该版本的界面正常版与被发布版一样,导致误会。后续版本厂家已经将界面与正常版明显区分,并可自定义标题。换用STC-ISP 最新版软件(例如V6.57)“搞定”!:)
19、现象:(网摘)用户一直使用网购的USB转串口下载器(外形如U盘)下载正常,某日在学校同学的类似的USB下载器却不能下载,提示“正在检测目标单片机”,但该串口自检正常。
解决:经查,用户原下载器型号为HT1032,内置自动冷启动功能,学校的为不带自动冷启动功能导致下载失败。STC单片机烧写须冷启动才能进入ISP状态。后用户手工拨动开关断电一下,烧写下载成功!(注意:STC单片机下载必须冷启动,与ARM等烧写方式不同,习惯后也是非常方便的。)
20、现象:STC12C2051(内部固件版本号:3.6D),使用目前最新版STC-ISP V6.57下载失败,提示“暂不支持烧录该版本单片机”。
解决:改用传统STC-ISP V4.83/V4.88烧写成功。(注:STC-ISP V6.XX不支持部分固件版本低的老型号单片机烧录)
21、现象:STC15F12AD(PDIP40封装)烧写时在STC-ISP软件中找不到对应型号。
解决:该版本为早期样片,仅供测试,未量产,可使用STC-ISP V4.82BETA版(可在本站下载)烧写。
22、现象:在开发板可以下载STC89C52RC可以,但跳线下载IAP15F2K61S2不成功,显示“正在握手中..”
解决:经检查,发现用户使用的USB线不稳定,更换为力特牌(推荐)正品USB转串口线(FT232芯片)并下载安装最新驱动后下载成功(注:因STC-ISP对串口时序和电平要求较严格,故部分低价USB串口线不能满足要求导致下载失败)。
23、现象:STC15F204EA(SKDIP28封装),下载无反应。
解决:发现该批芯片为早期版本(2010-10-18前)版本,在官网下载 STC-ISP V1.06版解决(注:新旧版芯片互不兼容,需对应版本的STC-ISP,请特别注意)。
24、现象:IAP15F2K61S2(版本C)下载,提示“下载失败”。
解决:发现使用的是STC-ISP V6.39版,试在STC官网下载最新的STC-ISP V6.53(及以上版本)再试,烧写成功(注:固件版本在7.1.3S及以上也需要新版STC-ISP软件才可烧写)。
25、现象:STC-ISP V4.83 在64位 WIN7 安装不成功,提示“XXX控件未安装”。
解决:因STC-ISP 新版已支持STC全系列单片机编程,在官网下载新版STC-ISP V6.53(及以上版本)后解决。(注:部分老STC单片机型号的内部固件较低或旧版脱机编程器,还是需要使用STC-ISP V4.83,可在STC网站下载控件及控件注册工具)。
26、现象:(网摘)客户使用蓝牙串口,串口自检正常,但下载STC12C5A60S2单片机不成功。
解决:因STC-ISP软件下载时需动态设置串口参数,但该蓝牙串口模块不支持。请暂使用普通串口下载。
27、现象:(网摘)用户使用LINUX,无法下载STC12C5630AD。
解决:STC暂无非WINDOWS版的ISP烧录软件,可尝试使用虚拟机下的WINDOWS环境试验。(备注:从实用可靠角度,开发还是使用WINDOWS平台吧,同时该STC-ISP软件目前也不支持苹果MAC OS和IOS系统。)
28、现象:用户使用STC-ISP V6.57下载STC官方脱机下载板(V3.0)失败。
解决:STC-ISP V6.XX版的脱机下载不支持旧版的脱机下载板,请使用STC-ISP V4.83。
29、现象:用户使用STC官方下载板下载STC12C5630AD(DIP28封装)失败。
解决:经检查,该STC官方下载板为标准PDIP40的下载板,管脚不兼容!使用飞线或将下载板的下载接口插座引出到最小系统板解决。
30、现象:CP2102芯片USB转串口线下载,单片机无反应。
解决:使用串口工具检查,串口传输有误码,使用示波器观察,该串口时序及电平均性能不良,更换CH340芯片的串口线后成功。
31、现象:客户使用STC-ISP V6.XX下载一个24K的HEX文件,但是软件读入后又是马上闪退会桌面,有时则是死锁“无响应”。
解决:部分特殊的HEX文件可能不兼容,最新版STC-ISP软件已针对其进行改善,或使用第三方HEX转换软件将其转为BIN文件加载即可。
32、现象:客户使用STC-ISP V6.61软件,选择了单片机型号为:STC12C5A08S2,然后再【打开程序文件】加载一个下载大小约7K的HEX文件,但是软件读入后提示“文件大小超出范围,超过部分已被自动截取”,请问为什么HEX的大小比单片机的FLASH 空间小还是出现超容量呢?
解决:我们知道起始HEX文件的大小非BIN文件的大小(请自行查看HEX格式说明),将HEX转换为BIN文件后观察大小再选择FLASH ROM容量合适的单片机。本例转换后BIN文件为9K左右,故选用FLASH ROM容量为16K的STC12C5A16S2单片机后下载运行成功。
33、现象:客户使用STC-ISP V6.61下载时提示“串口打开失败,请检查串口是否存在或已被打开”
解决:其实上面提示已经很清晰了,经检查,为用户运行了另一个“串口助手”软件使用了串口1导致的。关闭该软件后STC-ISP软件即可正常下载了。(这种情况也可能是串口选择不正确或USB转串口线被强制拔出等原因造成的,请仔细检查)
34、现象:来个特殊的:客户使用KEIL更新调试源程序,并重新编译成功。但下载单片机完成,但单片机竟然“坏了”,还是执行上次旧的程序,尝试几次也是如此!!!
解决:经提示客户观察STC-ISP的程序文件窗口,HEX文件读入后没变化。原来客户中途因故修改过KEIL的输出路径,新生成的HEX保存在新位置,但还是习惯在原文件夹读取旧的HEX!大家知道后来如何解决了吧...其实程序员需要细心加冷静,呵呵..
35、现象:用户使用某款惠普(HP)PC的COM1,有时下载失败,很不稳定。
解决:经其他网友指点,在设备管理器中点击该串口,选“属性”-“端口设置”-“高级”-“使用FIFO缓冲区”画面中将“接收缓冲区”和“传输缓冲区”的滑动条滑动到最左端,使数值均为“1”后解决。
36、现象:用户使用STC官方下载板下载STC12C5A60S2失败。
解决:经检查,客户使用的是普通双公头USB线,而非STC专用配套USB线。因该STC官方下载板为常规串口电路,非USB转串口。借用了USB电缆进行供电及传输串口RXD,TXD信号,故必须使用配套专用USB线(有串口DB9插头)。客户改回原专用USB线后解决(注意两个USB插头上的贴纸提示,对调用错亦不能工作)。
37、现象:客户使用STC-ISP V6.53软件下载,但其电脑杀毒软件提示有STC-ISP-V6.53.EXE有“木马或恶意”软件,并自动禁止运行并删除或隔离文件。
解决:经测试,STC-ISP封装时使用了自解压的带壳软件技术,容易被一些软件认为是“木马”或恶意软件。只要在官网下载的STC-ISP都应该是不带病毒的,将其添加到本机杀毒软件的“白名单”或“信任软件”列表即可。(如需检测STC-ISP,可将文件提交到网站进行检测扫描)
38、现象:2014年8月,用户使用STC原厂最新的U8编程器下载最新的IAP15W4K61S4单片机,一直停留在“正在检测单片机...”,但无法编程。
解决:用户犯了低级错误:在放置DIP40的芯片时放反了方向!此时传统51引脚单片机会发烫,但STC15系列单片机的电源引脚排列原因不会发热故未能及时发觉。按U8编程器外壳的印制的图示(芯片缺口朝手柄,底部对齐)放置单片机,下载成功。
39、现象:用户使用最新的宏晶STC15W4K48S4单片机(样片)进行USB直接D+/D-下载,使用芯片的内部RC振荡器。使用WIN XP系统运行STC-ISP V6.79版,插入芯片后系统自动安装了USB驱动程序,首几次可下载成功,但后来插入单片机后系统均提示“发现未知设备”,无法使用USB-ISP方式下载。
解决:开始可以下载,证明系统无问题,用户的2片样片经反复重新安装驱动程序、更换多台PC电脑均无法解决。后经联系厂家,回复为样片原因,使用极少比例的芯片在使用内部振荡器进行USB直接下载可能不稳定,需使用24M外部晶振。按数据手册上的提示,外接24M外部晶振电路后重新使用USB-ISP下载成功。
40、现象:客户使用STC15F104W下载时无响应。
解决:检查客户供电电压为3.4V,改为5.0V供电下载成功。(原因为:客户见单片机型号后缀为W就误认为是宽电压芯片,查看数据手册可知其为5V芯片,STC15W104才是宽电压版,STC15L104W是低压3.3V版芯片)
41、现象:客户使用STC15W104E和万能板进行电路验证,开始时下载成功,但次日发现MCU可以运行原程序,但下载时无响应。
解决:客户刚好该MCU样片只有一颗,故先用替代法检查下载器和电脑对其他型号的MCU下载无问题,客户称之前一直可以下载,无法理解。后来从别处调到一颗同型号样片,测试下载成功,证明原MCU的确是损坏了(损坏可能在不留意中发生,例如:反接电源、过压、过流、焊接时间过长、焊接温度过高、静电损坏等等)。
42、现象:客户使用IAP15W4K58S4进行下载,几次后无法下载,STC-ISP软件提示“下载失败”。
解决:据了解,客户误用了STC-ISP软件的【下载口令】功能,最多只允许进行5次的错误尝试,超过后芯片将被永久锁死,即使再输入正确的下载密码也不能解锁。本例只能更换新的芯片(建议用户熟悉软件的功能,避免误操作)。
43、现象:客户对IAP15W4K61S4进行下载,STC-ISP软件提示“下载失败”。
解决:据了解,客户误用了STC-ISP软件的【程序加密后传输】功能,后遗忘了原密钥导致无法进行下载。这时只能更换新芯片处理(建议用户熟悉软件的功能,避免误操作,同时建议厂家在STC-ISP软件增加相应的出错提示)。
|