[技术问答] HC32L190 SysTick能在低功耗下运行吗?

[复制链接]
9282|69
lzmm 发表于 2024-12-10 13:32 | 显示全部楼层
可以使用低功耗定时器将芯片从深度睡眠模式中唤醒。
earlmax 发表于 2024-12-10 14:04 | 显示全部楼层
HC32L190的SysTick可以使用外部低速晶振作为时钟源,这意味着这个定时器可以在低功耗休眠时期继续工作,并且可以唤醒MCU。
loutin 发表于 2024-12-10 14:36 | 显示全部楼层
HC32L190系列微控制器提供了多种工作模式以适应不同的应用场景,其中深度睡眠模式(Deep Sleep Mode)是其低功耗特性之一
pentruman 发表于 2024-12-10 15:05 | 显示全部楼层
SysTick 是基于系统时钟的定时器,虽然主时钟运行,但 HC32L190 的相关文档中未明确提及 SysTick 在该模式下能否正常运行以及是否有相关的低功耗配置
bestwell 发表于 2024-12-10 15:41 | 显示全部楼层
将 SysTick 的时钟源切换到一个可以在低功耗模式下保持运行的时钟源,比如内部低速 RC 振荡器(LSI)或者外部低速晶振(LSE)。这一步骤非常重要,因为并非所有的时钟源都能在所有类型的低功耗模式下持续提供时钟信号。
pl202 发表于 2024-12-10 16:13 | 显示全部楼层
HC32L190 有 2 个低功耗 16 位定时器和 1 个超低功耗脉冲计数器 PCNT,这些定时器在低功耗模式下具有自动定时唤醒功能,可作为在低功耗场景下实现定时功能的替代方案,并且在低功耗模式下的运行和功耗特性有明确的说明和保障.
vivilyly 发表于 2024-12-10 18:07 | 显示全部楼层
启用低功耗模式需要关闭SYSTICK计时器的运作。
mmbs 发表于 2024-12-10 18:36 | 显示全部楼层
HC32L190的深度休眠模式下,虽然大部分时钟被关闭,但某些外设仍然可以工作,包括一些低功耗的通讯接口(如LPUART)和定时器。
janewood 发表于 2024-12-10 20:00 | 显示全部楼层
进入低功耗模式所需的寄存器设置,同时保证这些设置不会影响到 SysTick 的操作。
uiint 发表于 2024-12-11 18:40 | 显示全部楼层
如果SysTick在低功耗模式下仍然需要运行,可能需要将其配置为使用低功耗时钟源
bartonalfred 发表于 2024-12-11 19:37 | 显示全部楼层
MCU进入低功耗休眠模式时,如果SysTick定时器被配置为使用外部低速晶振,它仍然可以继续工作。
ccook11 发表于 2024-12-11 20:05 | 显示全部楼层
在低功耗模式下,MCU的某些外设可能会停止工作,以降低功耗
mollylawrence 发表于 2024-12-11 22:49 | 显示全部楼层
若 SysTick 的时钟源配置为该低速时钟,且没有超出其工作频率范围等限制条件,理论上 SysTick 是可以运行的,但同样缺乏明确的官方文档说明其在该模式下的具体运行及功耗情况.
Sam131208 发表于 2024-12-12 09:19 | 显示全部楼层
lee8871 发表于 2024-12-7 19:11
我目前需要做的是低功耗无线通信。需要定时器的目标是:
有一个比较匹配中断能唤醒休眠,能够不间断运行, ...

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

多谢了。
HC的低功耗唤醒时间,标称值是4us。
13083675a53504f5f6.png
相对与32.768kHz晶振,一个周期是30us左右,这个延迟还是可以接受的。
当然后面还有射频启动,也需要时间。
选这个芯片,我是经过了调研了的,出问题的地方就是这个:
87422675a54b93c708.png
这个表没提系统定时器,深度休眠既没有说能工作,也没有说不能工作。
但是Systick能用低功耗晶振作为时钟输入:
5121675a552a58fa0.png
所以还是手册没写清楚,被坑了。



wangdezhi 发表于 2024-12-12 11:21 | 显示全部楼层
这需要查阅具体的MCU手册              
beacherblack 发表于 2024-12-12 11:50 | 显示全部楼层
在低功耗模式下不能运行。              
phoenixwhite 发表于 2024-12-12 12:25 | 显示全部楼层
所有时钟关闭,SysTick 自然无法运行,因为 SysTick 的正常工作依赖于系统时钟.
uiint 发表于 2024-12-12 12:54 | 显示全部楼层
HC32L190系列MCU具有灵活的功耗管理系统和超低功耗性能,其SysTick定时器可以使用外部低速晶振(XTL)作为时钟源。
 楼主| lee8871 发表于 2024-12-12 13:19 | 显示全部楼层
本帖最后由 lee8871 于 2024-12-12 14:48 编辑
Sam131208 发表于 2024-12-12 09:19
HC32L系列估计不适合你这个要求,低功耗定时器在深度睡眠模式下,设定触发有延迟,这个延迟是不确定的 ...

根据你的提醒,我针对休眠时间误差做了实验。没有发现你说的这个延迟是不确定的(延迟3个lxtl时钟以上),无法精确到1个LXTL时钟。根据实验现象,使用Lptimer唤醒,定时时间长度确定性正常,误差范围合理。
具体的程序如下:
17956675a6d71de26e.png
由此我可以用逻辑分析仪采集输出信号。
33629675a6d953a6e5.png
逻辑分析仪可以输出这些数据到Excel进行分析:
36505675a6dc0add33.png
根据我的分析,定时时间的标准差为8.7uS,从-15uS到正15uS,完美符合32.768KHz晶振的周期(约30uS)。对误差进行统计,误差基本呈线性分布,没有发现集中在特别的值上。
24084675a6f09dd81b.png

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



您需要登录后才可以回帖 登录 | 注册

本版积分规则

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