在使用STM8S003做活跃停机的休眠方式,一直都没有什么问题.
但是最近新开了一个项目,使用相同的代码,却发现芯片会不定期复位.
我做过如下测试:
1.我觉得有点像是看门狗导致的复位,于是我去掉看门狗的相关代码,但复位现象依然存在;
2.我用逻辑分析仪抓了一下VCC及NRST的PIN脚,发现VCC一直是高电平(或许应该用示波器抓会准确些),但是NRST确实有293us左右的复位脉冲.
3.我读取复位标志寄存器,发现每次复位都是SWIM导致复位
修改代码配置SWIM为输入带上拉及配置全局寄存器,将SWIM的功能DISABLE,但是发现复位现象依然存在
4.去掉活跃停机对FLASH电压进行配置代码
目前测试暂未发现复位现象.
由于其他项目都有在用活跃停机模式下关闭FLASH电压这个代码,都是很正常的.
像这种现象不知道哪位遇到过?
是否跟硬件设计电源有关(因为我用逻辑分析抓取的,无法知道电源是否稳定)?
或是什么信号干扰产生的(我抓过SWIM PIN脚的波形,在NRST产生复位波形前,SWIM脚必定有电平变化)?
另外,我芯片用的是内部高速时钟.
|