SUPER_CRJ 发表于 2022-11-2 14:56:05

STM32G0B1的CAN FD时钟能不能超过最大的64MHZ时钟

如题!
STM32G0B1规定:HCLK与PCLK的时钟最大:64MHZ。
其中:HCLK是M0+内核运行的时钟,PCLK是外设的时钟。
但是:CAN FD模块可以有三个时钟源:PCLK / PLLQ / HSE,其中PLLQ可以达到:128M时钟。

问题:FDCAN可以选择:PLLQ作为时钟,那么可以使用PLLQ最大的128M作为FDCAN的时钟吗?或者说:可以用PLLQ产生的80MHZ时钟吗?
因为:查看手册和CUBE-MX都没有说:不允许使用超过64MHZ的频率。

PS:我发现STM32G431和STM32G0B1使用的CAN FD外设一模一样,G431我用了80M时钟的频率。

wye11083 发表于 2022-11-2 18:56:27

尽量不要超过手册规定,那个是保证的可靠运行的最高频率。超过这个频率在一定的条件下(电压/电流/温度/干扰)可能会出现时序违规,出现数据错误、卡死等异常情况。

kitten 发表于 2022-11-2 19:42:08

cubemx配置一下就知道了

SUPER_CRJ 发表于 2022-11-3 14:39:26

kitten 发表于 2022-11-2 19:42
cubemx配置一下就知道了
(引用自3楼)

是可以配置到最大172Mhz都不报错的!

SUPER_CRJ 发表于 2022-11-3 14:45:15

wye11083 发表于 2022-11-2 18:56
尽量不要超过手册规定,那个是保证的可靠运行的最高频率。超过这个频率在一定的条件下(电压/电流/温度/干 ...
(引用自2楼)

这个知道的。
但是手册一直只规定几个时钟的值不能超过,所以想找到官方严谨的表明。要不我也不会使用的。因为正好FDCAN的80MHZ的波特率好计算。所以想到了这个问题。

wye11083 发表于 2022-11-3 14:59:01

SUPER_CRJ 发表于 2022-11-3 14:45
这个知道的。
但是手册一直只规定几个时钟的值不能超过,所以想找到官方严谨的表明。要不我也不会使用的 ...
(引用自5楼)

这个就是标准说明。芯片设计时按照这个指标p&r,超了不保证。

kitten 发表于 2022-11-3 15:16:11

SUPER_CRJ 发表于 2022-11-3 14:39
是可以配置到最大172Mhz都不报错的!
(引用自4楼)

不报错就放心用好了,cubemx还是靠谱的。

SUPER_CRJ 发表于 2022-11-3 16:19:21

wye11083 发表于 2022-11-3 14:59
这个就是标准说明。芯片设计时按照这个指标p&r,超了不保证。
(引用自6楼)

找了一下午的手册。还是没有找到。
看了FD的模块:
有APB clock domain时钟部分和Kernel clock domain。
实际是想:Kernel clock domain部分能不能高于64MHZ。但是找了一下午没有找到。原因是:G4用的G0的完全一样,G4的可以达到170MHZ,那么G0就算APB达不到,Kernel clock domain也应该可以达到。
当然,没有找到实际说明前,我也不敢贸然使用。

SUPER_CRJ 发表于 2022-11-3 16:22:02

kitten 发表于 2022-11-3 15:16
不报错就放心用好了,cubemx还是靠谱的。
(引用自7楼)

找了一下午手册,一直没有找到。比较纠结。实测是可以使用的。

wye11083 发表于 2022-11-3 16:38:46

SUPER_CRJ 发表于 2022-11-3 16:19
找了一下午的手册。还是没有找到。
看了FD的模块:
有APB clock domain时钟部分和Kernel clock domain。
(引用自8楼)

如果是按这张图,fdcan_clk->CKDIV->tq_ck的话,那么接128M是没有问题的,分频配置好就行了。这就是个divider而已,你哪怕给到1GHz它照样能正常工作,只要tq_ck满足要求即可。所以原则上fdcan_clk/CKDIV<=64MHz就可以了。
页: [1]
查看完整版本: STM32G0B1的CAN FD时钟能不能超过最大的64MHZ时钟