久芯网

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

avatar TristanTsai 提问时间: 2023-06-29 20:14:49 / 未解决

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

实际测试的时候发现

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

STM32WB55能否使用HSI作为系统时钟 [相关图片]

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

shciContext.io.Send(0,0);

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

STM32WB55能否使用HSI作为系统时钟 [相关图片]

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


如需获得 STM32WB55 等器件的更多信息,请点击链接或 点击此处 联系在线客服!

14个回答
  • avatar butterflyspring
    回答时间: 2023-06-29 20:32:57

    楼主为什么会要做时钟切换呢? HSI精度不高。对于BLE的性能会有影响的,会影响距离和连接稳定性。 通常为了RF有好的性能,都是建议用HSE时钟的。

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

    因为希望有更低的功耗,对工作电流要求比较高。 RF部分用HSE这个可以理解,但是系统时钟是否可以用HSI

  • avatar TristanTsai
    回答时间: 2023-06-29 21:24:02

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

  • avatar butterflyspring
    回答时间: 2023-06-29 21:41:14

    目前从时钟树结构上看,通路是可以的,没看到什么限制条件。 所以最好调试看,具体(上层函数)哪一部分被切换回来的。 另外,从另一个角度看,RF部分始终连接并使用HSE,既然HSE已经工作了,再用HSI做系统时钟,能省电流么?

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

    具体哪里切换因为我也没看到,所以想在这里请教。 关于能否省功耗,我举个例子,如果广播周期是5000mS,这5000mS的周期只有在广播的时候HSE才被需要。而业务用到的M4核需要100mS定时做一次,那么如果M4使用HSI是不是比使用HSE能省功耗了?

  • avatar butterflyspring
    回答时间: 2023-06-29 22:32:30

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

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

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

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

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

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

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

  • avatar TristanTsai
    回答时间: 2023-06-30 00:13:56
    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。不知道我的理解对不对

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

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

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

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

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

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

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

    既然这样,CPU2为何不跟RF一样,固定使用HSE就好了,CPU2只跑RF协议,而RF系统又只能HSE。 希望能有确切的材料/资料证明你的认为和这些现象 很感谢耐心你的指导的

会员中心 微信客服
客服
回到顶部