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 通信异常

Guru**** 3001220 points

Other Parts Discussed in Thread: USB2ANY, DS90UB948-Q1

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1668659/ds90ub941as-q1evm-the-screen-display-is-normal-but-the-i2c-communication-is-abnorma

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

soc ---- ds90ub941------ ds90ub948 ---- LCD  

屏幕可以正常显示、但 i2c 通信异常。 它可以读取 941、但无法读取或写入 948 和 tp

发生问题后转储的寄存器信息:

96b62660-fb3d-4db9-a982-c55a71f69e24.png

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

    您好、Zhao、

    感谢 941 寄存器转储、这是一个有用的信息。 我对测试设置以及到目前为止您测试的内容有几个问题:

    1. 如何与 FPD 器件通信? 是通过 Micro USB 连接到板载 USB2ANY、Aardvark 连接到 I2C 引脚等吗?
    2. 这些 TI EVM 还是定制设计的电路板?
    3. 您是否尝试过直接连接到本地 948 I2C 总线以查看其是否响应?
    4. 在可以提供该寄存器转储之前、您是否运行了任何初始化代码?
    5. 您是否对尝试发送到 948 的 I2C 事务进行了逻辑分析仪捕获?

    BR、

    Cameron

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

    在汽车领域、ds90ub941 的 i2c 连接到 soc

    2.在实际车辆测试过程中,我们遇到了一个问题,即 948 的 i2c 无法直接连接到 SOC ,也无法使用逻辑分析仪进行测试

    初始化代码

    ds90ub941:

     0x03、 0x9a
    0x17、 0x9e
    0x01、0x08 //禁用 DSI
    0x11、0x33 //禁用 DSI
    0x5b、0x10 //选择 DSI PLL 时钟
    0x40、0x04 //选择 DSI 端口 0 数字寄存器
    0x41、0x20 //选择 DSI_CONFIG_0 寄存器
    0x42、0x6F //设置 DSI_SYNC_PULSES = 0
    0x41、0x21 //选择 DSI_CONFIG_1 寄存器
    0x42、0x60 //设置 DSI_VS_POLARITY = DSI_HS_POLARITY = 1
    0x4f、0x8c //设置 DSI_CONTINUOUS_Clock、单个 DSI、4 通道、DSI 端口 0 输入
    0x41、0x30 //选择 DSI_HSW_CFG_HI 寄存器
    0x42、0x00
    0x41、0x31 //选择 DSI_HSW_CFG_LO 寄存器
    0x42、0x18 //HSYN-LEN = 12
    0x41、0x32 //选择 DSI_VSW_CFG_HI 寄存器
    0x42、0x00
    0x41、0x33 //选择 DSI_VSW_CFG_LO 寄存器
    0x42、0x03 //HSYN-len = 3
    0x40、0x04 //选择 DSI 端口 0 数字寄存器
    0x41、0x05//TSKIP_CNT 设置间接地址 (reg DPHY_SKIP_TIMING)
    0x42、0x2E //TSKIP_CNT 设置寄存器 DPHY_SKIP_TIMING 值
    0x40、0x10
    0x41、0x86
    0x42、0x0A
    0x41、0x94
    0x42、0x0A
    0x0E、0x3f //TP_INT BL_EN
    0x0F、0x03//PWM
    0x10、0x03 //TP_RST NULL
    0x01、0x00//启用 DSI
    ds90ub948-Q1:
    0x01、0x03 //reset 948
    0x49、0x60 //双路 FPD-OLDI 输出
    0x21、0x13 //GPIO_7_8:TP_Fail_DET 输入、LCD_reset 输出低电平
    0x34、0x02 //选择端口 1
    0x1E、0x01//DGPIO_1:LCD_STB 输出低电平
    0x46、0x60 //双路 FPD-OLDI 输出
    0x34、0x02 //选择端口 1
    0x1d、0x09//DGPIO_0:tp_3V3 设置为高电平
    0x34、0x01 //选择端口 0
    0x1a、0x19 //GPIO_9:LCD_3V3 设置为高电平
    0x34、0x02 //选择端口 1
    0x1F、0x09 //DGPIO_3:BIAS_EN 设置为高电平
    0x34、0x01 //选择端口 0
    0x20、0x09 //GPIO_6:tp_reset 输出高电平
    0x21、0x93 //GPIO_7_8:TP_FAIL_DET 输入、LCD_RESET 输出高电平
    0x34、0x02 //选择端口 1
    0x1E、0x09 //DGPIO_1:LCD_STB 输出高电平
    0x34、0x01 //选择端口 0
    0x1d、0x03//GPIO_0:MPQ3367_Fail_DET
    0x1E、0x53 //GPIO_1_2:tp_IRQ BL_en
    0x1F、0x05//GPIO_3:PWM
    如果 ds90ub941 的 0x0c 寄存器的值为 0x16、则应完全阻止链路。 为什么视频信号正常? 只有 i2c 异常
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    感谢您提供更多信息。 您能否确认装置是否仍在车内、或者是否已移至工作台?

    我还想了解以下几点:

    • 此故障是否曾发生过一次、或者是否已重现? 如果不止一次、多少次、多少个芯片?
    • 您是否尝试过完全恢复系统?
    • 在串行器软复位后、系统是否恢复? (即 board.WriteI2C (serAddr、0x1、0x1))
    • 系统是否会在串行器和解串器下电上电后恢复?

    我还注意到、941 的寄存器 0xA 和 0xB 中链路上存在大量 CRC 错误。 这通常表示 FPD 通道存在链路完整性问题、尤其是您说 948 可以正常工作并最初可以通信、但一段时间后便会出现问题。 您可以尝试更换 FPD 电缆、看看问题是否是由电缆故障引起的。 TI 过去是否就此设计完成了原理图审查或布局审查?

    BR、

    Cameron

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

    1.问题仅发生在车辆上。 目前、设备仍在车辆上。

    2.发生了两次,使用相同的车辆和设备。

    3.无法对车辆执行软重置。

    4.重新启动设备后、它会显示黑屏而不显示任何内容。 但是、插入并拔下屏幕电缆可恢复正常操作。

    5.问题应该与屏幕连接电缆有关,但为什么这种情况只影响 I2C 信号? 视频信号正常。

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

    您好:

    感谢您提供更多信息。  

    5.问题应该与屏幕连接电缆有关、但为什么这种情况只影响 I2C 信号? 视频信号正常。

    由于在 941AS 报告没有链路/锁定且没有与 948 进行 I2C 通信时视频似乎可以正常工作、因此听起来存在严重的反向通道裕度问题。 这是因为存在大量反向通道 CRC 错误、这进一步表明反向通道存在问题。

    我的第一个建议是更换用于新电缆的电缆。 这样可以消除电缆的任何潜在问题。 这是同轴电缆实现还是 STP 实现?

    我的第二个建议是发送 941 和 948 的原理图供我查看。  

    如果这两件事不能显示任何信息、我们可能需要将有问题的设备从车辆中取出并在工作台上进行测试。 这将是为了查看解串器是否存在问题、以及是否能够对单元运行自定义 I2C 事务。

    您能否另外确认是否在启动后立即出现此问题、或者是否在一段时间后出现此问题? 这是在 0 公里的车辆上吗?

    BR、

    Cameron

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

    目前、重新连接屏幕电缆后、此问题已得到解决、但未再次出现。

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

    您好:

    目前、此问题已在重新连接屏幕电缆后得到解决、且未再次发生。

    很高兴听到这个问题似乎已得到解决。 我建议监控串行器主页上的寄存器 0xA 和 0xB、以检查是否存在大量 CRC 错误。 我想电缆未完全就位、导致串行器和解串器之间出现边缘链路、从而导致您遇到的问题。

    我现在将关闭该主题、但如果您对此问题有其他问题、请随时再次回复以打开该主题。

    BR、

    Cameron

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

    监控串行器上的 0x0A 和 0x0B 寄存器。 如果检测到大量 CRC 错误、是否有办法执行软复位以恢复正常通信?

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

    您好:

    是的、您可以通过向器件的寄存器 0x1 写入值来尝试软复位:

    • board.WriteI2C (devAddr、0x1、0x1)

    请注意:在重置时、这会暂时中断显示视频。  

    BR、

    Cameron