[技术问答] HC32L136K8TA的RTC周期中断为什么唤醒不了深度睡眠模式呢

[复制链接]
2804|8
 楼主| WilliamChok 发表于 2020-8-5 11:13 | 显示全部楼层 |阅读模式
本帖最后由 WilliamChok 于 2020-8-5 11:31 编辑

设想是系统无操作15s就进入深度休眠模式,RTC每一分钟唤醒休眠模式,然后进入周期中断串口发送一组数据。
没有进入休眠模式的时候,能正常进入周期中断,串口能发送数据,进入休眠后RTC无法唤醒休眠。
是我RTC配置问题还是,有人帮忙看看吗?
466065f2a2419ab3df.png
martinhu 发表于 2020-8-5 13:55 | 显示全部楼层
WDT使用了吗?如果使用了,时间是多少?
 楼主| WilliamChok 发表于 2020-8-5 14:21 | 显示全部楼层
martinhu 发表于 2020-8-5 13:55
WDT使用了吗?如果使用了,时间是多少?

没有使用WDT,就是设置了外部中断和RTC唤醒,外部中断可以唤醒,就是RTC周期中断唤醒不了

评论

@martinhu :我试过了,RTC周期中断加不加清除中断标志都没什么影响,都能正常中断,感觉就是进入休眠后RTC就不工作了。  发表于 2020-8-6 14:11
看看已经使能的中断里面有没有清除中断标志。 或者单独使用RTC或者外部IO中断试试,你这样的情况,应该是进低功耗之后立即被唤醒了。  发表于 2020-8-6 09:28
 楼主| WilliamChok 发表于 2020-8-6 14:18 | 显示全部楼层
早上试了一下WDT唤醒,定时52.4s能正常唤醒,只是把RTC周期中断换成WDT溢出中断,WDT可以RTC却不行。
然后我就发现WDT是用的专用的10K片内振荡器提供时钟的,我就感觉是进入休眠模式的时候RTC低速时钟被关闭了,然后尝试在进入休眠模式前加一句“Sysctrl_ClkSourceEnable(SysctrlClkXTL,TRUE);”RTC周期中断就能正常唤醒休眠了。
但是手册上是说进入休眠模式时低速时钟是不会主动关闭的,都是保持原来的运行状态,
606645f2ba0c1bbebb.png
所以一开始也是没注意这个问题,也许是我进入休眠模式的代码有问题吧,再好好查查。
问题算是解决了,在这里给大家分享一下
martinhu 发表于 2020-8-6 19:49 | 显示全部楼层
WilliamChok 发表于 2020-8-6 14:18
早上试了一下WDT唤醒,定时52.4s能正常唤醒,只是把RTC周期中断换成WDT溢出中断,WDT可以RTC却不行。
然后 ...

RCL或XTL不会因为进Deep sleep而关闭
 楼主| WilliamChok 发表于 2020-8-7 09:27 | 显示全部楼层
问题找到了,是因为我在进休眠模式的时候把外部晶振的IO设置成输出了
qiyajiang30 发表于 2022-3-31 10:17 | 显示全部楼层
本帖最后由 qiyajiang30 于 2022-3-31 10:26 编辑
WilliamChok 发表于 2020-8-7 09:27
问题找到了,是因为我在进休眠模式的时候把外部晶振的IO设置成输出了 ...

我想请问下,rtc中断在初始化以后一定会不经过定时来一次么??比如我设置成RtcInitStruct.rtcPrdsel.rtcPrds = Rtc1H,然后刚过初始化不久rtc中断就来了,后面就是正常时间定时来中断了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

20

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部