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.

[参考译文] SN65DSI83:I2C 问题

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1284797/sn65dsi83-i2c-problem

器件型号:SN65DSI83
主题中讨论的其他器件:PCA9306、、 TCA9517

我们正使用此 MIPI 转 LVDS IC:SN65DSI83ZXHR。

遇到了 I2C 总线问题。 我们已通过 VLS (PCA9306:3、3V <-> 1、8V)将我们的处理器(iMX8Plus)与该 IC 相连。 n´t 有多个 I2C 从器件。

在几分钟的正常工作后、我们注意到 I2C 总线已停止工作。 我们已进行检查、如果我们尝试使用以下循环下载其寄存器的值、I2C 总线会在几分钟内进行制动:

"虽然为 true;执行 i2cdump -f -y 1 0x2C;done"

 

 n´t 示波器的帮助下、我们可以检查当它开始崩溃通信时、SN65DSI83ZXHR 不会应答 ACK 位、并将 SDA 保持在低电平。 iMX8在释放 SDA 之前发送脉冲、如标准所述:

(黄色:SCL 为1、8V;绿色:SCL 为3、3V;蓝色:SDA 为1、8V;紫色:SDA 为3、3V)

 

当 I2C 最终完全崩溃时、我们仅将 SN65DSI83ZXHR 的使能引脚置于"0"电平后才能重新启动。

 我们使用100KHz 和400kHz 的频率对其进行了测试、结果相同。

 

有什么解决方法的想法吗?

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

    嘿、Jorge、

    您能否向我发送 SN65DSI83的原理图? ID 喜欢查看使用的上拉电阻器、以及您使用的 MCU 是否也有上拉电阻器。 很可能是发生了某种形式的推挽、因此 SN65DSI83无法上拉。  

    该问题是否会复制到多个 SN65DSi83芯片?

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

    尊敬的 Vishesh:

    这是我们的 VLS 原理图:

    我们直接将 SN65DSI83连接到"I2C_L"侧、处理器连接到"I2C_H"侧。

    VL 为1、8V、VH 为3、3V。

    在处理器端、有4、7K 个上拉至3、3V 的外部上拉电阻。

    我们在我们的所有原型(20个单元)中都遇到了这个问题。

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

    嘿、Jorge、

    我不太熟悉您使用的 VLS 部件、但电路中的接地电容似乎是问题的罪魁祸首。 因为只要 SDA 上存在交流电压、它就会被拉至低电平并卡在低电平。 尝试使用数据表中的原理图之一。  

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

    尊敬的 Vishesh:

    我们在数据表中指定了相同的原理图:

    电容器未连接到 SDA 或 SCL。

    我们已检查两侧上拉电阻器的值、它们正常、为4K7。

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

    嘿、Jorge、

    是否可以发送 DSI83的脚本文件和物理设置? 我将尝试使用 DSI83 EVM 让问题再现并帮助进行调试。

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

    尊敬的 Vishesh:

    我仅尝试在一段时间内连续下载其寄存器的值:

    while true; do i2cdump -f -y 1 0x2C;done

    关于物理设置:

    • iMX8Plus 是使用其 MIPI-DSI 接口和处理器中的 I2C 编号2 配置为3、3V
    • I2C2 iMX8Plus <-> PCA9306 <-> DSI83。
    • DSI83的 LVDS 侧:n´t 很重要。 液晶屏连接或断开连接时、I2C 出现故障。
    • I2C 波特率的问题。 在400KHz 以下时、它会提前发生故障。 但与波特波特总是失败与该 bcle (在几秒和10分钟之间)。

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

    我看到了、我将尝试获取 PCA9306的样片并使用类似的测试设置。 我将在下周结束前提供最新情况。  

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

    好的、谢谢!

    如果您需要更多信息、请告诉我。

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

    尊敬的 Vishesh:

    我们已经删除了  PCB 中的 PCA9306、而在其位置我们已经介绍了 使用线套的 IC TCA9517 (因为它的引脚排列不同)。 它是另一个具有不同结构的 VLT。

    我们 使用相同的方法(在 一个 while 循环中连续读取其寄存器的值)对 DSI83施加压力:

    while true; do i2cdump -f -y 1 0x2C;done

    我们也重现 了相同的故障。 因此、我们认为问题不是 PCA9306。

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

    嘿、Jorge、  

    是的、根据您的结果、似乎问题不是 PCA9306。 是否尝试在每次读取后在 while 循环中实现小延迟。 我的理论是、I2C 线路因不断轮询而过载。 尝试在每次 I2C 转储后实现10ms 的睡眠时间。  

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

    尊敬的 Vishesh:

    这是一个成功案例、可以尝试在 I2C 中快速重现故障。 我们在我们的设备中遇到了这个 I2C 问题。 它在30分钟后出现, 1小时,... 因此,该块不是正常模式操作,它用于重现问题。

    我们已经强调了其他 I2C 总线与这种 bucle 在24h aprox。 它们工作正常。 我们只会给这个 I2C 和这个从器件带来问题。

    此致。

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

    这是您在多个 DSI83芯片中看到的问题、还是只是这个问题?

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

    尊敬的 Vishesh:

    问题出现在我们拥有的所有25个原型中。  

    此致

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

    嘿、Jorge、

    这似乎是一个比我最初想的更复杂的问题。 我想再次检查您器件设置的每个步骤、因此请耐心听我说。  

    1) 1)您是否能够确认您是否遵循 DSI83数据表中的初始化序列:

    2) 2)您可以在示波器上确认 I2C 初始化吗? 该视图应如下所示:

    3)还只是确认在 DSI83崩溃后无法通过 I2C 从 DSI83获得 ACK 正确吗?

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

    你好,Vishesh!

    1) 1)我们将进行检查、但我们正在使用您的驱动程序。 因此、我认为它得到了正确实施。

    2)我们可以尝试,但由于在使能引脚上没有测试点,明显不在 MIPI 接口上,所以很复杂。

    3)n´t、我不明白为什么在崩溃时 SDA 始终处于"0"状态:

    如果我通过"ENABLE"引脚禁用 DSI83、I2C-SDA 会恢复其"1"。

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

    SDA 连接到了什么? 它正在连接到上拉电阻器和您的接口以进行读取和写入之外的任何地方?

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

    它以这种方式连接:

    iMX8Plus 处理器(I2C2配置为3、3V)<-> Slave1为3、3V  (我们已将其删除以测试问题)。

                                          <-> VLS (PCA9306、我们用其他 VLS 重现同样的问题进行测试)。 3、3V <-> 1、8V

                                                   <-> Slave2为1、8V (我们已将其删除以测试问题)。

                                                   <-> DSI83、1、8V。

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

    那么、该图是否正确?

    另外、我注意到在原理图中  、SDA 和 ACL 不是上拉至1.8V、而是上拉至3.3V、网络名称似乎不匹配。

     您能否尝试在 SDA 通道到1.8V 之间添加一个4.7K 电阻器、看看这是否起作用?

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

    您的图正确无误。 两侧有4、7K pu 电阻(3、3V 和1、8V):

    在这个绿框内:

    在原理图的另一部分、我们将1、8V I2C 连接到 DSI83:

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

    好的、电路似乎也正确就位了。 您能否确认1.8V 和3.3V 的设置和保持时间? 电压转换可能存在延迟、这违反了 I2C 时序要求。  

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

    尊敬的 Vishesh:

    来自 PMIC 的1、8V 和3、3V 电压、因此我认为没关系。

     

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

    嘿、Jorge、

    有什么方法可以验证这一点吗?

    由于您正在进行的 I2C 线路过载测试、似乎存在轻微的时序问题。 根据我的理解、芯片正确启动、I2C 线路在电气方面是健全的。 唯一可能的另一个问题是所发送的 I2C 数据以及信号的任何更改。 即3.3V 至1.8V 的阶跃。 无论 PMIC 提供的电力有多精确、电压转换都将有轻微延迟。 我的理论是、这种延迟违反了某些 I2C 时序要求。