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.

[参考译文] TMS320F28069:I2C 的 SCL 信号被下拉为0.2V

Guru**** 2554150 points
Other Parts Discussed in Thread: TMS320F28069

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1007844/tms320f28069-the-scl-signal-of-i2c-is-pulled-down-0-2v

器件型号:TMS320F28069

各位专家、您好!

我的客户发现在 执行 I2C 测试时、SCL 信号在低电平下拉0.2V、 然后恢复。 它们使用 TMS320F28069作为从器件、使用 NI8451作为主机、该接口 如下所示:

测试结果为:

读取00h 与 NI8451、数据为 B2h、00h、B3h、00h、(PEC)

波形记录如下:CH1:SCL、CH2:SDA、CH3:调试

(1)下图显示了命令00h 波形、该波形在从器件响应 ACK 信号前后的低 SCL 电平期间被下拉约0.2V;

(2) SlaveAddr+R (B3h)波形、在从器件响应 ACK 信号之前和之后的低 SCL 电平期间被拉低、ACK 周期之后的时间越长、主机读取数据、从器件未就绪(I2CXSR 为空。 然而、I2CDXR 尚未写入数据)、并且 SCL 被从器件下拉。

(3)从机应答数据00h 波形、每次从机应答数据时、SCL 低电平被下拉;

您知道什么是根本原因吗? 谢谢!

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

    尊敬的 Angela:

    它可能与线路上的串行电阻有关、并取决于哪个器件(主器件或从器件)将线路拉低。 下面链接的文章对此有很好的信息。 他们可以检查的是、如果将串行电阻器更改为0欧姆、他们是否会看到相同的行为。

    https://www.i2c-bus.org/i2c-primer/serial-resistances-and-debugging/

    另一个可能的原因是上拉电阻太强。 下面的文档对此进行了讨论、请参阅" VOL 电平高于预期值"部分。

    https://www.ti.com/lit/slyt770

    顺便说一下、0.2V V_IL 和 V_OL 在 F2806x 器件的 I2C 模块的规格范围内、并且可能不是一个重要问题。 有关详细信息、请参阅器件数据表中的"I2C 开关特性"表。

    最棒的

    Kevin

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

    尊敬的 Kevin:

    客户进行了一些测试、结果为:

    修改 R1 = 0欧姆、 R1 = 0欧姆、没有下拉电阻。

    修改 R1=50欧姆、 R1=50欧姆、拉低电平为0.09V。

    修改 R1=200欧姆、 R1=200欧姆、拉低0.37V。

    当 NI8451 I2C 端口上的串行电阻增加时、SCL 低电平值将增加(0.08V -> 0.45V)。 如果 DSP 拉低 SCL、随着 R1和 R2的电阻增大、拉低值也会增大。 因此、下降是 由 DSP 下拉 SCL 信号引起的。

    分析是否正确?

    虽然问题不影响沟通、但客户仍要求合理的解释。 请帮助解决此问题、非常感谢!

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

    尊敬的 Angela:

    [引用 userid="480254" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1007844/tms320f28069-the-scl-signal-of-i2c-is-pulled-down-0-2v/3732551 #3732551"]如果 DSP 将 SCL 拉低、则随着 R1和 R2的电阻增大、下拉电阻值也会增大。 因此、下降的原因是 DSP 将 SCL 信号下拉。[/QUERP]

    我认为这是正确的、在 NI8451主器件执行它之后、C2000从器件可能会将 SLC 保持在低电平一段时间(我认为是时钟拉伸机制的一部分)。 如果您在接近 NI8451与 C2000的探测中进行比较、以确认这可能会有所帮助。

    最棒的

    Kevin

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

    尊敬的 Kevin:

    请参阅比较测试的结果:

    CH1:SCL 接近 NI8451CH2:SDA 接近 NI8451CH3:串行分辨率后的 SCL (原始测试点);

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

    尊敬的 Angela:

    很抱歉、我之前混淆了详细信息。

    通过分析比较测试波形、我们可以看到、CH1 (SCL 接近 NI8451)低电平时间不会经历与 CH3 (串行分辨率后的 SCL、靠近 C2000从器件)相同的低电压电平增加。 在 C2000从器件附近进行探测时、上拉+串行电阻充当分压器、因此当 C2000从器件将 SCL 拉低时、V_OL 将~0V、当仅 NI8451将 SCL 拉低时、V_OL 将更高。

    因此、当发送到 NI8451器件时、C2000从器件在信号下降后将 SCL 保持在低电平的短时间内、以便在离开 SCL 并允许 NI8451器件读取该位之前确保 SDA 线处于良好状态。 请参阅注释图形以了解更多信息:

    最棒的

    Kevin