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.

[参考译文] TPS65224-Q1:AM62A 主芯片和 TPS65224 I2C 通信偶尔异常

Guru**** 2585165 points
Other Parts Discussed in Thread: SK-AM62A-LP, AM62A7

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1569443/tps65224-q1-am62a-main-chip-and-tps65224-i2c-communication-occasionally-abnormal

器件型号:TPS65224-Q1
主题中讨论的其他器件:AM62A7TPS65224、SK-AM62A-LP

工具/软件:

您好、

在程序运行期间、我们观察到主控制芯片发送的 I2C 信号偶尔会出现超时问题。 此问题导致我们的程序返回错误。 初步调查表明、I2C 生成的波形异常

捕获的错误信号图像如下所示。

实际上、正确的信号应如下图所示。

我们使用的主要控制芯片是利用 R5 内核的 AM62A7。 我们的程序在 MCU 上运行、采用的 PMIC 芯片为 TPS65224
我们最初怀疑问题源于 TPS65224。 在 I2C 通信过程的 ACK 阶段、TPS65224 未能及时释放总线控制。 这会阻止主控制芯片获得总线控制、并且整个 ACK 阶段变得过长、最终导致通信超时
此问题的潜在原因是什么、可以通过修改寄存器配置来解决此问题?
谢谢、
Yuwei
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Yuwei:

    确认哪个芯片将时钟线保持在低电平的一种方法是在时钟线上串联一个电阻器,然后观察示波器上的通信 — 电阻器会形成一个带有 I2C 上拉电阻器 R 的小型分压器,从而导致略有不同的低电平,具体取决于通信的哪一侧将线路拉至低电平 — 然后您可以判断哪一侧正在执行该操作。 您认为这是您可以执行的测试吗? 这会帮助我们知道 TPS6522x 器件是连接器件、还是 AM62x 器件连接器件。 这里描述了这种测试: https://www.i2c-bus.org/i2c-primer/serial-resistances-and-debugging/ 

    此致、

    Katie

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

    尊敬的 Katie:

    按照建议、我们将时钟线路上的串联电阻调整为 200 欧姆、结果如下所示:

    我们没有观察到任何明显的压降。 在 ACK 之后的故障时钟周期内、CLK 信号始终保持在低电平。 我们认为、被拉低的时钟信号归因于 SoC、而不是 TPS65224。

    您可以联系 AM62A7 芯片的技术支持吗?

    谢谢、

    Yuwei

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

    尊敬的 Yuwei:

    是的、我会将该线程移至处理器论坛、以便重新分配该线程。  

    此致、

    Katie

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

    您好、Yuwei、

    我已经在研究 SCL 卡在“低“电平的问题。 您发现 SCL 线路行为不是 I2C 从器件侧正常时钟延展的结果、因此我将有其他问题:

    问题 1: I2C 总线连接了多少个从器件/主器件? 它只是 AM62A 芯片作为主芯片和 TPS65224 作为从芯片吗?

    问题 2: 它是定制板还是 AM62A TI EVM?  

    问题 3 您使用的是操作系统(如果是,是什么类型)还是运行的是裸机代码?

    谢谢

    此致、

    Anastas Yordanov

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

    尊敬的 Anastas:

    I2C 总线上连接了多少个从属设备/主设备? 它只是 AM62A 芯片作为主芯片、TPS65224 作为从芯片吗?

    1 个 从器件和 1 个 主器件、只有 AM62A 芯片作为主器件、TPS65224 作为从器件。

    是定制电路板还是 AM62A TI EVM

    它是定制电路板。

    您使用的是操作系统(如果是,是什么类型)还是运行的是裸机代码

     运行的是裸机代码。

    需要注意的一点是、我们使用的外设控制代码是 MCAL 代码、I2C 代码是由 MCU SDK 提供的。 然而、我认为传输过程最终由底层硬件寄存器控制、其应独立于特定的代码实现。 这种理解是否正确?

    谢谢、

    Yuwei。

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

    您好、Yuwei、

    感谢您回答我的问题!

    因为 I2C_SCL 是一样的 主设备保持低电平 在单个奴隶的确认(正如你提到的,奴隶之间没有并发)是一个相当不正常的情况,我想问你:

    您是否确定电路板设计人员在 I2C 物理接口要求方面遵循了 AM62A SoC 硬件设计建议:

    您可能希望 在此处使用以下有用资源交叉检查 I2C 总线硬件实现:

    E2E:AM62A7 常见问题解答 I2C 硬件指南

    使用 AM62A7、AM62A7-Q1、AM62A3、AM62A3-Q1、AM62A1-Q1 和 AM62D-Q1 处理器系列的定制电路板设计硬件设计注意事项

    AM62x、AM62Ax、AM62D-Q1 和 AM62Px 处理器系列原理图、设计指南和审阅检查清单

    您使用哪些 SoC I2C 引脚? (我需要知道 AM62A 引脚 IO 缓冲器类型 — I2C OD 或 LVCMOS)

     您是否也有机会连接到 SoC I2C 引脚板上的其他外设(即其他芯片的 GPIO 输出,另一芯片侧的拉电阻器)?

    在 I2C_SCL 波形中、使用的速度是 400kHz。 是否在 100 kbps 低速模式下观察到相同的效果?

    您能告诉我您在 I2C 控制器(AM62A7 芯片)附近连接到 I2C_CLK 和 I2C_SDA 线的上拉电阻是什么?  

    谢谢

    此致、

    Anastas Yordanov

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

    尊敬的 Anastas:

    使用的 IIC 引脚为 E12 (MCU_I2C0_SCL)、D9 (MCU_I2C0_SDA)

    该 MCU_IIC 仅连接到 PMIC 的 IIC、不连接任何其他外设。

    SCL 和 SDA 线路上分别连接了 2k 上拉电阻和 33R 串联电阻。上部上拉电源是 SOC 的 3V3_SYS 电源。

    4.我们已经完成了 IIC 的测试。 保持时间、上升和下降时间以及电平信号都满足手册中规定的要求。

    谢谢、

    Xiwen

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

    尊敬的 Xiwen:

    Anastas 今天很糟糕。 他将回到星期一。

    此致、

    Stan

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

    您好、Xiwen、

    我会从一些低级软件假设/问题开始:

    问题 1: 在超时事件期间、AM62A7 I2C 主器件状态寄存器中是否会出现任何错误标志?

    问题 2: 我知道该故障只是偶尔发生、但请检查 AM62A7 控制器 MCU_I2C0_SCL 和 MCU_I2C0_SDA 引脚是否已正确设置、以实现 I2C 正常运行。我的意思是:

     是否在的相应 PADF 寄存器中设置 RXACTIVE 位=1 MCU_I2C0_SCL 用于启用 PIN 输入缓冲器的引脚。 AM62A7 I2C 控制器应该 在 SoC 级读取 I2C 时钟线 以防 PMIC 目标进行时钟延展。 只有这样、I2C 控制器 IP 才能监控时钟线、自动将方向从输出切换到输入。    

    我还找到了以下有关 I2C 总线阻塞错误预防的 TI 指南:

    《I2C 总线阻塞预防指南》

    问题 3 您可能没有适当调整以下 指定的寄存器值:

    因此 PMIC 目标的 I2C 时钟滤波器设置与 AM62A7 控制器之间存在某种不匹配?

      有关 I2C F/S、I2C HS 模式中最大 I2C 比特率的表 I2C 寄存器值、请参阅 AM62A7 TRM 的功能说明一节

    SK-AM62A-LP EVM 使用 4k7 上拉电阻器和 0r 串行电阻器。 您是否对使用 2k2 上拉电阻器和 33R 串联电阻器有一些理由或测试观察结果? (不过,我相信这与报告的失败毫无关系。)  

    我希望这可能有所帮助。

    谢谢

    此致、

    Anastas Yordanov