STM32H7的硬件I2C fast mode 速度不能到400K?
STM32H7的硬件I2C HAL库 cubemx配置的400K的速度 逻辑分析仪实测只有大约280K左右 这是什么鬼?我在设定系统时钟为200Mhz时,I2C 的timing是0x009034B6.你的设定是什么?你的逻辑分析仪的采集频率调高一点?可以还是用示波器看一下 本帖最后由 onev 于 2018-8-29 15:21 编辑
butterflyspring 发表于 2018-8-29 14:59
我在设定系统时钟为200Mhz时,I2C 的timing是0x009034B6.你的设定是什么?你的逻辑分析仪的采集频率调高一点? ...
你的是这样配置的吧?!
逻辑分析仪没有问题 12M和24M都一样的
你的速度实测是400K?
本帖最后由 onev 于 2018-8-29 16:22 编辑
还是自己设置的问题,看了ST的例程,改了timing,OK了现在是标准的400K
你的APB1CLK 是不是 100 MHz?如果是,你试一下Timing = 0x00901954, 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死活配不出这个值来
如果设计的好的话,可以上Gbps,看来还是设计问题,Timing 的设置 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,这是为什么呢? onev 发表于 2018-8-30 11:02
CUBEMX如何配置才能得到timing:0x00901954?
按ST例程里面的:
/* I2C TIMING Register define when I2C ...
也许是一个bug,我问问看,谢谢反馈 butterflyspring 发表于 2018-8-30 17:13
也许是一个bug,我问问看,谢谢反馈
好的多谢
你能不能也配置一下看看,以确保不是我配置上的问题
页:
[1]