This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28069M:如何为 Motorware 中的 I2C 模块设置100kbps

Guru**** 2524550 points
Other Parts Discussed in Thread: CC2650, CONTROLSUITE

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/721050/tms320f28069m-how-to-set-100kbps-for-i2c-module-in-motorware

器件型号:TMS320F28069M
Thread 中讨论的其他器件:CC2650controlSUITE

尊敬的 TI 成员:

我尝试通过 I2C 在 F28069和 CC2650之间进行通信

我已根据 controlSUITE 示例初始化 I2C 模块 、如下所示。

void I2C_setup (I2C_Handle i2cHandle)
{

i2cHandle->I2CPSC.all = 6; //预分频器-模块时钟需要7~12 MHz
i2cHandle->I2CCLKL = 10; //注意:必须为非零
i2cHandle->I2CCLKH = 5; //注意:必须为非零

i2cHandle->I2CIER.ALL = 0x00; //无中断

i2cHandle->I2CMDR.ALL = 0x0020;

i2cHandle->I2CFFTX.ALL = 0x6000; //启用 FIFO 模式和 TXFIFO
i2cHandle->I2CFFRX.ALL = 0x2040; //启用 RXFIFO,清除 RXFFINT
} 

正如我用示波器检查的那样、通信速度似乎在500kbps 左右。

我想将速度降低到100kbps,如何更改设置?

系统时钟为90MHz。

此致、

Hae Ryong

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Hhi Hae Ryong、

    TRM 中的第14.5.7节"I2C 时钟分频器寄存器(I2CCLKL 和 I2CCLKH)"将对您有用:

    http://www.ti.com/lit/spruh18

    在 IPSC = 6的情况下、I2C 模块时钟= 90MHz/(6+1)= 12.857MHz。

    F_SCL = 100KHz = I2C 模块时钟/((ICCL + d)+(ICCH + d))= 12.857 MHz /((ICCL + 5)+(ICCH + 5))

    假设您需要50%的占空比、ICCL 和 ICCH 均等于:~59 (四舍五入)

    希望这对您有所帮助、
    Kevin