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.

[参考译文] TUSB4041I:TUSB4041 cfgActive 位无法正常工作、如所述

Guru**** 2771175 points

Other Parts Discussed in Thread: TUSB4041PAPEVM

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1610519/tusb4041i-tusb4041-cfgactive-bit-not-working-as-described

器件型号: TUSB4041I
Thread 中讨论的其他器件: TUSB4041PAPEVM

大家好、我们目前正在使用 TUSB4041PAPEVM 评估 TUSB4041 USB 集线器 IC SMBus 接口。 我们在 Devkit 上暴露了 SMBus 线缆、并将它们连接到 iMX Devkit。 上游 USB 连接到 iMX 的 USB 端口。

通常、在使用端口寄存器启用和禁用端口时、IC 似乎应通知主机端口已连接或断开连接、但似乎没有发生这种情况。

 数据表建议当 cfgActive 为 1 时、在位清除之前、IC 不应通过 USB 上行连接。 我们发现、在设置 smbusRst 位以允许配置(设置 cfgActive 位)后、IC 保持连接。 如果我们随后写入使用的端口寄存器以禁用端口、则禁用会立即发生、而不是等待我们清除 cfgActive 位。 主机也不会重新枚举该端口上的 USB 设备。 这是预期行为吗? 如果是、为什么 TUSB4041 未重新枚举以刷新主机上的端口?

类似于此用户在另一个主题上看到的内容: https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1442576/tusb4041i-port-used-configuration-register

我们发现、在数据表中根本没有提到 IC 一次只允许启用/禁用一个端口(通过使用的端口寄存器)。 例如、启动时、使用的寄存器 0x08 被设置为 0x0F、将 0x00 写入 0x08 不会改变寄存器值、但写入 0x0E 禁用端口 1 或写入 0x07 禁用端口 4 似乎可行。

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

    嗨、Timothy

    以下是过程:

    1:SMBUSz 为低电平。

    2:打开集线器电源。

    3:将 1 写入 0x07 寄存器中的位 7 customRmbl  

    4:写入寄存器 0x08 以 启用/禁用任何端口。

    5:将 1 写入  寄存器 0xf8 中的 cfgActive 位。

      您将看到  根据 0x08 寄存器中的设置、集线器已连接、下游端口已连接/断开。

    好极了

    Brian

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

    谢谢 Brian、我会试一试。 您能否详细说明为什么需要 customRmbl 位? 默认可移除寄存器为 0xF(所有端口均可移除,customRmbl 未设置)、根据我可以看出的情况、customRmbl 位仅生成可移除位 RW 而不是 RO。 它是否也会影响端口使用的寄存器的工作原理?

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

    customRmbl 还用于控制 0x08h 的端口启用/禁用。

    此致

    Brian

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

    您好、Brian、

    该序列似乎在首次加电时启用/禁用端口是有效的、但我仍然无法在运行时配置端口。 我的顺序如下:

    i2cset -y 0 0x44 0x07 0x8F # enable custom rmbl
    i2cset -y 0 0x44 0x08 0x07 # disable port 4
    i2cset -y 0 0x44 0xF8 0x01 # start cfg
    
    i2cset -y 0 0x44 0xF8 0x02 # reset
    
    i2cset -y 0 0x44 0x07 0x8F # enable custom rmbl
    i2cset -y 0 0x44 0x08 0x07 # enable port 4
    i2cset -y 0 0x44 0xF8 0x01 # start cfg

    使用上述 i2c 写入序列、在第一个启动 cfg 之后、端口 4 按预期被禁用。 复位并应用配置后、第二次端口 4 仍未通电。 只有在断开 IC 并重新供电后、才能启用端口 4。 为了能够在运行时启用端口、这里是否缺少 i2c 命令或序列?

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

    让我明天再到实验室检查一下。

    好极了

    Brian

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

    您能否控制 GRSTz 引脚?  您需要重置集线器或重新为 IC 供电以 重新配置端口。

    好极了

    Brian

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

    现在不是、所以我猜 smbusRst 命令不会 模拟 GRSTz 引脚的置位?

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

    没错。

    好极了

    Brian