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.

[参考译文] DS90UB954-Q1:TI954和 TI953之间的通信失败

Guru**** 2589830 points
Other Parts Discussed in Thread: DS90UB954-Q1, ALP

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/987869/ds90ub954-q1-communication-fails-between-ti954-and-ti953

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

您好!

  我们在硬件设置中使用 DS90UB954-Q1解串器和953串行器。

我使用的是 Jetson Xavier 模块、无法使用可用的 ALP 软件、我使用 I2C 命令在 DES 和 SER 之间实现正确链接。

我们的硬件设计简介:

来自 Xavier 模块的 I2C -> I2C 多路复用器扩展器-> 4个 O/P I2C 通道->在每个 I2C 通道1解串器已连接、而在每个解串器上、可以连接2个串行器

我遵循 TI 文档" SNLA267A–2019年3月"中的说明。  

我是 BIST 脚本的 runnig 命令、如下所示:

TI 954和 TI 953上的配置设置

  • 检查 I2C 扩展器总线编号

 

  • 接收到 TI 954 (解串器)地址。

  • 转储 TI 954的内容

 

  •  在 TI 954上设置端口选择、直通和别名。 检查0x04的内容= TI 953实现的 df locak

  • TI 953 (串行器)接收到的地址。

  • 尝试重置串行器(重置失败)

 

当我尝试从 TI954复位 TI953时、它不允许我写入复位寄存器。

您能不能告诉我是否缺少任何步骤、也可以向我提供完整的命令序列、以便在 TI954和953之间完成 BIST 测试。

谢谢。

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

    您好!

    因此、您可以从953读取、但无法写入953、对吧?  您是否能够探测 I2C 线路以验证是否收到953的 ACK?  是否有任何其他连接到扩展器的东西会导致一些冲突?  如果是这样、您可以通过覆盖954上的寄存器0x5C、尝试使用不同的地址对953进行别名。  但是、如果情况如此、我想您将无法阅读。

    您在流程图中的什么位置? 或者您是否正在尝试执行 BIST 测试的第一步?

    此致、

    Nick

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

    您好、Nick、

    我处于 BIST 流程图的第一步、即953和954数字复位(0x01)。

    我可以从953芯片读取数据、也可以对某些寄存器进行写入、但在尝试在 TI953的0x01寄存器上写入0x01时、它会返回失败。

    与 TI953没有任何冲突。 我使用0x18作为别名地址、并且能够使用该地址读取 TI953的内容。  

    以下是可执行的所有步骤:

    root@n-desktop:/home/n i2cdetect -l
    I2C-3 i2c 3190000.i2c I2C 适配器
    I2C-33 i2c i2c-7-mux (cha_id 3) I2C 适配器
    I2C_1 i2c c240000.i2c I2C 适配器
    I2C-31 i2c i2c-7-mux (cha_id 1) I2C 适配器
    I2C-8 I2C 31e0000.i2c I2C 适配器
    I2C-6 I2C 31c0000.i2c I2C 适配器
    I2C-4 i2c Tegra BPMP I2C 适配器 I2C 适配器
    I2C-2 i2c 3180000.i2c I2C 适配器
    I2C-32 i2c i2c-7-mux (cha_id 2) I2C 适配器
    I2C-0 i2c 3160000.i2c I2C 适配器
    I2C-30 i2c i2c-7-mux (cha_id 0) I2C 适配器
    I2C-7 i2c c250000.i2c I2C 适配器
    I2C-5 i2c 31b0000.i2c I2C 适配器


    root@n-desktop:/home/n i2cdetect -y -r 30
    0 1 2 3 4 5 6 7 8 9 A b c d e f
    00:------------ ------------ ------
    10:------------ ------------ ------------ --
    20:------------ ------------ ------------ --
    30:------------ ------------ ------ 3D ----
    40:UU ---------- ---- UU ------------ ----
    50:---------- ------------ ------------ --
    60:UU -- UU ---------- ------------ ------
    70:---- UU ------------


    root@n-desktop:/home/n i2cdump -y -f 30 0x3D
    未指定大小(使用字节数据访问)
    0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef
    00:7A 00 1e 20 df 01 00 fe 1c 10 7a 7a 83 09 08 7f z。 ????????????
    10:00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 02… ??
    20:30 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0?..........
    30:00 00 00 40 00 00 00 00 00 00 00 00 00 01 14 6F 00 40@… ???o@
    40:00 A7 71 01 00 00 00 00 00 00 12 00 13 04 64… ????d
    50:00 00 00 03 02 00 00 00 1e 00 30 00 00 00 00 00 00 ...??...?... 0…
    60:00 00 00 00 00 00 00 00 00 00 00 00 00 00 7c 88 88 |??
    70:2B 2c e4 00 00 C5 00 01 00 20 00 00 +、??????。 (笑声)
    80:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    90:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    A0:02 0f 00 08 18 00 00 00 00 00 00 00 00 00 00 00 00 ?????..........
    B0:08 14 3f 08 25 00 18 00 fc 33 83 74 80 00 00 00?????????????????
    C0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    D0:00 43 94 02 60 f2 00 00 00 00 00 00 00 00 00 00 00 .C?`?.........
    E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    F0:5F 55 42 39 35 34 00 00 00 00 00 00 00 00 00 00 _UB954 .........

    root@n-desktop:/home/n i2cset -y -f -r 30 0x3D 0x4c 0x03
    写入值0x03、回读匹配

    root@n-desktop:/home/n i2cset -y -f -r 30 0x3D 0x58 0x5E
    写入值0x5e、回读匹配

    root@n-desktop:/home/n i2cset -y -f -r 30 0x3D 0x58 0xdE
    写入值0xDE、回读匹配

    root@n-desktop:/home/n i2cset -y -f -r 30 0x3D 0x5c 0x18
    写入值0x18、回读匹配

    root@n-desktop:/home/n i2cdump -y -f 30 0x3D         (从寄存器0x04的值可以看出锁定已实现)
    未指定大小(使用字节数据访问)
    0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef
    00:7A 00 1e 20 df 01 00 fe 1c 10 7a 7a 83 09 08 7f z。 ????????????
    10:00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 02… ??
    20:30 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0?..........
    30:00 00 00 40 00 00 00 00 00 00 00 00 00 01 14 6F 00 40@… ???o@
    40:00 A7 71 01 00 00 00 00 00 00 12 03 04 64。?q?。。 ????d
    50:00 00 00 03 02 00 00 00 DE 00 30 18 00 00 00 ...??...?... 0?...
    60:00 00 00 00 00 00 00 00 00 00 00 00 00 00 7c 88 88 |??
    70:2B 2c e4 00 00 C5 00 01 00 20 00 00 +、??????。 (笑声)
    80:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    90:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    A0:02 0f 00 08 18 00 00 00 00 00 00 00 00 00 00 00 00 ?????..........
    B0:08 14 3f 08 25 00 18 00 fc 33 83 74 80 00 00 00?????????????????
    C0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    D0:00 43 94 02 60 f2 00 00 00 00 00 00 00 00 00 00 00 .C?`?.........
    E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    F0:5F 55 42 39 35 34 00 00 00 00 00 00 00 00 00 00 _UB954 .........


    root@n-desktop:/home/n i2cdetect -y -r 30
    0 1 2 3 4 5 6 7 8 9 A b c d e f
    00:------------ -------- 0c --------
    10:------------ ------ 18 -------------- ----
    20:------------ ------------ ------------ --
    30:------------ ------------ ------ 3D ----
    40:UU ---------- ---- UU ------------ ----
    50:-------------- ------------ ------------
    60:UU -- UU ---------- ------------ ------
    70:---- UU ------------


    root@n-desktop:/home/n i2cset -y -f -r 30 0x0c 0x01 0x01
    警告-回读失败


    root@n-desktop:/home/n i2cset -y -f -r 30 0x18 0x01 0x01 (无法重置953)
    警告-回读失败


    root@n-desktop:/home/n i2cset -y -f -r 30 0x18 0x0E 0xC0
    写入值0xc0、回读匹配

    从 snla267a 文档运行7.12脚本(示例传感器初始化脚本)。


    root@n-desktop:/home/n i2cset -y -f -r 30 0x18 0x0D 0x0C (能够写入953)
    写入值0x0c、回读匹配


    root@n-desktop:/home/n i2cset -y -f -r 30 0x18 0x0D 0x08
    写入值0x08、回读匹配


    root@n-desktop:/home/n i2cset -y -f -r 30 0x18 0x0D 0x0C
    写入值0x0c、回读匹配


    root@n-desktop:/home/n i2cdetect -y -r 30
    0 1 2 3 4 5 6 7 8 9 A b c d e f
    00:------------ -------- 0c --------
    10:------------ ------ 18 -------------- ----
    20:------------ ------------ ------------ --
    30:------------ ------------ ------ 3D ----
    40:UU ---------- ---- UU ------------ ----
    50:---------- ------------ ------------ --
    60:UU -- UU ---------- ------------ ------
    70:---- UU ------------


    root@n-desktop:/home/n i2cdump -y -f 30 0x18
    未指定大小(使用字节数据访问)
    0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef
    00:30 00 32 48 00 03 41 28 Fe 1e 10 7f 7f 0c c0 00 0.2H。?a (??????????? 。
    10:00 00 00 00 20 18 3c 80 62 00 00 00 00 00 00… ?20:00 00 00 00 02 00 67 33 01 00 00 00 00 00 00 00 00 00… ?.. G3?..
    30:00 20 09 04 00 10 00 7a 00 00 00 00 00 00 00 00 00 00 00。 ??????z。。
    40:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    50:20 c0 65 00 00 00 00 07 07 07 00 00 00 00 00 00 00 00 00?e. ?????
    60:00 00 00 00 C8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00… ?.........
    70:00 00 25 00 00 00 00 00 00 00 01 e4 00 00 00 00 00..% ???
    80:00 00 00 00 00 90 00 00 00 00 03 00 00 00 00 00 ...... ?。 ?。
    90:32 E3 64 01 00 00 00 00 00 00 03 00 23 24 0e 2?d?… ?.#$?
    A0:00 0f 0e 0d 0d 10 42 10 10 03 01 00 00。????? B???? …
    B0:04 4a 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00?J?..........
    C0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    D0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    F0:5F 55 42 39 35 33 00 00 00 00 00 00 00 00 00 00 00 _UB953

    复位芯片后、数字复位寄存器(0x01)是否会自行清除。 如何验证复位是否正确发生。

    如何确保 DES 和 DER 之间的链路正确。

    谢谢、

    Mehali

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

    您好 Mehali、

    我想这里发生的是、您实际上正在正确地重置器件。  复位器件后、I2C 通信中断、您看不到 ACK。  如果您只想验证它是否复位、那么可以尝试写入953上的一个寄存器、发出复位命令、并验证寄存器是否恢复为默认值。  之后、继续执行流程图。  

    此外、您还需要确保使用的 I2C 扩展器和器件支持时钟扩展。  有时、由于延迟和其他变量、954需要延长 I2C 时钟、同时等待来自链路的响应。

    此致、

    Nick

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

    您好、Nick、

    我在0x18上具有 TI953地址、如下所示:

    root@n-desktop:/home/n i2cdump -y -f 30 0x18
    未指定大小(使用字节数据访问)
    0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef
    00:30 00 32 48 00 03 41 28 Fe 1e 10 7f 7f f0 0f 00 0.2H。?a (??????????? 。
    10:00 00 00 00 20 18 3c 80 62 00 00 00 00 00 00… ?20:00 00 00 00 02 00 67 33 01 00 00 00 00 00 00 00 00 00… ?.. G3?..
    30:00 20 09 04 00 10 00 7a 00 00 00 00 00 00 00 00 00 00 00。 ??????z。。
    40:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    50:20 c0 45 01 00 00 00 07 07 00 00 00 00 00 00 00 E?...??
    60:00 00 00 00 C8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00… ?.........
    70:22 00 25 00 00 00 00 00 00 00 e4 00 00 00 00 00 00"。%。。 ?。
    80:00 00 00 00 00 90 00 00 00 00 03 00 00 00 00 00 ...... ?。 ?。
    90:32 E3 64 01 00 00 00 00 00 00 03 00 23 24 0e 2?d?… ?.#$?
    A0:00 0f 0e 0d 0d 10 42 10 10 03 01 00 00。????? B???? …
    B0:04 4a 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00?J?..........
    C0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    D0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    F0:5F 55 42 39 35 33 00 00 00 00 00 00 00 00 00 00 00 _UB953

    设置0x0d - 0x00
    root@n-desktop:/home/n i2cset -y -f -r 30 0x18 0x0d 0x00
    写入值0x00、回读匹配

    正在检查0x0d 寄存器的值、已正确设置为0x00
    root@n-desktop:/home/n i2cdump -y -f 30 0x18
    未指定大小(使用字节数据访问)
    0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef
    00:30 00 32 48 00 03 41 28 Fe 1e 10 7f 7f 00 0f 00 0.2H。?a (????????? ?
    10:00 00 00 00 20 18 3c 80 62 00 00 00 00 00 00… ?20:00 00 00 00 02 00 67 33 01 00 00 00 00 00 00 00 00 00… ?.. G3?..
    30:00 20 09 04 00 10 00 7a 00 00 00 00 00 00 00 00 00 00 00。 ??????z。。
    40:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    50:20 c0 45 01 00 00 00 07 07 00 00 00 00 00 00 00 E?...??
    60:00 00 00 00 C8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00… ?.........
    70:22 00 25 00 00 00 00 00 00 00 e4 00 00 00 00 00 00"。%。。 ?。
    80:00 00 00 00 00 90 00 00 00 00 03 00 00 00 00 00 ...... ?。 ?。
    90:32 E3 64 01 00 00 00 00 00 00 03 00 23 24 0e 2?d?… ?.#$?
    A0:00 0f 0e 0d 0d 10 42 10 10 03 01 00 00。????? B???? …
    B0:04 4a 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00?J?..........
    C0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    D0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    F0:5F 55 42 39 35 33 00 00 00 00 00 00 00 00 00 00 00 _UB953

    向 TI953发送复位信号
    root@n-desktop:/home/n i2cset -y -f -r 30 0x18 0x01 0x01
    警告-回读失败

    检查0x18的寄存器转储、0x0d 的值没有返回到其原始值0xf0、并且还具有我设置为0x00的值
    root@n-desktop:/home/n i2cdump -y -f 30 0x18
    未指定大小(使用字节数据访问)
    0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef
    00:30 00 32 48 00 03 41 28 Fe 1e 10 7f 7f 00 0f 00 0.2H。?a (????????? ?
    10:00 00 00 00 20 18 3c 80 62 00 00 00 00 00 00… ?20:00 00 00 00 02 00 67 33 01 00 00 00 00 00 00 00 00 00… ?.. G3?..
    30:00 20 09 04 00 10 00 7a 00 00 00 00 00 00 00 00 00 00 00。 ??????z。。
    40:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    50:20 c0 45 01 00 00 00 07 07 00 00 00 00 00 00 00 E?...??
    60:00 00 00 00 C8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00… ?.........
    70:22 00 25 00 00 00 00 00 00 00 e4 00 00 00 00 00 00"。%。。 ?。
    80:00 00 00 00 00 90 00 00 00 00 03 00 00 00 00 00 ...... ?。 ?。
    90:32 E3 64 01 00 00 00 00 00 00 03 00 23 24 0e 2?d?… ?.#$?
    A0:00 0f 0e 0d 0d 10 42 10 10 03 01 00 00。????? B???? …
    B0:04 4a 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00?J?..........
    C0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    D0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    F0:5F 55 42 39 35 33 00 00 00 00 00 00 00 00 00 00 00 _UB953

    请提供有关重置命令失败原因的更多详细信息。

    谢谢、

    Mehali

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

    因此、通过将0x01写入寄存器0x01、您可以在不复位寄存器的情况下执行数字复位。  要使用寄存器执行整个数字复位、您需要写入0x01[1]而不是0x01[0]。  话虽如此、我觉得您可能会遇到相同的行为、因为您正在重置数字块。  尝试按照建议写入位1、并验证您是否复位了寄存器。  如果您仍有问题、可能需要探测 I2C 线路以了解有关所发生情况的更多详细信息。

    此外、您是否确定扩展器支持时钟扩展?

    此致、

    Nick