主题:C2000WARE 中讨论的其他器件
工具/软件:
问题现象:I2C 模块的 Thfe SCL 频率 小于预期值。 I2C 模块为 10MHz。 根据测试数据、总时间比 10MHz 长 0.1us。 验证了参考手册的配置。 信号频率在 80kHz 时为 1/(2.5us+0.1us)=79.37khz、在 400kHz 时为 1/(12.5us+0.1us)=384.62khz。
【下图】配置 80kHz 的 I2C 时钟频率参数

【下图】当 I2C 时钟频率为 80kHz 时、测量值为 79.37khz

【下图】配置 400kHz 的 I2C 时钟频率参数

【下图】当 I2C 时钟频率为 400kHz 时、测量值为 384.62khz

咨询问题: 
1. I2C 时钟频率小于预期值、这是正常现象、对吧? 
2.对于这种现象,您可以更改参数配置以使 I2C 时钟频率符合预期。 当更改为实际的 400kHz 时、它实际上对应于手册中的 417khz 配置、这超出了手册中描述的 400kHz 最大 I2C 时钟频率的限制。 您可以这样使用它吗? 
【下图】配置实际 I2C 时钟频率为 400kHz 的参数 

【下图】测得的 I2C 时钟频率为 400kHz

特别是、我更改了用于测试的 I2C 时钟频率、在 8MHz 和 12MHz 时偏差甚至更大。 我想确认这种现象是否正常? 恐怕我没有正确配置它、但仔细阅读手册后没有发现任何问题。

测试例程路径: \ti\c2000\C2000Ware_5_02_00_00\driverlib\f28003x\examples\i2c\i2c_ex2_eeprom.c
此外、我的文章中还给出了计算 SCL 信号频率所涉及的三个参数。 以 I2C 模块时钟 10MHz 和 SCL 信号频率 400kHz 作为示例:i2caregs.i2cpsc.all 为 11、i2caregs.i2cclkl 为 8、i2caregs.i2cclkh 为 7、则理论 SCL 信号频率为 120MHz /{(IPSC + 1)[(ICCL + 5)+(ICCH + 5)]= 120MHz /{7 + 5)[+ 1 + 4。]

				
