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.

[参考译文] DS90UB941AS-Q1:I2C 直通在发送地址后使 SCL 线路挂起

Guru**** 2585245 points
Other Parts Discussed in Thread: ALP, DS90UB941AS-Q1

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1114293/ds90ub941as-q1-i2c-pass-through-hangs-the-scl-line-after-address-sent

器件型号:DS90UB941AS-Q1
主题中讨论的其他器件:ALP

我在这里有两种设置:一种是产品正在使用 IMX8->941->CABLE ->触摸面板,另一种是模拟 LaunchPad->949EVM->CABLE ->触摸面板。 在涉及 IMX 控制器板之前、我使用949EVM 设置验证具有948的 LCD 模块和触摸屏。 到目前为止,这是很好的。 问题现在是通过远程 I2C 与触摸面板通信。 在949EVM 设置中、这一切都很好。 ALP 中的 Python 命令与触摸屏对话没有问题。 对于 IMX 和941、我们通过 I2C 访问941或远程948没有问题。 但是、当我们尝试与远程触摸面板通信时、我们会看到远程 I2C 总线上的 I2C 地址、 但是、我们要么看到数据线上的所有零、看起来是由948驱动的(连接了示波器图像)、要么看到时钟线保持低电平的时间达到250ms。 对一个像 i2cget -y 6 0x5D 0x81这样简单的命令进行绑定、我们可以看到总线上的0x5D、但0x81显示为0x00。 另一方面、i2cdetect -y 6工作正常。 我将另外两个非常简单的 I2C 器件连接到远程 I2C 总线。 I2cdetect 工作正常、但访问这些部件时遇到的问题与访问 goodix 触摸面板芯片时遇到的问题相同。 如果采用948的同一 LCD 设备和触摸面板在949评估设置中工作、那么什么机制可能会干扰 i2c? 我将941的寄存器0x17设置为0x9E、因此 I2C_PASS_ALL 处于开启状态。  

其中三个示波器快照是故障、另一个是在串行器端使用949EVM 时的成功案例。两种情况下、接收端连接示波器的 LCD 模块是相同的物理单元。

核心问题是、什么会干扰 I2C?

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

    抱歉、如果我在示波器捕获之间切换 SCL 和 SDA。 我似乎还在显示8位和7位 i2c 地址之间切换、在某些情况下为0xBA/BB、在其他情况下为0x5D。

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

    好的,发现了它!

    在 DS90UB941AS-Q1中、寄存器0x03的位5 TX_AUTO_ACK 处于开启状态。 这不是默认值、因此设置错误 I 一些初始化代码。 使用 i2cset 命令关闭位后、I2C 工作正常。  作为一个相关的问题:General_CFG 寄存器0x03的 I2C_PASS_Through 位3和 I2C_CONTROL 寄存器0x17的 I2C_PASS_ALL 位7之间有何区别? 我们目前正在设置这两者。

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

    您好、拉里、

    感谢您的提问。 我正在调查您的查询、并将很快提供有关寄存器之间差异的反馈。

    格伦

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

    拉里

    I2C_PASS_Through 启用与 I2C 从设备/别名设置寄存器0x07-0x08和0x70-0x7D 匹配的事务传递。 I2C_PASS_ALL 启用事务的直通、无论它们是否与上述寄存器中的任何地址/别名设置匹配。 因此、这很可能是一个地址/别名配置问题-尝试访问另一侧不存在的地址将使总线等待响应、直到看门狗计时器过期。  

    此致、

    Casey