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.

[参考译文] TMS320F28022:I2C CLKH 和 CLKL、希望运行得非常慢

Guru**** 2390755 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/769002/tms320f28022-i2c-clkh-and-clkl-want-to-go-real-slow

器件型号:TMS320F28022

我在 I2C 稳定性方面遇到问题、希望将 I2C 时钟降低到1/10、这是正常速度、因此我可以使用 PC 声卡来捕获 I2C 信号。 声卡的频率限制为20kHz。 我认为10kHz I2C 时钟可能起作用。

有关我用于预分频器和时钟的数字、请参阅下面的。

它在100KHz 时似乎工作正常(有点)、(I2CCLKL 和 I2CCLKH 都设置为45D 或0x2D。)

但是、当我使用450d (0x1c2)作为高时钟和低时钟时、通信中断

我在 I2C 端口上有一个 FTDI FT201x USB 转 I2C 芯片、一个 PurePath CC8030无线芯片以及一个模拟器件 ADAU1701。

有什么想法吗?

谢谢、Mark。

这是我的尝试:

Piccolo 的运行频率为50MHz。

//设置 I2C 模块的预分频器。 在模块 clk
I2caRegs.I2CPSC.all = 4上、必须介于7-12MHz 之间; // 50MHz/5 (PSC + 1)= 10.0MHz
//将 PSC 设置为4会使 d = 5

//数学是:对于100KHz,其中 d 为5 (基于上面的预分频)
// 10、000、000 /(45 + 5)+(45 + 5)
// 10、000、000 / 50 + 50
// 10、000、000 / 100 = 100.0 KHz
//如果我们需要100k clk 频率,请分别使用45和45
// 100KHz 为10uS 脉冲周期。 每字节9位为每字节90us
I2caRegs.I2CCLKL = 45; //注:必须为非零
I2caRegs.I2CCLKH = 45; //注意:必须为非零
//让我们尝试将其降低到10kHz 的速率
I2caRegs.I2CCLKL = 450; //注:必须为非零
I2caRegs.I2CCLKH=450; //注:必须为非零

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

    Javelin 先生、您好!

    您的计算/配置看起来正确、您应该能够以10kHz 等低速为 I2C 总线计时。

    您的 F2802x 器件是总线上唯一的主器件吗? 主器件控制 SCL 时钟线(除非发生时钟拉伸)。

    您能否用更少的器件或除 F2802x 以外的任何器件来探测 I2C 总线、以查看时钟速度是否符合您的期望? 可能是影响时钟速度的其他器件。

    当您说通信中断时、您的意思(或看到)到底是什么? 您能否捕获并提供问题的一些波形?

    最棒的
    Kevin

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

    感谢 Kevin:

    28022是唯一的主器件。

    我遇到了一个问题、让我的头脑绕过总线上各种器件返回的各种错误。 ADAU 非常简单、但 FTDI 很棘手。

    例如、如果 FTDI 芯片的缓冲区中没有要读取的字节、则 FTDI 芯片(通过其从器件地址寻址时)将 NACK 地址阶段(如果正在读取)。

    发生这种情况时、Piccolo I2C 将释放总线(BB 消失)、并且不会进一步将位计时到其接收寄存器中、因此 RRDY 永远不会被置位。

    这需要我很长时间才能确定正确的循环和陷阱。 有时我等待 ARDY、有时我等待 RRDY、有时我必须检查 BB 位。

    我觉得我现在已经弄清楚了、想写一篇关于 FTDI 芯片和 Piccolo 的具体工作原理的白皮书。

    您能给我指出一个发布此类工作以进行同行评审的地方吗?

    谢谢、Mark。

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

    这很好、很高兴您能够弄清这一点并了解寄存器与总线上发生的情况之间的关系。

    您是否希望在 TI.com 上的某个位置发布您的调查结果以供审核或只是寻求一般建议? 我不确定我们是否有这样的服务、需要返回给您。 欢迎您也在此主题上发布您的发现。

    最棒的
    Kevin