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

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

<br /> <br />

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

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

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

关于能否省功耗,我举个例子,如果广播周期是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

<br /> <br />

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

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

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

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

<br /> <br />

从这张时钟树的图中看起来,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

<br /> <br />

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

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

<br /> <br />

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

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

<br /> <br />

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

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

很感谢耐心你的指导的

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版