打印
[技术问答]

HC32L136K8TA的RTC周期中断为什么唤醒不了深度睡眠模式呢

[复制链接]
2039|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 WilliamChok 于 2020-8-5 11:31 编辑

设想是系统无操作15s就进入深度休眠模式,RTC每一分钟唤醒休眠模式,然后进入周期中断串口发送一组数据。
没有进入休眠模式的时候,能正常进入周期中断,串口能发送数据,进入休眠后RTC无法唤醒休眠。
是我RTC配置问题还是,有人帮忙看看吗?

使用特权

评论回复
沙发
martinhu| | 2020-8-5 13:55 | 只看该作者
WDT使用了吗?如果使用了,时间是多少?

使用特权

评论回复
板凳
WilliamChok|  楼主 | 2020-8-5 14:21 | 只看该作者
martinhu 发表于 2020-8-5 13:55
WDT使用了吗?如果使用了,时间是多少?

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

使用特权

评论回复
评论
WilliamChok 2020-8-6 14:11 回复TA
@martinhu :我试过了,RTC周期中断加不加清除中断标志都没什么影响,都能正常中断,感觉就是进入休眠后RTC就不工作了。 
martinhu 2020-8-6 09:28 回复TA
看看已经使能的中断里面有没有清除中断标志。 或者单独使用RTC或者外部IO中断试试,你这样的情况,应该是进低功耗之后立即被唤醒了。 
地板
WilliamChok|  楼主 | 2020-8-6 14:18 | 只看该作者
早上试了一下WDT唤醒,定时52.4s能正常唤醒,只是把RTC周期中断换成WDT溢出中断,WDT可以RTC却不行。
然后我就发现WDT是用的专用的10K片内振荡器提供时钟的,我就感觉是进入休眠模式的时候RTC低速时钟被关闭了,然后尝试在进入休眠模式前加一句“Sysctrl_ClkSourceEnable(SysctrlClkXTL,TRUE);”RTC周期中断就能正常唤醒休眠了。
但是手册上是说进入休眠模式时低速时钟是不会主动关闭的,都是保持原来的运行状态,

所以一开始也是没注意这个问题,也许是我进入休眠模式的代码有问题吧,再好好查查。
问题算是解决了,在这里给大家分享一下

使用特权

评论回复
5
martinhu| | 2020-8-6 19:49 | 只看该作者
WilliamChok 发表于 2020-8-6 14:18
早上试了一下WDT唤醒,定时52.4s能正常唤醒,只是把RTC周期中断换成WDT溢出中断,WDT可以RTC却不行。
然后 ...

RCL或XTL不会因为进Deep sleep而关闭

使用特权

评论回复
6
WilliamChok|  楼主 | 2020-8-7 09:27 | 只看该作者
问题找到了,是因为我在进休眠模式的时候把外部晶振的IO设置成输出了

使用特权

评论回复
7
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

粉丝