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.

[参考译文] DS90UB949-Q1EVM:DS90UB949-Q1EVM I2C 接口问题(使用 J20接头读取无 I2C 数据)、无需 ALP 工具

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-using-j20-header-without-alp-tool

器件型号:DS90UB949-Q1EVM
主题中讨论的其他部件:ALP、USB2ANY

大家好、

我尝试使用 J20接头在不连接 ALP 工具的情况下读取基于 I2C 的串行器寄存器。 我发现、如果没有该工具、读取寄存器会返回无效数据、但一旦连接了 ALP 工具并通过它访问寄存器、通过 J20接头进行的外部 I2C 访问就可以正常工作。

请允许我在不连接 ALP 工具的情况下读取 SER 寄存器。

我使用的是 TI  DS90UB949-Q1EVM 应用模式提供的默认跳线设置。 PDF 链接: https://www.ti.com/lit/ug/snlu169/snlu169.pdf?ts=1655049603601&ref_url=https%253A%252F%252Fwww.ti.com%252Ftool%252FDS90UB949-Q1EVM

 正在通过 J20接头将 MCU (这是 I2C 主设备)连接到 SER。 情况是、我们的 MUC 是 I2C 主设备、它使用 J20接头连接到具有 I2C 总线的 SER 设备、在 DESER侧、连接了触摸设备。 SER 和 DESERR 通过 FPD-Link 电缆相互连接。

SER 和 DESERR 的 I2C 寄存器设置为:

e2e.ti.com/.../DERSER-Data.nrd.txte2e.ti.com/.../SER-Data.nrd.txt

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

    大家好、Vikas、

    您应该能够使用连接的 MCU 在未连接 ALP 的情况下读取寄存器。 请确认以下内容吗?  

    • 您是否遵循上电顺序并等待器件完全上电后再尝试读取 I2C?
    • 您说的无效数据是什么意思? 您是否收到了不正确的数据、或者是否根本没有来自949的 ACK?
    • 您是否能够提供 I2C 总线的捕获、显示在连接和未连接 ALP 的情况下的读取尝试?

    此致、

    Ryan

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

    您好@Ryan Fleetham、

    感谢您提供上述信息。

    我们继续前进、现在一切运行良好、但我们面临一些挑战。 我们现在要执行的串行器初始化步骤。 (MODE_SEL0 =#1且 MODE_SEL1 =#1)

    1、使用 APB 控制寄存器(0x48、0x0D)、EDID 低字节和高字节(0x49、0x00)、(0x4A、0x00)写入256 EDID 字节、然后使用 APB 写入寄存器(0x4B)写入数据、并在写入1字节信息后递增地址。  
    2.现在、我们按照串行器数据表中建议的加电顺序进行操作。  



     完成初始化 A 后、我们将通过读取0x0C[2]寄存器等待 TMDS 时钟保持稳定、之后、我们转到初始化 B 的下一个
    完成此操作后、我们设置串行器的从 ID、从别名和启用直通。

    4、现在我们等待来自 DeSer 端的触摸信息。
    5.之后,我们使用 HDMI 连接线连接视频源,在本例中为笔记本电脑。

    下面是我们用于1920x1200分辨率触摸显示屏的 EDID 字节。

     e2e.ti.com/.../Modified-EDID.dat

    挑战:

    1.连接笔记本电脑时,Ser 上的 HPD 引脚不会变得高电平,触摸显示屏上会显示黑屏。
    如果在串行器 EVK 上电之前保持笔记本电脑连接、则 HPD 有时会变高但仍在显示状态、则会显示失真屏幕、笔记本电脑无法获取正确的 EDID 字节。 之后、当我们断开笔记本电脑与串行器的连接、然后再次将其连接时、屏幕上会准确显示。

    现在、我们必须确保笔记本电脑是否已连接到串行器、是否在加电时、我们需要在触摸屏上不会出现任何失真的屏幕。

    谢谢、

    Vikas

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

    大家好、Vikas、

    感谢您的更新。 在显示屏上显示黑屏的情况下、RX_5V 的状态是什么? 如果 Ser 未从笔记本电脑接收5V 电压、则可能是 HDMI 电缆出现问题。 如果 Ser 从笔记本电脑上看到的电压一致、您是否能够使用 ALP 工具强制热插拔? 请告诉我。  

    此致、

    Ryan

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

    您好、Ryan、

    当我们将 HDMI 电缆连接到笔记本电脑时、RX_5V 为5V、但在空白屏幕期间 HPD 引脚为低电平。  

    是的、当 Ser 连接到笔记本电脑时、我们可以使用 ALP 工具将热插拔置为有效。

    您能告诉我们串行器和解串器通信的启动顺序吗? 我们是否应该等待 Ser 和 Deser 锁定、然后我们应该读取或写入任何命令到 Ser? 哪些寄存器显示了 Ser 和 Deser 是否锁定的值?

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

    大家好、Vikas、

    当您使用 ALP 断言热插拔时、显示器上的视频输出是否正确?

    948和949数据表的第9节详细说明了完整的启动序列。 我已在下面添加了书面程序、但数据表中包含了其他图表和表格、以帮助说明这些程序。 948的寄存器0x1C 将指示锁定。  

    949启动

    948启动

    如果您对这些程序有任何疑问、请告诉我。

    此致、

    Ryan

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

    您好、Ryan、  

    感谢您提供相关信息。 我已经考虑过您的答案、并尝试实现相同的答案。

    下面是我在此之后的一些问题:  

    在我的情况下、显示设备(触摸屏)通过介质连接到 Deser (948)、然后使用 LVDS 电缆将 Deser 连接到我们的 Ser (949)。 这里发生的情况是、我们在整个设置中只能访问 Ser 器件、并且我们使用 ALP 工具或通过 Ser 的 I2C 引脚使用 MCU 访问 Ser。 因此、当设置加电时、整个系统加电、即 Deser、Ser 和显示设备。 我们 现在切断了使用 HDMI 电缆连接至串行器件的显示源。 因此、系统现在已通电、现在使用 ALP 工具、我们可以看到串行器和解串器正在进行通信(如 ALP 工具中所示:-链接到解串器:是)。 这是否意味着 DESER 和 Ser 已锁定? 因为显示屏幕仍然为空白、因为我们尚未使用 HDMI 电缆将任何显示源连接到串行器。  Ser 器件中是否存在可用于检查 Ser 和 Deser 是否锁定的地址?  
    2.我们应何时开始使用 MCU 的 I2C 引脚读取串行器件、以便 I2C 总线线路中不会出现干扰、因为 I2C 信号也会通过 LVDS?
    3. 948的启动序列实际上我们没有任何控制方法,我们只需控制 Ser 设备启动序列,即 Ser 设备上电并准备好通过 MCU 进行 I2C 通信时,也可以控制 Ser 设备启动序列。 那么、如果我们这么做、它会影响 Ser 器件的性能吗?

    等待您的回答。

    谢谢你。

    此致、
    Vikas

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

    大家好、Vikas、

    感谢您提供更多信息。  请查看我的以下评论:

    [引用 userid="524955" URL"~//support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i2c-iSer-interfacing-issue-no-i2c-data-read-use-j20-header-without al85p-us]"、我们现在可以在工具中链接到该工具、并使用该工具。 这是否意味着 DESER 和 Ser 已锁定? 因为显示屏幕仍然为空白、因为我们尚未使用 HDMI 电缆将任何显示源连接到串行器。  Ser 器件中是否存在可用于检查 Ser 和 Deser 是否锁定的地址?  [/报价]

    此处的术语可能有点不清楚、因此让我澄清一下链接与锁定的区别。 当 Ser 和 DES 通电并连接并且能够进行通信时、它们具有"链路"。 这意味着您可以通过 Ser 访问 DES 的寄存器。 您可以读取948的寄存器0x00、如果它读取948的预期 I2C 地址、则表明您有链路、并且两个器件正在通信。 设备通信后、通过 FDP-Link 发送视频数据将导致"锁定"。 锁定仅意味着存在"链接"且正在发送视频数据。  948的寄存器0x1C 将指示位0中的锁定。

    [引用 userid="524955" url="~//support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-j20-header-without al85p-al85p-2]1295"工具。 我们应该何时开始使用 MCU 的 I2C 引脚读取串行器件、以便在 I2C 总线线路中不会出现干扰、因为 I2C 信号也通过 LVDS?[/QUERP]

    这是949的上电序列图和表格、其中突出显示了 I2C 就绪时间。

    [引用 userid="524955" url="~/support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-j20-header-without al85p-al85p-tool#41295]495"。 948的启动序列、实际上我们没有任何控制方法、我们只需控制 Ser 器件启动序列、即 Ser 器件上电后、准备通过 MCU 进行 I2C 通信时、也可以控制 Ser 器件启动序列? 因此、如果我们这样做、它会影响串行器件的性能吗?[quote userid="501562" URL"~//support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i136-issue-issue-forum/1110815-ds90ub949-q1evm-q42c-ds-read-data-j2c-low-regultrade-inj2c-42c-low-regulp-date-inj2c-low-regultrade-j2c-low-

    [/报价]

    如果 DES 在 Ser 开始发送有效视频数据之前已通电、则需要对 DES 执行复位。 这可以通过软件或 PDB 来实现。

    此致、

    Ryan

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

    你好、Ryan。

    感谢您的信息。 我们正在尝试遵循上述步骤中提到的相同步骤。

    对于将 EDID 数据写入串行器的内部 SRAM、我们有一些疑问、我们将按照以下步骤使用 MCU 将数据写入 SRAM:

    MODE_SEL0 =#1、MODE_SEL1 =#5、IDX =#1

    首先、我们使用寄存器将热插拔取消置位。 (工作正常)。 之后、我们使用寄存器、 APB 控制寄存器(0x48、0x0D)、EDID 低字节和高字节(0x49、0xA0)、(0x4A、0x00)、(0x51、 0xA0)、然后我们使用 APB 写入寄存器(0x4B)写入数据、并在写入1字节信息后递增地址。 之后、我们对 SRAM EDID 数据执行了读取操作、并正确读取了前10个字节的数据。 之后、我们在1秒延迟后将 HDP 置为有效。 之后、我们执行了上述上电序列过程。

    当我们检查笔记本电脑时、我们发现笔记本电脑接收到的 EDID 与我们在 SRAM 上写入的 EDID 不同、笔记本电脑接收到串行器 SRAM 中存在的默认 EDID 数据字节。

    但是另一点是、当我们使用 ALP 执行上述相同的过程时、笔记本电脑上的工作正常。 使用 ALP 工具时、在 HDMI 部分、我们将"EDID 模式"从"外部"更改为"内部 SRAM"、之后、我们使用脚本修改了以下寄存器:


    board.WriteI2C (0x18、0x48、0x0D)
    board.WriteI2C (0x18、0x49、0xA0)
    board.WriteI2C (0x18、0x4A、0x00)
    board.WriteI2C (0x18、0x51、0xA0)
    数据=[0、255、255、255、255、255、 255、255、0、4、33、 0、0、0、0、0、 0、1、0、1、3、 0、0、
    0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、1、0、1、0、 1、0、1、0、
    1、0、1、0、1、 0、1、0、15、60、 128、160、112、176、35、 64、48、32、54、
    0、64、104、33、0、 0、24、0、0、0、 16、0、0、0、0、 0、0、0、0、0、 0、0、
    0、0、0、0、0、 0、16、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、
    16、0、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、79、4、6、42、 128、130、
    8、71、18、254、10、 6、3、0、0、204、 6、24、0、32、0、 0、0、0、0、0、 0、
    0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、
    0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、
    0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、
    0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、
    0、0、0、0、0、 80]
    Board.EDID_Write (0x00、DATA、256)

    然后将 ALP 工具的热插拔 HDMI 部分置为有效、之后工作正常。

    3.如果使用 ALP 工具,我们不会在 HDMI 窗口中设置设置内部 SRAM 并执行第2点中的步骤,笔记本电脑仍会检测默认的 SRAM EDID 数据字节。

    问题是、当已经为内部 SRAM 设置 MODE_SEL0和 MODE_SEL1时、为什么需要在 HDMI 窗口中设置内部 SRAM?


    谢谢。

    此致、
    Vikas

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

    Vikas、

    听起来、电路板上的模式自举实际上并不是您所期望的那样。 您在这里使用的是 EVM 吗? 您能给我们发送自举设置的图片吗?  

    我建议使用具有内部电桥控制模式(EXT_CTL = 0)的949、因此 MODE_SEL1应设置为#1

    您能否进行此更改并向我们发送 EVM 板开关的图片或 SER 的寄存器转储?

    此致、

    Casey  

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

    您好 Casey、

    感谢您提供相关信息。

    是的、我们使用的是 DS90UB949-Q1EVM 套件。

    事情是、我正在 使用通过 I2C 总线连接到串行器的 MCU 连接串行器。 我 已经尝试了前面提到的以下方法

    [引用 userid="524955" url="~支持/接口组/接口/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-j20-header-without alp-tool/1341875]

    MODE_SEL0 =#1、MODE_SEL1 =#5、IDX =#1

    首先、我们使用寄存器将热插拔取消置位。 (工作正常)。 之后、我们使用寄存器、 APB 控制寄存器(0x48、0x0D)、EDID 低字节和高字节(0x49、0xA0)、(0x4A、0x00)、(0x51、 0xA0)、然后我们使用 APB 写入寄存器(0x4B)写入数据、并在写入1字节信息后递增地址。 之后、我们对 SRAM EDID 数据执行了读取操作、并正确读取了前10个字节的数据。 之后、我们在1秒延迟后将 HDP 置为有效。 之后、我们执行了上述上电序列过程。

    当我们检查笔记本电脑时、我们发现笔记本电脑接收到的 EDID 与我们在 SRAM 上写入的 EDID 不同、笔记本电脑接收到串行器 SRAM 中存在的默认 EDID 数据字节。

    但是另一点是、当我们使用 ALP 执行上述相同的过程时、笔记本电脑上的工作正常。 使用 ALP 工具时、在 HDMI 部分、我们将"EDID 模式"从"外部"更改为"内部 SRAM"、之后、我们使用脚本修改了以下寄存器:


    board.WriteI2C (0x18、0x48、0x0D)
    board.WriteI2C (0x18、0x49、0xA0)
    board.WriteI2C (0x18、0x4A、0x00)
    board.WriteI2C (0x18、0x51、0xA0)
    数据=[0、255、255、255、255、255、 255、255、0、4、33、 0、0、0、0、0、 0、1、0、1、3、 0、0、
    0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、1、0、1、0、 1、0、1、0、
    1、0、1、0、1、 0、1、0、15、60、 128、160、112、176、35、 64、48、32、54、
    0、64、104、33、0、 0、24、0、0、0、 16、0、0、0、0、 0、0、0、0、0、 0、0、
    0、0、0、0、0、 0、16、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、
    16、0、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、79、4、6、42、 128、130、
    8、71、18、254、10、 6、3、0、0、204、 6、24、0、32、0、 0、0、0、0、0、 0、
    0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、
    0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、
    0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、
    0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、0、 0、0、0、0、
    0、0、0、0、0、 80]
    Board.EDID_Write (0x00、DATA、256)

    然后将 ALP 工具的热插拔 HDMI 部分置为有效、之后工作正常。

    [/报价]

    这可以通过 ALP 工具正常工作。 问题出在 MCU 接口。 我们尝试使用 MCU 的相同方法、写入和读取串行器的 I2C 寄存器、并且我们以我在引述的消息中所述的相同方式进行读取和写入。

    我正在尝试使 HPD 引脚无效并将其置为有效、这就是为什么我使用 MODE_SEL 作为#5进行外部桥接控制的原因。

    使用 MCU、我将取消 HPD 引脚的置位、使用 APB 寄存器写入 EDID 数据、使用 APB 寄存器读取 SRAM 数据来交叉检查写入的 EDID 数据字节、然后将 HPD 引脚置位、 我可以看到、LED D2在  EVK 套件上发出 HPD 引脚后亮起。 但之后、不会将任何数据从视频源传输到视频显示屏。  

    将 HPD 引脚置为有效后、我们将遵循 Ryan 为串行器建议的加电初始化、但要执行初始化序列 B、我们必须等待 TMDS 时钟稳定、但 TMDS 时钟不会稳定、我们始终等待。

    但是、如果我们也跳过加电初始化、我们仍然无法在视频显示屏上获取视频源。 将 HPD 引脚置为有效后、将不会显示任何内容。

    您能帮助我们解决这个问题吗? ALP 工具在写入我们要跳过的命令之间是执行什么操作还是执行什么操作? 请建议。

    谢谢你。

    此致、
    Vikas。

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

    大家好、Vikas、

    请您澄清以下几点吗?

    [引用 userid="524955" url="~//support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-ds90ub949-q1evm-i671-interfacing-issue-no-i2c-data-read-use-use-j20-header-without al-p-alp-ld]1341s 后,我们在该工具后声明为 H41341s。] 之后、我们执行了上述上电序列过程。[/quot]

    执行上电序列过程意味着什么? 您是关闭串行器和解串器并再次为其供电、还是在此阶段打开解串器?

    [引用 userid="524955" URL"~//support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i671-interfacing-issue-no-i2c-data-read-use-use-j20-header-without alp-alp],我们在笔记本电脑上发现的 ED4134SRAM 数据串行器没有在我们在该工具中输入的默认数据时,在该工具中输入的数据记录的数据。]

    如果此时读取949上的 EDID SRAM 数据、这些值是否与笔记本电脑接收到的内容或您之前写过的内容相匹配?

    [引用 userid="524955" URL"~/support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i671-interfacing-issue-no-i2c-data-read-use-use-j20-header-without alp-alp-laptop,但我们在上面使用相同的步骤时,使用 AL4671P/4134P] [/报价]

    当您说工作正常时、这是否意味着笔记本电脑收到了您期望的 EDID 数据?

    [引用 userid="524955" URL"~/support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i671-interfacing-issue-no-i2c-data-read-use-j20-header-without al-p-alp-and],但我们在下面的"ED4P"部分中将"DM64"更改至"DM64"外部模式,并将其从"DM64"部分修改为"DM64P"。

    您说过您使用 ALP 的过程与尝试使用 MCU 的过程相同、但在这里您说您还在更改 ALP HDMI GUI 中的设置。 使用 ALP 时、这两个单独的测试是吗?还是始终在 ALP HDMII GUI 中更改设置?

    [引用 userid="524955" URL"~//support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-ds90ub949-i1evm-i671-interfacing-issue-no-i2c-data-read-use-use-j20-header-without -alp-am#4sep-req4sep]以尝试使用外部引脚控制模式并将#4am/4sel 引脚置为无效的引脚并将其引脚4sep/4sep-模式。]

    您是否能够像 Casey 建议的那样尝试将 MODE_SEL1用作#1并提供寄存器转储?  

    谢谢、

    Ryan

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

    您好、Ryan、


    [引用 userid="501562" URL"~//support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-ds90ub949-i2c-interfacing-issue-no-i2c-data-read-use-use-j20-header-without alp-up-procedure by performing /5413470" 您是关闭串行器和解串器并再次为其供电、还是在此阶段打开解串器?

    正如我之前提到的、一旦我为整个系统通电、这意味着串行器、解串器和触摸屏器件、所有3个器件都一次性通电。 完成所有 EDID 数据字节写入并将 HPD 引脚置为有效后、我将执行串行器数据表中提到的加电序列、如下所示:



    但是在执行该序列时、在完成序列 A 后、当我等待 TMDS 时钟稳定时、我会一直等待、因为寄存器0x0C[2]永远不为1。


    [引用 userid="501562" url="~/support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-j20-header-without alp-alp-tool/5413770]

    如果此时读取949上的 EDID SRAM 数据、这些值是否与笔记本电脑接收到的内容或您之前写过的内容相匹配?

    [/报价]

    否、数据字节不相同、默认数据字节存在、如下所示为串行器数据表。




    [引用 userid="501562" url="~/support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-j20-header-without alp-alp-tool/5413770]

    当您说工作正常时、这是否意味着笔记本电脑收到了您期望的 EDID 数据?

    [/报价]

    是的、使用 ALP 工具、写入的数据字节与笔记本电脑接收的数据字节完全相同。 另一方面、在使用 MCU 写入数据时、笔记本电脑有时不会接收任何 EDID 数据字节。


    [引用 userid="501562" URL"~//support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-j20-header-without al-p-alp-alp-"LM5470、但您在此处尝试更改 AL43770 HDMI 工具时说的过程相同。] 使用 ALP 时、这两个单独的测试是否存在?您是否始终在 ALP HDMII GUI 中更改设置?[/QUERT]

    这些测试是相同的。 如前所述、MODE_SEL0设置为#1、因此它设置为用于 EDID 数据字节的内部 SRAM、但当我打开 ALP 工具时、它不会从 EVK 设置检测到此设置、它会从"外部"检测 EDID 数据字节。 我不知道原因是什么、因此我手动将设置更改为内部 SRAM。

    [引用 userid="501562" url="~/support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-j20-header-without alp-alp-tool/5413770]

    您是否能够像 Casey 建议的那样尝试将 MODE_SEL1用作#1并提供寄存器转储?  

    [/报价]



    不、这也没有帮助。

    谢谢。

    此致、
    Vikas

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

    大家好、Vikas、

    感谢您的说明。  

    [引用 userid="524955" URL"~//support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-ds90ub949-i2c-interfacing-issue-no-i2c-data-read-use-j20-header-without alp-alp-41377547/#137457"这些测试是相同的工具。 如前所述、MODE_SEL0设置为#1、因此它设置为用于 EDID 数据字节的内部 SRAM、但当我打开 ALP 工具时、它不会从 EVK 设置检测到此设置、它会从"外部"检测 EDID 数据字节。 我不知道原因是什么、因此我手动将设置更改为内部 SRAM。

    这使得949似乎没有正确加载设置。 在949打开后、您是否会尝试按下并释放 PDB、以查看是否可以让 ALP 识别正确的设置、而无需手动设置 EDID 源? 如果由于某种原因未为内部 SRAM EDID 设置949、这可能说明笔记本电脑有时甚至无法接收 EDID 数据的原因。

    [引用 userid="524955" URL"~/support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-j20-header-without alp-alp-n 数据表中的默认数据字节、不存在/4457数据字节]

    我对此还有点不清楚。 我知道笔记本电脑接收数据表中列出的默认 EDID 数据、并且在加载 SRAM EDID 后读回该数据时、949具有正确的 EDID。 在执行加电过程后、949是否保持正确的 EDID 设置、或者它是否恢复为数据表中拼写的默认949 EDID 数据?

    谢谢、

    Ryan

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

    您好、Ryan、

    让我澄清几点。

    [引用 userid="501562" URL"~//support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-j20-header-without alp-alp-8421"此工具似乎无法正确加载此工具。 在949打开后、您是否会尝试按下并释放 PDB、以查看是否可以让 ALP 识别正确的设置、而无需手动设置 EDID 源? 如果由于某种原因未为内部 SRAM EDID 设置949、这可能说明笔记本电脑有时甚至无法接收 EDID 数据的原因。[/QUERP]

    是的、我已经尝试按下 PDB 按钮并在该按钮之后将其释放、是的、在加载/读取正确的设置之后、笔记本电脑在使用 MCU 连接串行器时不会接收任何 EDID 数据字节。

    让我向您说明一点、我与您分享了两项测试。 一种方法是使用 ALP 工具对串行器进行编程并将 EDID 数据字节写入串行器的内部 SRAM、使用这种方法、每次都可以正常工作。 但是、在我的另一个主题中、我提到这种方法也不适用于某些笔记本电脑。 笔记本电脑未接收 EDID 数据字节。 这是另一个问题、我们可以稍后解决、因为现在我们的主要优先事项是将串行器与 MCU 连接。 另一项测试是使用 MCU 连接串行器、此时会出现此问题、因此请注意、我们现在讨论的是 MCU 连接。  

    我再次重复我正在使用 MCU 将视频信号传输到显示器件的操作。 以下是步骤、
    1.打开系统电源(串行器、解串器和触摸屏设备及笔记本电脑)。 HDMI 电缆已连接到笔记本电脑和串行器。 串行器上的 RX_5 LED 已点亮。 自举设置为、MODE_SEL0:#1、MODE_SEL1:#5。
    2.等待本地 I2C 就绪时间(2ms)、之后开始读取和写入串行器的 I2C 本地寄存器。  
    3.在 HPD 引脚的 D甜 点中、启用 APB 接口以将 EDID 数据字节写入串行器的内部 SRAM。
    写入 EDID 数据字节、然后再次从串行器的 SRAM 读取 EDID 数据字节。 所有256字节都与我所写的内容匹配。
    5、现在、将 HPD 引脚置为有效、EVK 套件上的 HPD LED 亮起。

    但是、没有视频传输到显示设备。

    我已经尝试过 mode_SEL1:#1自举设置、其中启用了内部电桥设置、但使用此方法也不起作用。

    请对此提供帮助。


    [引用 userid="501562" url="~//support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-j20-header-without alp-alp-8421"此工具尚不清楚。 我知道笔记本电脑接收数据表中列出的默认 EDID 数据、并且在加载 SRAM EDID 后读回该数据时、949具有正确的 EDID。 在执行加电过程后、949是否保留正确的 EDID 设置、或者它是否恢复为数据表中列出的默认949 EDID 数据?

    是的、写入 EDID 数据字节后、我从 SRAM 再次读取它、发现它具有正确的 EDID 数据字节。 我已经告诉您、在上电序列期间、当我执行初始化序列 B 时、我必须等待 TMDS 时钟稳定、我等待无限、因为串行器没有 TMDS 时钟。


    我可以在加电过程中执行初始化序列 A 后执行一项操作、我将检查是否存在正确的 EDID 数据字节。

    除此之外、您能告诉我在执行这些设置之前必须启用的寄存器、例如对 EDID 数据字节进行解速、置位和写入。 我想我们在串行器中缺少用于写入或读取的寄存器。

    如果我遵循我正在执行或不执行的正确程序、您能让我改正吗? 我是否必须启用或禁用串行器中的更多寄存器、这就是为什么它无法正确执行的原因、因为 ALP 工具能够在使用 MCU 时正确执行相同的过程、但不能正确执行?

    请告诉我将 EDID 数据字节置为有效、取消置为有效和写入的寄存器、我可能会配置错误的寄存器来执行上述步骤。  

    谢谢你。

    此致、
    Vikas

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

    大家好、Vikas、

    非常感谢您的澄清-他们非常乐于助人!

    ALP 和 MCU 写入之间的过程应该相同(也就是说、ALP 不应该自动配置949)、因此我认为我们不会缺少任何寄存器。  

    您是否会向我发送从 MCU 发送949的所有 I2C 命令?  

    您是否会尝试对系统进行以下两项测试? 我只想确保基本原理完全正常工作。  

    测试1:  

    将 MODE_SEL0设置为1、将 MODE_SEL1设置为1。 在未连接 ALP 的情况下、打开系统电源并查看连接的笔记本电脑是否检测到949显示。 如果没有、请切换 PDB (949)、等待几秒钟、然后再次检查。

    测试2:

    将 MODE_SEL0设置为1、将 MODE_SEL1设置为5。 在未连接 ALP 且连接 MCU 的情况下、为系统加电。 切换 PDB (949)并等待几秒钟。 使用 MCU 强制热插拔、然后查看连接的笔记本电脑是否检测到949作为显示屏。  

    此致、

    Ryan

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

    您好、Ryan、

    感谢您的建议。

    实际上、我进行了"测试2"、它成功了。 但重点是、现在我已经能够找到问题、现在它正在工作、 实际上、我已经将 APB_ADR0更改为0x00、并删除 了串行器的 EDID_ID 寄存器的设置、现在我能够通过串行器传输数据。

    感谢你的帮助。  

    实际上、我在 E2E 论坛上提出了另一个与不同笔记本电脑的 EDID 数据传输相关的问题。 这个问题仍然存在、我附加了我要写入串行器 SRAM 的 EDID 数据字节。 您能否检查  这些 EDID 数据字节是否支持大多数笔记本电脑发送视频数据? 我还有一个问题、就是这个串行器能够支持的任何通用 EDID 数据字节以及我们的显示器件。 我们的显示屏幕具有1920x1200的显示分辨率。

    在上述帖子中、我还问过您其他问题、有时 SDA 线在通过 I2C 连接串行器时为低电平、有时 SDA 或 SCL 线会失真、这背后的问题是什么? 这一点非常令人沮丧、因为有时我们能够通过 I2C 与串行器正确通信、有时、由于 SDA 引脚处于低电平或任何 I2C 信号失真、串行器无法响应。 由于 EVK 套件已经有一个与 I2C 总线连接的4.4k 电阻上拉电阻器、因此我们不会从 I2C 主 MCU 上拉 I2C 总线、而是以400kHz 时钟速率运行 I2C 总线。 请帮助我们解决此问题。

    谢谢你。

    此致、
    Vikas

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

    大家好、Vikas、

    太棒了——我很高兴听到你能取得一些进展!

    我尝试将 EDID 加载到实验中类似的设置中、但无法将949识别为显示。 如果您可以共享您的所有视频规格(像素时钟、活动像素、消隐、同步宽度、前沿、 垂直和水平像素的图像尺寸、边框等)我可以生成新的 EDID、以查看这是否会产生差异。

    对于 SDA 和 SCL 线路、使用跳线连接到 EVM 上的接头时、连接可能不一致。 跳线会引入额外的噪声、阻抗、电容甚至电感、这些会妨碍 I2C 通信。 我建议为 SDA、SCL 和 GND 线使用您可以使用的最小跳线、以最大程度地减小这些影响。

    此致、

    Ryan

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

    您好、Ryan、

    感谢你的帮助。

    实际上、我执行了相同的操作、但没有得到结果。 我缩短了连接线、但问题仍然存在。  

    我需要与您分享的另一点是、我用于连接使用 I2C 的串行器的微控制器不支持多主器件。 那么、如果不支持多主器件、那么它可以与串行器正常配合使用是否存在相关性?

    我想讨论的是、我是否有任何方法可以使用它来消除将 I2C 总线与串行器连接的 TI 微控制器、 因此、我无法使用 ALP 工具、并且将有一个主器件、即我们的 MCU、用于连接串行器。  

    对于跳线 J37、该跳线与 V3.3短接、以便 I2C_VCC 以3.3V 上拉、如果通过移除 J37跳线并从 MCU 端或外部提供上拉电阻器来移除上拉电阻、情况会怎样。 这是否可以解决该问题?

    问题是、每当 I2C 主器件(MCU)写入串行器时、成功写入串行器后、SDA 引脚被置为"低电平"、再也不会拉高至"高电平"。

    I2C 速度设置为400kbps、并在 MCU 端设置模拟滤波器以降低噪声。  

    请分享您的想法。

    谢谢。

    此致、
    Vikas

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

    大家好、Vikas、

    [引用 userid="524955" URL"~/support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-j20-header-without alp-alp-am-4450]使用另一个 I2C 接口的 I2C 串行器。 那么、如果不支持多主器件、那么它可以与串行器正常配合使用是否存在相关性?

    这不应该是一个问题。 当未连接 ALP 时、TI MCU 不会发送 I2C 命令、这意味着所连接的 MCU 不会出现多主器件或仲裁问题。

    [引用 userid="524955" URL"~/support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i2c-i2c-interfacing-issue-no-i2c-data-read-use-use-j20-header-without al-p-alp-and-j437"#、如果通过提供外部上拉电阻器、则从 V437_437_450上拉电阻器或 V437_43.3v 上拉、以断开连接。] 这是否可以解决问题?

    移除跳线37将允许您在 MCU 侧使用不同的上拉电阻器。 I2C 总线的总电容可能超过默认上拉电阻允许的值。 请参阅此应用手册(https://training.ti.com/calculating-correct-pull-resistor-value-i2c-bus-applications)、计算在给定连接的器件/电容器的情况下建议使用的上拉电阻器。 如果上升/下降时间超出规格、949可能无法正确读取从 MCU 发送的命令。  

    [引用 userid="524955" URL"~//support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i2c-i2c-interfacing-issue-no-i2c-data-read-use-j20-header-without alp-alp-4450]、只要在写入"I2C/4SDA"器件后再次拉至"147450"主器、就会将其拉至"I2C 引脚、然后再拉至"147450"主器"、并将其写入"I2C 引脚。

    请分享此行为的范围捕获吗? 这是每次都发生、还是有时按预期工作?  

    关于您的 MCU、您是否能够与949以外的器件进行成功的 I2C 通信? 如果您的 MCU 未收到确认(您可以通过尝试与 I2C 总线上不存在的器件地址进行通信来测试此情况)、会发生什么情况?  

    此致、

    Ryan

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

    您好、Ryan、

    感谢你的答复。  

    实际上、我在不拆除将 I2C 总线上拉至3.3V 的跳线 J37的情况下解决了这个问题。

    问题是、我们的 MCU 作为 I2C 主器件所派生的时钟线在上升沿和下降沿期间没有为 I2C 总线的时钟和数据线生成足够的斜率、 I2C 总线线路的压摆率非常高、因此我降低了压摆率、现在它可以工作、我能够与串行器正确通信。

    现在、我发现了一个新问题、即在与连接到 Deser 另一侧的触摸控制器器件通信后、一段时间后 I2C 总线崩溃、SCL 线失真、如下所示。



    之后、我无法恢复 I2C 总线、即 SCL 线路、因此我必须重新启动串行器和 MCU 设置。

    现在、回到设置。 触摸控制器器件连接到 Deser 948UB、然后 Deser 通过 LVDS 链路连接到 Ser 949UB。 在串行终端、我们的 MCU 充当 I2C 主设备、该主设备需要来自解串器端的触摸控制器数据。

    我能够获取触摸控制器数据、但在一段时间后、如 SCL 线上所述、该数据会失真。 您能否与我分享此问题的原因、以及我如何解决此问题以通过 FPD 链接进行正确通信。

    触摸控制器的波特率为400kbps、我还将 MCU 作为数据速率为400kbps 的 I2C 主设备运行。 我在0x03寄存器地址中启用了 I2C 直通、并在串行器的0x06和0x07寄存器地址中设置了触摸控制器器件地址。  

    我必须每15ms 从触摸控制器读取一次数据、并且我每10ms 通过 I2C 总线查询串行器、以忽略任何数据。  

    是否需要等待串行器稳定、或者以该速率访问 I2C 总线有任何限制? 请分享您的想法并解决此问题。

    谢谢。

    此致、
    Vikas

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

    大家好、Vikas、

    很高兴 I2C 能够在串行器上本地工作!

    [引用 userid="524955" URL"~/support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i2c-i2c-interfacing-issue-no-i2c-data-read-use-use-j20-header-without alp-alp-n 在与 I2C 器件通信之后,在与另一端器件通信时发生冲突时,在以下链接到另一端的器件时发生故障时,[1494126]。

    有关这一点的几个问题:

    • 更确切地说、所附的解串器或串行器侧的屏幕截图是什么?  
    • 您是否会在 I2C 总线崩溃时包含另一侧的示波器捕获、以及 I2C 正常工作时解串器 I2C 总线的外观?
    [引用 userid="524955" URL"~/support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-use-j20-header-without alp-alp-am4126kbps 也是一个运行 I2C 数据速率的 I2C 主控制器的41494126kbps 和一个400kbps 速率 MCU 主控制器。] 我在0x03寄存器地址中启用了 I2C 直通、并在串行器的0x06和0x07寄存器地址中设置了触摸控制器器件地址。  [/报价]

    寄存器0x06应包含解串器地址。

    寄存器0x07和0x08应分别具有触摸控制器的地址和别名地址。

    [引用 userid="524955" URL"~//supp/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-j20-header-without alp-alp-" I2C 命令是否有任何稳定的 I2C 访问速率?4149126 请分享您的想法并解决此问题。[/引述]

    使用远程 I2C 时、主器件(在本例中、您的 MCU 位于串行器侧)需要支持时钟扩展、以便为远程触摸控制提供通过 FPD-Link 进行响应的时间。 下面是一个应用手册、其中介绍了时钟扩展的细节(通过具有双向控制通道的 FPD-Link III 进行 I2C 通信)(修订版 a))。 您的 MCU 是否支持时钟扩展?  

    此致、

    Ryan

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

    您好、Ryan、

    以下是我对您上述几点的看法。

    [引用 userid="501562" url="~/support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-j20-header-without -al93p-tool/14416]

    有关这一点的几个问题:

    • 更确切地说、所附的解串器或串行器侧的屏幕截图是什么?  
    • 您是否会在 I2C 总线崩溃时包含另一侧的示波器捕获、以及 I2C 正常工作时解串器 I2C 总线的外观?
    [/报价]

    所连接的图像来自串行器端。
    实际上、问题是解串器侧连接有点拥塞、因为触摸控制器和解串器嵌入在单个 PCB 上、在解串器侧探测 I2C 总线的信号真的非常困难。 但是、我将尝试深入 Deser 的一面、以找出问题的原因。 当我能够进入 Deser 侧连接时、何时会更新您的相关信息。

    [引用 userid="501562" url="~/support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-use-j20-header-without al93p-al16]在远程控制器件上使用时钟时、如果需要使用 I2C 控制器进行响应、则需要在远程控制器控制器(14416]14416)。 下面是一个应用手册、其中介绍了时钟扩展的细节(通过具有双向控制通道的 FPD-Link III 进行 I2C 通信)(修订版 a))。 您的 MCU 是否支持时钟扩展?  [/报价]

    是的、我们的 MCU 支持时钟扩展、我之前也有共享的应用手册、但我无法找到问题的解决方案。 但是、为了交叉检查这些信息、我将重新检查我的 MCU 是否支持时钟扩展。  

    同时、您能否告诉我任何其他导致此问题的事情、这真的很令人沮丧、因为我过去没有遇到过这样的 I2C 总线失真的情况? 这是由于触摸控制器无法响应 MCU I2C 查询而发生的吗?

    根据我的理解、触摸控制器数据如何通过 I2C 传输到 MCU:
    MCU 会查询已注册地址到串行器的从器件 ID 和从器件别名中存在的器件地址、因为直通已启用、 串行器现在充当代理主器件、串行器向解串器端的从器件 ID 地址查询、而解串器现在查询触摸控制器、然后触摸数据发送到串行器的反向通道、然后将信息检索到 MCU。 无论我哪里出错、请更正我。  

    如果是这种情况、串行器是否是 I2C 总线失真线路的罪魁祸首? 请帮帮我。

    谢谢。

    此致、
    Vikas

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

    大家好、Vikas、

    感谢您深入了解解串器方面。  

    [引用 userid="524955" URL"~//support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-use-j20-header-without alp-alp-e98"、因为我在这种情况下、我不会遇到任何其他问题、请告诉我、因为我在这种情况下、我确实会在这样做的情况下会导致 I2C 总线失真? 这是否是由于触摸控制器无法响应 MCU I2C 查询而导致的?

    只需澄清一下、I2C 总线上的这种失真是仅在总线崩溃后发生、还是在尝试通过远程 I2C 使用触摸控制器时始终存在? 发生此碰撞时、SDA 线路的状态是什么、并且您是否能够在碰撞前成功与触摸控制器通信?  

    关于导致这种失真的原因的几个想法:

    • 串行器侧 I2C 器件之间的接地连接不良。
    • I2C 总线上的电容过大/上拉值不正确。 有两点看法:
      • EVM 上的4.7K 电阻器是否是 I2C 线路上唯一的上拉电阻器(即 MCU 侧没有上拉电阻器)?  
      • 我想您提到过 I2C 总线上的模拟滤波器。 这是什么样子的、这会为线路增加电容吗?  
    [引用 userid="524955" URL"~//support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-j20-header-without alp-alp-mcu、按照我的 I2C/150698"触摸控制器数据指南、了解如何通过 I2C/150642"数据控制器:
    MCU 会查询已注册地址到串行器的从器件 ID 和从器件别名中存在的器件地址、因为直通已启用、 串行器现在充当代理主器件、串行器向解串器端的从器件 ID 地址查询、而解串器现在查询触摸控制器、然后触摸数据发送到串行器的反向通道、然后将信息检索到 MCU。 无论我哪里出错、请更正我。  
    [/报价]

    我认为您的理解是正确的、但我只想确保流程清晰:

    1. 启用直通后、MCU 将存储在串行器的目标别名寄存器中的地址写入总线、并指示写入/读取。  
    2. 串行器将 SCL 保持在低电平、并通过 FPD-Link 将 I2C 数据发送到解串器。
    3. 解串器在其本地 I2C 总线上充当主器件、向存储在串行器的目标 ID 寄存器中的地址写入数据并指示写入/读取。
    4. 解串器 I2C 总线上的从器件(触摸控制)对解串器进行确认。
    5. 解串器通过反向通道 FDP-Link 向串行器发送确认信号。
    6. 串行器释放 SCL 并将确认信息传送给 MCU。  
    [~用户 ID ="524955" URL" URL ="μ C//support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-j20-header-without alp-alp-')如果 I2C 总线的故障器/串行器的总线发生失真或错误,则该工具的故障是15064998。 请帮我。

    在解串器 I2C 总线上发生通信之前、串行器应仅负责保持 SCL 为低电平。 这将解释在 SCL 上看到0V、而不是您看到的失真。

    此致、

    Ryan

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

    您好、Ryan、

    感谢你的帮助。

    以下是我对您的评论的引述。

    [引用 userid="501562" URL"~/support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-use-j20-header-without Touch-alp-alp-"命令时、仅在尝试使用 I2C 总线时才会发生此操作、或仅在尝试通过 I2C 总线来阐明此操作时才会发生?#091561仅在尝试通过 I2C 总线来阐明此操作时发生? 发生此碰撞时、SDA 线路的状态是什么、并且您是否能够在碰撞前成功与触摸控制器通信?  [/报价]

    是的、在该操作正常之前、经过一段时间后、使用串行器的0xC7寄存器读取清除触摸中断、I2C 总线挂起、SDL 引脚保持低电平。

    我对 I2C 通信的故障排除进行了一些研究、 并发现、当 I2C 从器件有时没有获得适当的 SCL 时钟线、因此它等待有效的时钟脉冲来响应主消息时、那么在有效时钟脉冲到达之前、它(I2C 从器件)会将 SDA 线路保持在低电平? 串行器器件也会发生同样的情况吗?  

    我做了一些研究、如果 I2C 主器件在 SCL 线路上发送16或8个时钟脉冲、那么从器件会释放 SDA 线路。 我也尝试过这种方法、但不起作用。 我尝试将 SCL 引脚作为输出 GPIO、并将 GPIO 引脚的状态切换16和8次、以提供时钟脉冲、但这也不起作用。

    [引用 userid="501562" url="~/support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-j20-header-without -alp-tool#091561"
    • EVM 上的4.7K 电阻器是否是 I2C 线路上唯一的上拉电阻器(即 MCU 侧没有上拉电阻器)?  
    • 我想您提到过 I2C 总线上的模拟滤波器。 这是什么样子的、这会为线路增加电容吗?  
    [/报价]

    是的、MCU 侧没有上拉、EVK 侧的上拉电阻器使用4.7K 欧姆电阻器上拉至3.3V、是 I2C 总线中唯一的上拉电阻器。 此外、您能否告诉我为什么 C87和 C88电容器与 I2C 总线线路一起使用。 一般而言、我在 I2C 总线上没有看到任何电容器? 有必要吗? 我们是否可以移除 EVK 上的电容器?

    我不知道该模拟滤波器、因为它与 MCU I2C 总线的内部工作有关。 由于这个模拟滤波器、我将获得更多有关电容附加组件的知识。

    [引用 userid="501562" url="~/support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-using-use-j20-header-without alp-alp-l'命令、直至 SC1591561在 I2C 总线上发生通信中断器时才应负责控制 I2C/150961'i'/i4l'解串行器。] 这将解释在 SCL 上看到0V、但不是您看到的失真。

    有时、这会失真、有时 SDA 线为低电平。 我们是否必须遵循任何周期性计时? 因为我尝试使用 ALP 工具从触摸控制器读取寄存器的方法相同、但在这种情况下、没有挂起 I2C 总线。 我感到惊讶的是、为什么它不会被挂起。 这是因为 ALP 工具向串行器发送了一些周期性消息吗?

    请帮助我解决这个问题、因为解决这个问题需要太多的时间、并且使用这个串行器的生产变得有点困难。

    除了此查询、我还有另一个与 EDID 数据字节相关的查询。 我想、除了为这个最新的查询创建一个新的线程之外、我只能询问这个线程中的内容、因为这也是我早期的问题。

    我的问题是、我想使用将连接到串行器 EVK 的外部 EEPROM、并且我想使用 MCU 将 EDID 数据字节写入该 EEPROM。 正如我之前告诉过的、我已经能够使用 APB 接口将 EDID 数据字节写入其串行器内部 SRAM、但现在我想将 EDID 数据字节写入连接到串行器 EVK 的 EEPROM 中。 我是否可以使用任何方法将 EDID 数据字节写入 EVK 的 EEPROM、请告诉我?

    谢谢。

    此致、
    Vikas

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

    大家好、Vikas、

    [引用 userid="524955" URL"~//support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-ds90ub949-i2c-sdl-interfacing-issue-no-i2c-data-read-use-use-j20-header-without touch p-quote/i2c7命令]在使用 I2C 寄存器0x541536引脚读取中断之前、使用 I2C 寄存器进行操作、并在中断或中断后保持正常工作状态、并使用 I2C 寄存器0x541536引脚。

     这里有几个问题:

    • 请提供 I2C 协议的示波器捕获是否正常? 我希望确保通信符合预期。
    • 我对这里到底发生了什么有点困惑。 I2C 总线是仅在您尝试读取0xC7时挂起、还是重复读取0xC7并随机崩溃?
    • 您是指此处的 SCL 还是 SDA 引脚?  
    [引用 userid="524955" URL"~//support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-ds90ub949-i2c-interfacing-issue-no-i2c-data-read-use-j20-header-without alp-alp-15436"中的 I2C/541536]I2C 诊断工具 并发现、当 I2C 从器件有时没有获得适当的 SCL 时钟线、因此它等待有效的时钟脉冲来响应主消息时、那么在有效时钟脉冲到达之前、它(I2C 从器件)会将 SDA 线路保持在低电平? 串行器器件也会发生同样的情况吗?  [/报价]

    949应该自行释放 SDA 线。 此外、如果949检测到 SDA 线被按住太长时间、它将尝试通过在 SCL 上发送9个时钟来清除总线。 这些设置可以在寄存器0x05中找到、看起来您已经启用了它们。  

    我之前见过、如果 MCU 未接收到确认信号、它会将 SDA 线路拉至低电平。 您是否会尝试 使用 MCU 尝试与总线上不存在的器件地址进行通信? 例如、如果没有器件具有地址0x50、则尝试向总线写入0x50。 理想情况下、您应该会看到无响应和超时、之后 SCL 和 SDA 都拉高。

    [引用 userid="524955" URL"~μ C/support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-use-j20-header-without al-p-alp-use"、也可以使用 I2C 总线和 C5436电缆、请让我知道为什么使用 I2C 电缆和 C541536电缆。] 一般而言、我在 I2C 总线上没有看到任何电容器? 有必要吗? 我们是否可以移除 EVK 上的电容器?

    这两个电容器用于调整 I2C 总线上的上升沿时间。 如果总线上的所有器件的上升/下降时间都在规格范围内、则无需这些器件、您可以尝试不使用它们。

    [引用 userid="524955" URL"~/support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-ds90ub949-i2c-interfacing-issue-no-i2c-data-read-use-j20-header-without alp-alp-5436"、此工具有时失真、并且该工具的行数为15436]5436。 我们是否必须遵循任何周期性计时? 因为我尝试使用 ALP 工具从触摸控制器读取寄存器的方法相同、但在这种情况下、没有挂起 I2C 总线。 我感到惊讶的是、为什么它不会被挂起。 这是因为 ALP 工具向串行器发送了一些周期性消息吗?

    不需要、您无需遵循周期性计时。 您可以正确地看到 ALP 工具会定期发送消息、但这仅是为了保持 GUI 最新、而不是为了保持与949的通信正常。  

    我想进一步了解这两项测试(即 MCU 写入和 ALP 写入)。 您是在两种情况下都执行一次读取、还是存在差异(例如、使用一种方法发送更多通信、读取多个寄存器等)?

    您是否会为这两种方法发送范围捕获? 我想看看是否有任何差异。

    [引用 userid="524955" URL"~//support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-j20-header-without alp-alp-eP-ds5436"、我希望将此问题连接到外部 EEPROM 的 EEPROM 串行器、并希望将其用于 eM641536字节的数据写入 eem。 正如我之前告诉过的、我已经能够使用 APB 接口将 EDID 数据字节写入其串行器内部 SRAM、但现在我想将 EDID 数据字节写入连接到串行器 EVK 的 EEPROM 中。 我是否可以使用任何方法将 EDID 数据字节写入 EVK 的 EEPROM、请告诉我?[/QUERP]

    为了确保我了解您的要求、您是否希望将空白 EEPROM 连接到949板、然后通过 MCU 将 EDID 数据写入该 EEPROM? 是这样吗? 如果是这样、我可以检查是否有方法来执行此操作。  

    此致、

    Ryan

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

    您好、Ryan、

    感谢您的信息。

    我将在一段时间后向您返回有关串行器的 I2C 问题的信息。  

    目前、请告诉我如何使用编程将 EDID 数据字节写入连接到949串行器 EVK 板的空白 EEPROM?

    [引用 userid="501562" url="~//support/interface-group/interface/f/interface-forum/1110815/ds90ub949-q1evm-ds90ub949-q1evm-i2c-interfacing-issue-no-i2c-data-read-use-j20-header-without alp-5715]15、然后询问您是否要通过 ED41547板连接 EEPROM 数据? 是这样吗? 如果是这样、我可以检查是否有方法来执行此操作。  [/报价]

    是的、EEPROM 为空、我想使用 ALP 工具或任何方法(例如使用 MCU 通过 I2C 总线向串行器写入数据)写入 EDID 数据字节。请告诉我这种方法。

    谢谢。

    此致、
    Vikas

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

    大家好、Vikas、

    感谢您的确认。 当 EEPROM 直接连接到949 EVM 时、实际上无法向 EEPROM 写入数据。 通常最有效的方法是将 EEPROM 连接到试验电路板或类似的器件、然后连接可以将 EDID 写入 EEPROM 的 I2C 总线的器件。 这可以是 MCU、USB2ANY、甚至是通过其 I2C 接头连接的 EVM。 使用 EVM 执行此操作将允许您使用 ALP 将 EDID 写入 EEPROM。   

    此致、

    Ryan