你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F4 freeRTOS 停止模式,休眠时间计算问题

[复制链接]
nbh520 提问时间:2017-10-20 16:47 /
目前正在使用STM32F4系列芯片,操作系统选择freeRTOS。

在freeRTOS低功耗休眠时,选择停止模式,降低功耗,停止模式唤醒后,需要计算休眠时间,同步至freeRTOS时间。


现在的问题就是如何计算停止模式期间的休眠时间,由于停止模式下,MCU内核、高速时钟停止,所有MCU的定时器、计数器(时钟源使用的是高速时钟)均无法使用,而芯片的参考手册中表明MCU没有使用低速时钟源的计数器。

想请教,诸位大神有没有高招,指点一下小弟。
赞 收藏 评论4 发布时间:2017-10-20 16:47

举报

4个回答
nbh520 回答时间:2017-10-23 18:11:26

为了实现低速定时器的功能,我想到了一个解决方案:
1、将通用定时器的时钟源配置为外部时钟模式 2:外部触发输入 (ETR)
2、利用MCU的时钟输出功能将LSE时钟输出到MCO引脚
3、将MCO引脚连接至定时器的外部输入ETR

这样做的目的是为了避免在停止模式下,高速时钟关闭的情况下,无法给TIMER提供时钟,这个方法理论上是可行的,解决了定时器计数器的时钟问题。
但是我在测试验证的时候发现,MCU进入停止模式后,计数器也停止了,还是无法使用。

诸位大神看看,有没有什么想法,大家交流交流。
lqh-414236 回答时间:2017-10-24 16:30:54

stm32三种低功耗模式

stm32三种低功耗模式

三种低功耗的模式,你说的是停机模式,很明显HSI和HSE都关闭了!你说的方案根本行不通!
如果用睡眠模式,还以搞定。如果非得用停止,那就必须借助其他外设来计时,比如时钟芯片等。

评分

参与人数 1ST金币 +3 收起 理由
zero99 + 3

查看全部评分

nbh520 回答时间:2017-10-24 18:21:47
lqh-414236 发表于 2017-10-24 16:30
三种低功耗的模式,你说的是停机模式,很明显HSI和HSE都关闭了!你说的方案根本行不通!
如果用睡眠模式, ...

是的,虽然将定时器的时钟切换为外部时钟,但那只是用于提供计数,定时器的硬件框架还是需要高速时钟支持,才能正常使用。
至于说外接时钟芯片来获取停机模式下的休眠时间,也有考虑,只不过市面上的时钟芯片大都数提供RTC时间,具体到毫秒级甚至微秒级的时钟芯片很少,且价格很贵。
再者说,外接一个时钟芯片来做这样的功能,总感觉这样的设计,怎么看,怎么奇葩。
shuihehe 回答时间:2018-8-31 14:54:26
用了rtos 还想低功耗 建议你看看tickless

评分

参与人数 1蝴蝶豆 +1 收起 理由
zero99 + 1

查看全部评分

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版