zykzyk-93033 发表于 2019-9-25 16:47:47

关于STM8L052芯片在停机halt模式下RTC是否运行的问题

问题:STM8L052芯片在停机halt模式下RTC还能够正常运行吗?现在的情况是运行状态RTC时钟运行正常,但是进入停机状态后发现定时没有正常走。

toofree 发表于 2019-9-25 18:22:57

手册上说,halt模式是RTC是不工作的,除此之外的其它模式,RTC都可以正常工作。






zykzyk-93033 发表于 2019-9-26 08:51:26

经过进一步观察,发现是进入halt模式唤醒后,不能正常读取时间数据,软件复位后,是可以读取时间的,且时间是在halt模式下载运行的。难不成要想正常唤醒后读取必须采用活跃停机模式?

zykzyk-93033 发表于 2019-9-26 12:03:02

toofree 发表于 2019-9-25 18:22
手册上说,halt模式是RTC是不工作的,除此之外的其它模式,RTC都可以正常工作。




但是是数据手册上有这么一段描述:As long as the supply voltage is maintained in the operating range, the RTC never stops,regardless of the MCU status (Run mode, low power mode or under reset).

大概意思:只要电源电压保持在工作范围内,RTC就不会停止,而不管MCU状态(运行模式、低功耗模式或处于复位状态)。

toofree 发表于 2019-9-26 12:32:49

zykzyk-93033 发表于 2019-9-26 12:03
但是是数据手册上有这么一段描述:As long as the supply voltage is maintained in the operating range ...

不懂球的了,手册总是写的这么让人费解。最终还是以实验结果为准吧

zykzyk-93033 发表于 2019-9-26 13:58:21

toofree 发表于 2019-9-26 12:32
不懂球的了,手册总是写的这么让人费解。最终还是以实验结果为准吧

是的。现在的情况是从halt唤醒后,不能正确读取时间数据,卡死在如下语句这里:        while (RTC_WaitForSynchro() != SUCCESS){}   如果启用了软件狗,在这里软件狗不进行喂狗复位后是可以正确读取时间数据的。 就是从halt唤醒后,不能正确读取时间数据。

butterflyspring 发表于 2019-9-29 18:29:55

个人理解是在HALT模式下,开启低速时钟运行RTC 叫做“active halt”. 从测试结果看,唤醒后读取时钟是要按一定的方式才能读到,因为总线时钟的差异。所以楼主检查一下,唤醒后系统时钟是否恢复成高速,同时估测一下读取时钟要耗费多少时间再决定看门狗的处理吧:)
页: [1]
查看完整版本: 关于STM8L052芯片在停机halt模式下RTC是否运行的问题