SWIM error [30006]: Comm init error: chip does not answer

前言

在调试自己做的STM8S003F3P6实验板,已经调试几天了,都正常。
今天要调试一下串口1,写了测试程序。编译完,不能单步调试。
打开前几天写好能用的测试工程,也不能单步调试。
弹框后,在IAR提示区显示如下信息:

Sat Oct 03, 2020 12:56:59: Failed to set configuration with MCU name STM8S003F3: SWIM error [30006]: Comm init error: chip does not answer 

因为我板子可能是有问题(MAX3485那块没验证呢,但是采用的成熟电路),但是不出在MCU这块,SWIM通讯是最基本的,要不咋玩啊。

去网上查这个报错(SWIM error [30006]), 有人说到要用STVP先搞一下MCU.
这个板子打样回来后,第一次使用时,确实用 “ST Visual Programmer”和MCU通讯后,才能单步调试。

又用“ST Visual Programmer”和MCU通讯了一次,将代码区擦掉,将编译好的hex也能烧录到MCU.
将缓冲区清成0,读回MCU代码区的内容,也能看到是烧入的编好的HEX内容。

然后再用自己当前的测试程序单步调试,就正常了。

估计可能是IAR和MCU通讯时的实现有bug, 导致MCU不响应调试命令。
为啥用STVP就行呢,这可能是ST没有将全部通讯协议告诉IAR厂家吧。或者IAR对通讯协议运用的细节和ST原厂不一样(e.g. 执行B指令之前,必须要先执行A指令之类的)。

问题没真正解决

我刚才用STVP和板子通讯上了,也用我前面写好的工程能在板子上单步调试了。
我就写另外一个测试程序,测试最后一个串口电路是否好使。
写好后,一实验,又不能单步了。这时,用STVP和前面写好的用例工程均不能和板子通讯。

我怀疑是MCU病危了…
前面已经正常的调试了几天,今天突然有问题,虽然被STVP暂时治好了,但是MCU一定出问题了。因为我调试时,就是上个电,没干别的。

买料时,打样是5块PCB, 我买了10个STM8S003F3P6.
开始焊了2块,有焊盘掉的情况。这次调试,是第3块板子。
其中有些料,已经没有了…, 但是现在MCU还有,不担心。
看来实验板买料,至少要备5个板子的料。其中一些不值钱的阻容,还是按照100个买比较好。
值钱的元件. e.g. MCU和其他芯片,至少也要5~10个起吧。
前几天,做的板子,我自己买料,一个STM32F407IGT6就50多RMB, 肉疼啊… 只买了3个,希望不要给我搞啥MCU坏了的情况。真的肉疼,可以理解。

用热风枪将MCU吹下来,上了一片崭新的STM8S003F3P6, 将拆MCU时,MCU旁边误吹下来的2个电容也补焊上新电容。我为啥补焊呢,因为缺了这2个阻容,用STVP通讯,显示另外的通讯错误。
在这里插入图片描述
在这里插入图片描述

这时,用我以前写好的用例工程,是可以单步调试的。充分说明了MCU病危了.

但是,用我刚写好的用例工程,是不能单步调试的。这个用例工程,是我从头搭建的。
最后,通过比较好的用例工程,和我这个新建的工程,发现IAR设置中,关于STLINK的设置不同。
正确的设置如下:
在这里插入图片描述
不能选任何STLINK的勾选项,否则就是另外的通讯错误。
这就是IAR3.11.1的bug了,或者STM8S003F3P6内置的通讯协议升级了。导致不能和IAR3.11.1兼容。

按理说,STLINK选项,应该选上校验啥的,要不咋能知道程序下载的是否对呢?

我遇到的 SWIM error [30006]: 问题解决完成。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值