用STVP可以下载,但用IAR无法DEBUG,用IAR下载后复位电平就不正常,这个问题困扰了我很长时间,今日得以解决,给大家分享,希望大家少走弯路。STM32用JTAG在KEIL中烧从来没遇到什么问题,怎么IAR用STLINK V2问题这么多,而且网上没有专门进行总结的原因。 (1)原因描述及前期分析: SAT Feb 07, 2015 10:30:57: Failed to initialize communcation with hardware: SWIM error [200]: ST-Link connection error
现象:IAR下用开发板下载没问题,将目标板改了型号后,直接烧,IAR内无法烧,但STVP可以烧。
原因:单片机换了型号后,不光要在程序目标改一下,还要在stm8s.h中也要改动,将正确的注释去年,把旧型号注释上。
有的说是固件升级,换USB口,还有用管理员身份启动IAR,但也不行。
换一个程序用一个板子都没问题,换另块板用STVP不能下,用IAR不能下,VCAP=1.85V正常,板子问题复位电压只有1.6V~2.5V(各个板子电压不尽相同)。和帖子([STM8] STM8S207S8T6C上电后复位脚一直是1.9V不能工作)问题相同。VCAP下电容为1uf,复位通过10k电阻和1uF电容不能正常工作。把10k短接后可以工作。 开始找到的可能解决办法是:
1)将复位引脚引出,需要STVP下载程序时,引线放着即可,需要运行时,引线短接至5V,相当于把10K电阻短接。不能IAR中DEBUG确实抓狂,这种方法不是解决方法。 2)直接换芯片,其实芯片都没坏。
3)有人说复位引脚上拉电阻并联一个1uF的电容能正常工作(10块样板有5块单片机上电不能工作,有时还能运行起来,有一块堪至不能烧写程序),实际看来这个方法不凑效。 4)有人说换原装编程器(当年我用PIC也碰到过类似问题,后来发现是脱机在线编程器(ICSP)把RST脚烧了,换成原装的编程器(ICD3)就没有问题(同一批货).我估计编程器把IC烧坏的可能性比较大,特别是ISP/ICP类的编程器,然后用市电做电源的情况)。实际上STLINK V2用STVP能下说明下载没问题。
5)用示波器看下不正常的MCU的复位引脚,如果有周期复位的话用STVP+ST-Link重新烧写下Option Byte。再不行把芯片的读保护置上,然后再去掉读保护,然后看看是不是还不正常。这个方法还是有道理的。 6)以前遇到过的是Vcap脚接的电容是0.1uf造成的 换成1uf就行了。实际VCAP电容范围为0.47u-3.3u。 以上方法并不能真正解决问题。 (2)真正原因及解决办法: 真实原因是:硬件本身没有问题,软件出现了问题。我是将所有的和STM8S相关的软件卸载,然后在官网上下载最新的安装软件安装(具体安装的软件是(a)IAR for stm8 2.10.2 (b) ST-LINK_V2 USB driver for Windows 7, Vista and XP 20150207,下载st-linkv2_upgrade升级也可以, (c)stsw-mcu002 STVP programming toolkit 3.0),安装完毕后报错又变成: SAT Feb 07, 2015 20:23:57: An error occurred while retrieving GDI features: gdi-error [40201]: Can't access configuration database 解决办法:参考帖子(stlink调试stm8105S4忽然出问题了) 按15楼方法,下载并安装IAR debugger-support-files软件。 SAT Feb 07, 2015 20:30:57: Errors while setting configuration with MCU name STM8S103F3P: gdi-error [40701]: Option bytes read error: not complemented; please use a programmer
解决办法:见stm8 Option byte 修改问题:Error on Option Bytes ...及解决办法 这个问题可以在用STVP将Option Byte里面的ROP从OFF改为ON,烧入,再改为OFF再次烧入。这时要如果要在IAR中DEBUG,则需要关闭STVP,否则出现下面的错误: Sun Feb 08, 2015 00:26:32: Failed to initialize communcation with hardware: SWIM error [30200]: ST-Link connection error Error on Option Bytes (complementary bytes). Reprogram Option Bytes of device 解决办法:STVP将Option Byte里面的ROP从OFF改为ON,烧入,再改为OFF再次烧入。
|