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

STM32WB55能否使用HSI作为系统时钟

[复制链接]
TristanTsai 提问时间:2023-6-8 17:31 / 未解决

在开启广播的情况下,能否不适用HSE,而使用HSI作为系统时钟?

实际测试的时候发现

我将系统时钟配置为HSI,也配置成功,如下图

image.png

但是一旦执行完上图中的下面语句

shciContext.io.Send(0,0);

之后系统时钟的配置就变成了HSE了

image.png

这样就会造成FreeRTOS的tick周期出错。请ST的专家帮忙看看。万分感谢

收藏 评论14 发布时间:2023-6-8 17:31

举报

14个回答
butterflyspring 回答时间:2023-6-9 12:09:04
楼主为什么会要做时钟切换呢?
HSI精度不高。对于BLE的性能会有影响的,会影响距离和连接稳定性。
通常为了RF有好的性能,都是建议用HSE时钟的。
TristanTsai 回答时间:2023-6-9 13:44:52

butterflyspring 发表于 2023-6-9 12:09
楼主为什么会要做时钟切换呢?
HSI精度不高。对于BLE的性能会有影响的,会影响距离和连接稳定性。
通常为了 ...

因为希望有更低的功耗,对工作电流要求比较高。

RF部分用HSE这个可以理解,但是系统时钟是否可以用HSI

TristanTsai 回答时间:2023-6-10 10:06:16

另外,这个切换不是我要切换的,我是想mcu特别是m4内核一直使用hsi即可

butterflyspring 回答时间:2023-6-12 11:58:36
目前从时钟树结构上看,通路是可以的,没看到什么限制条件。
所以最好调试看,具体(上层函数)哪一部分被切换回来的。

另外,从另一个角度看,RF部分始终连接并使用HSE,既然HSE已经工作了,再用HSI做系统时钟,能省电流么?
TristanTsai 回答时间:2023-6-12 16:24:04

butterflyspring 发表于 2023-6-12 11:58
目前从时钟树结构上看,通路是可以的,没看到什么限制条件。
所以最好调试看,具体(上层函数)哪一部分被 ...

具体哪里切换因为我也没看到,所以想在这里请教。

关于能否省功耗,我举个例子,如果广播周期是5000mS,这5000mS的周期只有在广播的时候HSE才被需要。而业务用到的M4核需要100mS定时做一次,那么如果M4使用HSI是不是比使用HSE能省功耗了?

butterflyspring 回答时间:2023-6-12 17:33:33
如果仅仅偶尔广播一下,大部分时间CPU1工作,这种场景下看起来是可以省一点电的。
不过开启广播是,RF电路自动选择HSE时钟,这时由于CPU2也要时钟跑相关的代码,所以猜测CPU2也要将HSE也设为系统时钟,这个应该是不能改变的。所以这段时间是不能优化的。
STM32WB55 CLOCK work RF.PNG

TristanTsai 回答时间:2023-6-12 17:52:18

butterflyspring 发表于 2023-6-12 17:33
如果仅仅偶尔广播一下,大部分时间CPU1工作,这种场景下看起来是可以省一点电的。
不过开启广播是,RF电路 ...

但从这张时钟图中看起来,好像SYSCLK跟RF的时钟之间并没有绑定或者跟随关系?

butterflyspring 回答时间:2023-6-13 09:56:10

TristanTsai 发表于 2023-6-12 17:52
但从这张时钟图中看起来,好像SYSCLK跟RF的时钟之间并没有绑定或者跟随关系?
...

RF电路和CPU2这时要工作,而供给CPU2的HCLK2 是来自与系统时钟,所以此时应该都设置为HSE了。

TristanTsai 回答时间:2023-6-14 10:36:48
butterflyspring 发表于 2023-6-13 09:56
RF电路和CPU2这时要工作,而供给CPU2的HCLK2 是来自与系统时钟,所以此时应该都设置为HSE了。
...

这个图中,RF这条路是指定HSE的,而CPU2时钟SYSCLK,跟RF这条路没有绑定关系吧?我看从连线关系上,是可以不用HSE,而使用HSI的,你看这图里面红色部分走线,是指定HSE,但是CPU2则由SYSCLK来决定使用的哪个时钟源,没有必须要用HSE。所以我的理解他们是相互独立的,不知理解对不对

TristanTsai 回答时间:2023-6-14 10:43:54

butterflyspring 发表于 2023-6-13 09:56
RF电路和CPU2这时要工作,而供给CPU2的HCLK2 是来自与系统时钟,所以此时应该都设置为HSE了。
...

从这张时钟树的图中看起来,RF部分(红色画线)是指定要红HSE,这个没问题,能理解;但是CPU2的时钟是SYSCLK(蓝色画线),这个可以由SYS clock source control来决定来自哪个时钟源,其中就包括了HSE,也包括了HSI。所以我的理解,即使RF使用,那么RF跟CPU2之间的时钟也是相互独立的,并没有绑定关系,CPU2能指定使用HSI。不知道我的理解对不对

image.png

butterflyspring 回答时间:2023-6-14 11:08:59
TristanTsai 发表于 2023-6-14 10:43
[md]从这张时钟树的图中看起来,RF部分(红色画线)是指定要红HSE,这个没问题,能理解;但是CPU2的时钟 ...

CPU2是跑协议并控制RF部分的电路。CPU2的时钟如果和RF电路不一致,控制上就会产生异步事件,那么就无法准确的驱动RF电路工作。所以我认为CPU2的软件应该将他们设置成统一时钟源才能正常工作。
从楼主调试的现象上看,也是这样的一个结果。
TristanTsai 回答时间:2023-6-14 13:38:15

butterflyspring 发表于 2023-6-14 11:08
CPU2是跑协议并控制RF部分的电路。CPU2的时钟如果和RF电路不一致,控制上就会产生异步事件,那么就无法准 ...

能找到对应的官方资料佐证这个说法吗?

TristanTsai 回答时间:2023-6-14 13:46:11

butterflyspring 发表于 2023-6-14 11:08
CPU2是跑协议并控制RF部分的电路。CPU2的时钟如果和RF电路不一致,控制上就会产生异步事件,那么就无法准 ...

非常感谢你耐心帮忙解答,不过我希望能有材料能佐证这个说法,不然仅从认为和现象,以及从用户指南文档上的这个时钟树,我并不认同这个说法

TristanTsai 回答时间:2023-6-14 13:56:27

butterflyspring 发表于 2023-6-14 11:08
CPU2是跑协议并控制RF部分的电路。CPU2的时钟如果和RF电路不一致,控制上就会产生异步事件,那么就无法准 ...

既然这样,CPU2为何不跟RF一样,固定使用HSE就好了,CPU2只跑RF协议,而RF系统又只能HSE。

希望能有确切的材料/资料证明你的认为和这些现象

很感谢耐心你的指导的

所属标签

相似问题

官网相关资源

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