Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
YTMicro YTM32B1MC03 内部看门狗使用异常情况: 使用方式: 前提:使能内部看门狗,配置超时模式,时钟源LPO32K , 超时周期设置200ms,手动模式 具体配置如下: MCU进入standby模式,使用lpTMR定时器100ms周期唤醒MCU,在lpTMR定时器通知函数(中断)进行内部看门狗喂狗操作。 现象:MCU会发生复位,复位原因:内部看门狗复位。
可能是唤醒延迟导致,可以先延长复位时间看看
测试下来,从MCU休眠到唤醒的时间和设置的时间差不多,这个你们可以先复现一下。
最简工程能提供吗?
你这边也可以同步试一下①延长timeout时间;②进入睡眠前先喂一次狗
延长timeout时间,这个测试过了,是可以的,但具体原因不清楚。
②进入睡眠前先喂一次狗,这个试过了,MCU还是会复位的。
从MCU休眠到唤醒的时间和设置的时间差不多的话,可能刚好卡在极限时间了,最好多预留一点时间
再一个可能的原因是LPOCLK有一定的偏差,跟理论计算出来的值可能就略有差异。
软件中已考虑到LPO时钟的偏差,并进行校准,唤醒时间差不多准的。
这条回复有误,进入睡眠前先喂一次狗,MCU也不会发生复位。
那你可以把这个步骤加上,这是休眠唤醒的标准流程
具体原因需要你们排查一下。
那你方便的话工程发一下吧,或者给个简化版本
lptmr的中断优先等级是多少?
Mcu进入低功耗会进入临界段保护,要唤醒的话,需要将中断优先级设置为0
MCU进入standby模式,如果使用lpTMR定时器50ms周期唤醒MCU,内部看门狗超时周期设置200ms,在lpTMR定时器通知函数(中断)进行内部看门狗喂狗操作。现象正常,不会复位。
Appl(1).zip
你的IAR版本太高我只能看到部分代码。你的ptmr_ch0 40ms喂狗一次,ptmr_ch2在500ms后进入standby模式,也就是ptmr_ch0过了12.5个周期,此时已经有20ms的时间没有喂狗;睡眠前设置了lptmr的周期为100ms,并且关闭了ptmr,100ms后MCU被中断唤醒,唤醒后由于ptmr呗关闭,只会在lptmr中断中喂狗,因此在一个休眠唤醒周期后的第一次喂狗时间为20+100+100ms=220ms,而你的timeout时间为200ms,所以发生了复位。
不应该是20ms+100ms吗?为啥是20+100+100ms=220ms?我第一次唤醒是进行喂狗操作了。
快速上手云途开发生态
发帖前请查看
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...