onev 发表于 2018-8-29 14:48:35

STM32H7的硬件I2C fast mode 速度不能到400K?

STM32H7的硬件I2C HAL库 cubemx配置的400K的速度 逻辑分析仪实测只有大约280K左右 这是什么鬼?

butterflyspring 发表于 2018-8-29 14:59:05

我在设定系统时钟为200Mhz时,I2C 的timing是0x009034B6.你的设定是什么?你的逻辑分析仪的采集频率调高一点?可以还是用示波器看一下

onev 发表于 2018-8-29 15:14:51

本帖最后由 onev 于 2018-8-29 15:21 编辑

butterflyspring 发表于 2018-8-29 14:59
我在设定系统时钟为200Mhz时,I2C 的timing是0x009034B6.你的设定是什么?你的逻辑分析仪的采集频率调高一点? ...

你的是这样配置的吧?!



逻辑分析仪没有问题    12M和24M都一样的



你的速度实测是400K?





onev 发表于 2018-8-29 16:20:23

本帖最后由 onev 于 2018-8-29 16:22 编辑


还是自己设置的问题,看了ST的例程,改了timing,OK了现在是标准的400K




butterflyspring 发表于 2018-8-29 16:32:50

你的APB1CLK 是不是 100 MHz?如果是,你试一下Timing = 0x00901954,

onev 发表于 2018-8-29 17:05:00

butterflyspring 发表于 2018-8-29 16:32
你的APB1CLK 是不是 100 MHz?如果是,你试一下Timing = 0x00901954,

是的
“板凳”位的图就是我的时钟,100M.

0x00901954这个timing是ST例程里面的:
/* I2C TIMING Register define when I2C clock source is APB1 (SYSCLK/4) */
/* I2C TIMING is calculated in case of the I2C Clock source is the APB1CLK = 100 MHz */
/* This example use TIMING to 0x00901954 to reach 400 kHz speed (Rise time = 100 ns, Fall time = 10 ns) */

我也是设置成这个值就正常了,
但是,我用cubemx死活配不出这个值来

feixiang20 发表于 2018-8-30 01:22:04

如果设计的好的话,可以上Gbps,看来还是设计问题,Timing 的设置

onev 发表于 2018-8-30 11:02:56

feixiang20 发表于 2018-8-30 01:22
如果设计的好的话,可以上Gbps,看来还是设计问题,Timing 的设置

CUBEMX如何配置才能得到timing:0x00901954?
按ST例程里面的:
/* I2C TIMING Register define when I2C clock source is APB1 (SYSCLK/4) */
/* I2C TIMING is calculated in case of the I2C Clock source is the APB1CLK = 100 MHz */
/* This example use TIMING to 0x00901954 to reach 400 kHz speed (Rise time = 100 ns, Fall time = 10 ns) */
并不能得到timing:0x00901954,这是为什么呢?

butterflyspring 发表于 2018-8-30 17:13:19

onev 发表于 2018-8-30 11:02
CUBEMX如何配置才能得到timing:0x00901954?
按ST例程里面的:
/* I2C TIMING Register define when I2C ...

也许是一个bug,我问问看,谢谢反馈

onev 发表于 2018-8-30 17:37:56

butterflyspring 发表于 2018-8-30 17:13
也许是一个bug,我问问看,谢谢反馈

好的多谢

你能不能也配置一下看看,以确保不是我配置上的问题
页: [1]
查看完整版本: STM32H7的硬件I2C fast mode 速度不能到400K?