主题中讨论的其他器件:AM62A7、 TPS65224、SK-AM62A-LP
工具/软件:
您好、
在程序运行期间、我们观察到主控制芯片发送的 I2C 信号偶尔会出现超时问题。 此问题导致我们的程序返回错误。 初步调查表明、I2C 生成的波形异常
捕获的错误信号图像如下所示。
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.
工具/软件:
您好、
在程序运行期间、我们观察到主控制芯片发送的 I2C 信号偶尔会出现超时问题。 此问题导致我们的程序返回错误。 初步调查表明、I2C 生成的波形异常
捕获的错误信号图像如下所示。

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

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

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

因此 PMIC 目标的 I2C 时钟滤波器设置与 AM62A7 控制器之间存在某种不匹配?
有关 I2C F/S、I2C HS 模式中最大 I2C 比特率的表 I2C 寄存器值、请参阅 AM62A7 TRM 的功能说明一节
SK-AM62A-LP EVM 使用 4k7 上拉电阻器和 0r 串行电阻器。 您是否对使用 2k2 上拉电阻器和 33R 串联电阻器有一些理由或测试观察结果? (不过,我相信这与报告的失败毫无关系。)
我希望这可能有所帮助。
谢谢
此致、
Anastas Yordanov