你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM8 连续复位问题

[复制链接]
STMCU小助手 发布时间:2022-2-16 20:43
问题:
该问题由某客户提出,发生在 STM8S 器件上。
据讲述:在生产中,发现 STM8 存在一定比例的不良。具体表现是芯片的 NRST 引脚上有充放电的波形,
如下图。此时,芯片无法正常工作。
}RU8V`9(IP2C0%I58F~XULE.png

该产品已经量产,此现象只在当前批次中出现。

调研:
检查电路,没有明显问题。
由以上波形可以看出,NRST pin 不断被拉低。而 STM8 当 NRST 引脚变低的时候会发生复位;同时,当芯片发生复位的时候,也会向外输出一个低脉冲。
因此,可以判断芯片是在不停的复位过程。

使用工具试图读取芯片仍然出错,提示信息如下:

(O3~XW7M~OSDIVWG2VM_[)1.png

可以看出,提示信息表明 option byte 存在不互补的情况。

Option byte 是一些比较特殊的字节,存放在不同于用户程序区和数据区的地方,但是从物理本质来说,它们又是一样的;同样,它们都可以在应用程序中改写。
但是 option byte 的不同之处在于,每一个 option byte(ROP 除外)实际上是由 2 个地址的内容共同决定的。这 2 个地址的内容是互补时,芯片认为是正常的;当这 2 个地址的内容不互补时,芯片认为是异常情况,将产生 EMC 复位,同时将 RST_SR 寄存器中的 EMCF 置位。
举例来说,对 STM8S105,有

[VLMCHRKCIUMD@7`{$~80%I.png

可以看到,0x4809 和 0x480A 的内容正好互补。
其它的 option byte 也类似,具体可以查看相应器件的数据手册。
因此,当需要在程序中修改 option byte 时,需要对 option byte 及其互补字节都操作使其保持互补状态才是完整的步骤。

那么为什么会有 option byte 不互补的情况发生呢?
经过了解,在客户的应用程序中,会进行改写 option byte 的操作。这样,当使用工具烧写完成后,如果有上电的情况,当程序恰好运行到改写 option byte 的过程中但又没完成其互补字节的操作时就掉电了,此时恰好造成了 option byte 不互补,从而引起不断的复位。
因为这个问题与程序运行的时间点相关,因此尽管是相同的代码,但是并不是每个产品上都有机会表现出来。

结论:
通过以上的分析可以得知,该问题是 option byte 不互补造成的。

处理
使用工具,将 option byte 重新烧写一次即可。

建议:
此问题初看很象是质量问题。然而实际上,该问题是一个实践中经常出现的与质量无关的典型问题。(当然,这并不是说芯片在复位都是这个原因导致,也不能说所有的芯片一定都没有质量问题。)

那么如何从应用的角度来避免这个问题呢?
一种方法是改写 option byte 尽可能在生产时使用工具去烧写。Option byte 之所以没有像 program memory 或者 data memory 那样操作,一是为了安全可靠,二是这些字节在实际使用中被改写的可能相对较小。因此,如果可能,尽量使用工具去烧写;

对于在实际应用中确需在用户程序改写的情况,那么可以在改写前先读一下,然后做个判断,看是否已经是所需要的内容。如果不是再改写不迟。当改写时,要尽量保证系统安全稳定,避免发生改写到一半的时候被打断造成异常。

通过以上措施,可以将发生这种情况的可能降低。即使发生,也能很快地进行修复。

收藏 评论0 发布时间:2022-2-16 20:43

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版