打印
[技术问答]

HC32L190 SysTick能在低功耗下运行吗?

[复制链接]
楼主: lee8871
手机看帖
扫描二维码
随时随地手机跟帖
21
lzmm| | 2024-12-10 13:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
可以使用低功耗定时器将芯片从深度睡眠模式中唤醒。

使用特权

评论回复
22
earlmax| | 2024-12-10 14:04 | 只看该作者
HC32L190的SysTick可以使用外部低速晶振作为时钟源,这意味着这个定时器可以在低功耗休眠时期继续工作,并且可以唤醒MCU。

使用特权

评论回复
23
loutin| | 2024-12-10 14:36 | 只看该作者
HC32L190系列微控制器提供了多种工作模式以适应不同的应用场景,其中深度睡眠模式(Deep Sleep Mode)是其低功耗特性之一

使用特权

评论回复
24
pentruman| | 2024-12-10 15:05 | 只看该作者
SysTick 是基于系统时钟的定时器,虽然主时钟运行,但 HC32L190 的相关文档中未明确提及 SysTick 在该模式下能否正常运行以及是否有相关的低功耗配置

使用特权

评论回复
25
bestwell| | 2024-12-10 15:41 | 只看该作者
将 SysTick 的时钟源切换到一个可以在低功耗模式下保持运行的时钟源,比如内部低速 RC 振荡器(LSI)或者外部低速晶振(LSE)。这一步骤非常重要,因为并非所有的时钟源都能在所有类型的低功耗模式下持续提供时钟信号。

使用特权

评论回复
26
pl202| | 2024-12-10 16:13 | 只看该作者
HC32L190 有 2 个低功耗 16 位定时器和 1 个超低功耗脉冲计数器 PCNT,这些定时器在低功耗模式下具有自动定时唤醒功能,可作为在低功耗场景下实现定时功能的替代方案,并且在低功耗模式下的运行和功耗特性有明确的说明和保障.

使用特权

评论回复
27
vivilyly| | 2024-12-10 18:07 | 只看该作者
启用低功耗模式需要关闭SYSTICK计时器的运作。

使用特权

评论回复
28
mmbs| | 2024-12-10 18:36 | 只看该作者
HC32L190的深度休眠模式下,虽然大部分时钟被关闭,但某些外设仍然可以工作,包括一些低功耗的通讯接口(如LPUART)和定时器。

使用特权

评论回复
29
janewood| | 2024-12-10 20:00 | 只看该作者
进入低功耗模式所需的寄存器设置,同时保证这些设置不会影响到 SysTick 的操作。

使用特权

评论回复
30
uiint| | 2024-12-11 18:40 | 只看该作者
如果SysTick在低功耗模式下仍然需要运行,可能需要将其配置为使用低功耗时钟源

使用特权

评论回复
31
bartonalfred| | 2024-12-11 19:37 | 只看该作者
MCU进入低功耗休眠模式时,如果SysTick定时器被配置为使用外部低速晶振,它仍然可以继续工作。

使用特权

评论回复
32
ccook11| | 2024-12-11 20:05 | 只看该作者
在低功耗模式下,MCU的某些外设可能会停止工作,以降低功耗

使用特权

评论回复
33
mollylawrence| | 2024-12-11 22:49 | 只看该作者
若 SysTick 的时钟源配置为该低速时钟,且没有超出其工作频率范围等限制条件,理论上 SysTick 是可以运行的,但同样缺乏明确的官方文档说明其在该模式下的具体运行及功耗情况.

使用特权

评论回复
34
Sam131208| | 2024-12-12 09:19 | 只看该作者
lee8871 发表于 2024-12-7 19:11
我目前需要做的是低功耗无线通信。需要定时器的目标是:
有一个比较匹配中断能唤醒休眠,能够不间断运行, ...

   HC32L系列估计不适合你这个要求,低功耗定时器在深度睡眠模式下,设定触发有延迟,这个延迟是不确定的(延迟3个lxtl时钟以上),无法精确到1个LXTL时钟。
   GD32L233可能更适合,有一个32bit的低功耗定时器,不过还没有确定是否有延迟,以及延迟是否固定(固定的延迟可以补偿, 每次唤醒最多误差几个LXTL时钟, 而且误差不会累积)。
   个人认为,无线通信,恐怕nordic更合适你的这个应用。定时器也适合你的应用要求。

使用特权

评论回复
35
lee8871|  楼主 | 2024-12-12 11:16 | 只看该作者
Sam131208 发表于 2024-12-12 09:19
HC32L系列估计不适合你这个要求,低功耗定时器在深度睡眠模式下,设定触发有延迟,这个延迟是不确定的 ...

多谢了。
HC的低功耗唤醒时间,标称值是4us。

相对与32.768kHz晶振,一个周期是30us左右,这个延迟还是可以接受的。
当然后面还有射频启动,也需要时间。
选这个芯片,我是经过了调研了的,出问题的地方就是这个:

这个表没提系统定时器,深度休眠既没有说能工作,也没有说不能工作。
但是Systick能用低功耗晶振作为时钟输入:

所以还是手册没写清楚,被坑了。



使用特权

评论回复
36
wangdezhi| | 2024-12-12 11:21 | 只看该作者
这需要查阅具体的MCU手册              

使用特权

评论回复
37
beacherblack| | 2024-12-12 11:50 | 只看该作者
在低功耗模式下不能运行。              

使用特权

评论回复
38
phoenixwhite| | 2024-12-12 12:25 | 只看该作者
所有时钟关闭,SysTick 自然无法运行,因为 SysTick 的正常工作依赖于系统时钟.

使用特权

评论回复
39
uiint| | 2024-12-12 12:54 | 只看该作者
HC32L190系列MCU具有灵活的功耗管理系统和超低功耗性能,其SysTick定时器可以使用外部低速晶振(XTL)作为时钟源。

使用特权

评论回复
40
lee8871|  楼主 | 2024-12-12 13:19 | 只看该作者
本帖最后由 lee8871 于 2024-12-12 14:48 编辑
Sam131208 发表于 2024-12-12 09:19
HC32L系列估计不适合你这个要求,低功耗定时器在深度睡眠模式下,设定触发有延迟,这个延迟是不确定的 ...

根据你的提醒,我针对休眠时间误差做了实验。没有发现你说的这个延迟是不确定的(延迟3个lxtl时钟以上),无法精确到1个LXTL时钟。根据实验现象,使用Lptimer唤醒,定时时间长度确定性正常,误差范围合理。
具体的程序如下:

由此我可以用逻辑分析仪采集输出信号。

逻辑分析仪可以输出这些数据到Excel进行分析:

根据我的分析,定时时间的标准差为8.7uS,从-15uS到正15uS,完美符合32.768KHz晶振的周期(约30uS)。对误差进行统计,误差基本呈线性分布,没有发现集中在特别的值上。


对于32.768KHz晶振而言,这个实验结果是非常合理的,这些误差来自不可避免的定时器开始时刻误差,除非提高32.768KHz的频率,否则理论上无法避免。
具体来说,这个误差的产生原因程序启动定时器的时刻,XTL不可能刚好完成一个周期,而是距离下次信号有随机的小于一周期的时间。



使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则