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.

[参考译文] TDA4VEN-Q1:通常包括唤醒 I2C0 HS 模式波形

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1653957/tda4ven-q1-wakeup-i2c0-hs-mode-waveform-abnomaly

器件型号: TDA4VEN-Q1

尊敬的团队:

我们处理的是 SDK mcu_plus_sdk_j722s_11_00_00_12。 我尝试将 WUKP I2C0 速度从 400kHz 更改为 1MHz(HS 模式)。 但是、当我测量波形时、发现了一些意想不到的事情。  

根据数据表(第 12.1.2.2.2.4.2 节、图 12-12)、HS 模式传输的第一阶段(控制器代码)应以 F/S 模式速度 (400kHz) 发送。 然后、在重复启动 (SR) 之后、目标地址和数据以 HS 模式速度 (1MHz) 发送。

format.png

但在我的测量中、第一个阶段大约以 5MHz 运行、而第二个阶段在 1MHz 是正确的。 我使用逻辑分析仪捕获波形并对其进行解码、第一个阶段比预期快得多。

firstPhase.pngsecondPhase.png

我检查了 I2C 驱动程序代码。 当速度设置为 1MHz 时、F/S 模式时钟的配置寄存器设置为 0。 这似乎会导致第一阶段出现异常的 5MHz。 函数 I2CmasterInitExpClk() 中的代码

image.png  image.png

数据表还指出、F/S 模式期间和 HS 模式第一阶段期间 SCL 的低电平和高电平时间由 SCLL 和 SCLH 寄存器 (I2C_SCLL[7:0]和 I2C_SCLH[7:0]) 的低 8 位决定。 代码似乎没有正确设置这些值。

clock.png

我的问题:

  1. 这是 I2C 驱动程序中的错误吗?

  2. 该问题是否影响正常的 I2C 通信? (例如,器件仍然可以正常工作吗?)

附加观察: 即使不修改代码,通信也不会报告任何错误,效果很好。 但是、观察波形可以发现、起始位本身不符合 I2C 标准。  

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

    您好、谢:

    请稍等片刻。

    我们将尽快回复您。

    感谢您的参与

    Vinit

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

    您好、谢:

    我在我们这边进行了检查、这不会导致您在 1MHz 上运行的任务出现任何问题、因为在 F/S 模式下、它将具有未确认的地址、因此它不会获得任何 ACK、最终它将跳转到 HS 模式、这在您的情况下是 1MHz — 这将正常工作。

    重新评定 I2C 是否应在 HS 模式开始时在 F/S 模式 (<=400kHz) 下运行、然后 HS 是否应该启动、我已经创建了一个内部请求来对此进行研究。 因此,如果有任何错误,它将由开发团队修复。

    目前、这不应导致您的任务出现任何问题。

    此致、

    Vinit