芯片破解网


首页 -- 单片机破解-- IC破解-- 芯片破解-- 新闻技术 --关于我们
 
芯片破解网 >> 芯片破解 >> 当前位置

STM8连续复位问题

问题:
该问题由某客户提出,发生在 STM8S 器件上。
据讲述:在生产中,发现STM8存在一定比例的不良。具体表现是芯片的NRST引脚上有充放电的波形,如下图。此时,芯片无法正常工作。
调研:
检查电路,没有明显问题。
由以上波形可以看出,NRST pin不断被拉低。而STM8当NRST引脚变低的时候会发生复位;同时,当芯片发生复位的时候,也会向外输出一个低脉冲。
因此,可以判断芯片是在不停的复位过程。

可以看出,提示信息表明option byte存在不互补的情况。
Option byte是一些比较特殊的字节,存放在不同于用户程序区和数据区的地方,但是从物理本质来说,它们又是一样的;同样,它们都可以在应用程序中改写。
但是option byte的不同之处在于,每一个option byte(ROP除外)实际上是由2个地址的内容共同决定的。这2个地址的内容是互补时,芯片认为是正常的;当这2个地址的内容不互补时,芯片认为是异常情况,将产生EMC复位,同时将RST_SR寄存器中的EMCF置位。
举例来说,对STM8S105,有
可以看到,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那样操作,一是为了安全可靠,二是这些字节在实际使用中被改写的可能相对较小。因此,如果可能,尽量使用工具去烧写;
对于在实际应用中确需在用户程序改写的情况,那么可以在改写前先读一下,然后做个判断,看是否已经是所需要的内容。如果不是再改写不迟。当改写时,要尽量保证系统安全稳定,避免发生改写到一半的时候被打断造成异常。
通过以上措施,可以将发生这种情况的可能降低。即使发生,也能很快地进行修复。

返回顶部


2013-2015 芯片破解网 All Rights Reserved.
如有任何问题和建议请联系:498187676@qq.com

深圳市协同电子有限公司 版权所有

地址:深圳市龙岗区南湾街道平吉大道1号建昇大厦B栋1618(李朗软件园对面) 电话:0755-88820678
手机:13713820066 QQ:498187676 联系:周工


站点地图

粤ICP备12084176号