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.

[参考译文] TUSB422:UFP 模式在初始化阶段卡住

Guru**** 2392655 points
Other Parts Discussed in Thread: TUSB422

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/764897/tusb422-ufp-mode-is-stuck-during-initialization-phase

器件型号:TUSB422

您好!

我们已使用 TUSB422设计用于 USB-c 电力输送的电路板、并遵循您的原理图。

我们使用微控制器来运行您的参考固件代码、但遗憾的是、我们无法通过整个序列来使主机(PC)正确检测到 USB-C 接口。

有限状态机的主要阶段是启动时的以下阶段:

警报寄存器0、值0x03
Current_state、PE_SNK_STARTUP
Current_state、PE_snk_discovery
Current_state、PE_SNK_WAIT_TO_CAPS
警报寄存器0、值0x82
Current_state、PE_SNK_HARD_RESET

之后、我们将永远不会收到来自主机的任何中断、主循环将一直运行、等待任何事件(但没有其他事件到达)。

看起来存在与高电流相关的问题、但当测量到的电流低于100mA 时、问题就会出现。

我们仅通过 USB-C 电缆供电。

我可以写下配置的方框图、以便更清楚地说明:

PC -> USB-c 电缆->采用 TUSB422的定制板

custom_Board 具有一个微控制器、您可以在其中运行参考固件代码、TUSB422芯片不需要外部上电

这种配置应该足以支持 USB-C PD 协议、但由于它超时等待功能、然后出现硬复位、因此我们的电路板会失去电源并进行复位。

您能给我一些关于如何解决此问题的建议吗?

是否需要此行为?

我们已经尝试了不同的 UFP 配置、无论是参考软件中的配置还是附加的配置、它们都不起作用、并且在等待功能后系统超时。

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

    ------------------------------
    #define PORT0 0
    #define PDO1 0
    #define PDO2 1.

    #define USB_VID 0x0451
    #define USB_PID 0x0422
    #define USB_BCD_device 0x0 /*器件定义的修订版本号*/

    const tcpC_config_t typec_config[NUM_TCPC_DEVICS]=

    [Port0].intf = SMBus_MASTER0、
    [Port0].slave_addr = TUSB422_SLAVE_ADDR_NC、
    [Port0].flags = TC_FLAGS_TRY_SNK、
    [Port0].role = Role_SNK、
    [Port0].rp_val = RP_HIGH_CURRENT、
    };

    CONST USB_PD_PORT_CONFIG_t PD_CONFIG[NUM_TCPC_DEVICS]=

    [Port0].USB_comm_capable = true、
    [Port0].USB_SUSPEND 支持= false、
    [Port0].external_powered = false、
    [Port0].dual_role_data = false、
    [Port0].unchunking_msg_support = false、对于 TUSB422 */、/*始终为 false

    [Port0].num_src_PDOS = 0、
    [Port0].num_snk_PDOS = 1、
    /* vSafe5V 灌电流 PDO */
    [Port0].snk_caps[PDO1].SupplyType = supply_type_fixed、
    [Port0].snk_caps[PDO1].MinV = PDO_VOLT (5000)、
    [Port0].snk_caps[PDO1].MaxV = 0、/* N/A */
    [Port0].snk_caps[PDO1].MaxOperatingCurrent = PDO_CURR (3000)、
    [Port0].snk_caps[PDO1].MinOperatingCurrent = PDO_CURR (100)、
    [Port0].snk_caps[PDO1].OperationalCurrent = PDO_CURR (3000)、
    [Port0].snk_caps[PDO1].MaxOperatingPower = 0、/* N/A */
    [Port0].snk_caps[PDO1].MinOperatingPower = 0、/* N/A */
    [Port0].snk_caps[PDO1].OperationalPower = 0、/* N/A */

    [Port0].LOUST_Capability = false、
    [Port0].giveba_FLAG = false、
    [Port0].NO_USB_SUSPEND = true、
    [Port0].fast_role_swap_support = FR_swap_not _supported、
    [Port0].PDO_Priority = Priority_Voltage、

    [Port0].auto_accept_swap_TO_DFP = false、
    [Port0].auto_accept_swap_TO_UFP = false、
    [Port0].auto_accept_swap_TO_source = false、
    [Port0].auto_accept_swap_TO_SINK = false、
    [Port0].auto_accept_vconn_swap = false、

    [Port0].multi_function_preferred= true、
    [Port0].UFP_alt_MODE_ENTRY_TIMEOUT_ENABLE = true、
    [Port0].id_header_VDO =(0x6C000000 + USB_VID)、
    [Port0].CERT_STAT_VDO = 0、
    [Port0].product_VDO =((uint32_t) USB_PID << 16)| USB_BCD_device、

    [Port0].num_product_type_vdos = 1、
    [Port0].product_type_vdos [0]= 0xB100001B、
    [Port0].product_type_vdos[1]= 0、
    [Port0].product_type_vdos[2]= 0、
    [Port0].num_svids = 1、
    [Port0].svids[0]= 0xFF01、
    [Port0].svids[1]= 0、
    [Port0].svids[2]= 0、
    [Port0].modes[0]= 0x080845、
    [Port0].modes[1]= 0、
    [Port0].modes[2]= 0、
    };
    ------

    您能否发现此配置中的任何错误?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    将分配给合适的人员
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很好、等待反馈。


    同时、让我为您提供更多详细信息:

    -我们的 i2c 接口使用1MHz 时钟运行(i2c 接口工作正常、我们可以在 CC 线路上看到数据)

    我们将 TUSB422用作 UFP

    我们计划启用交替模式

    -我们希望在交换电力输送协议后提供 DisplayPort 和 USB3

    我们计划在没有外部电源的情况下使用微控制器,来自 USB-c 的 Vbus 是主电源。 [如果我们发送 hard_reset 消息、由于功耗低、它无法正常工作]

    希望这将有助于理解我们的情景。


    您能帮我们解决这个问题吗?

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

    上午、

    感谢您回来。

    大家对此有什么新闻吗?

    我需要更多详细信息、请告诉我。

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

    连接 Type-C 电缆后、TUSB422的 VBUSIN、CC1和 CC2引脚上的电压是多少?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Vbusin = 5V
    CC1在0至200mV 的范围内
    CC2处于1.6至1.8V 的范围内
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对于未使用的 CC 引脚、200mV 似乎为高电平。 它应始终靠近 GND。 如果您翻转 USB-C 电缆的方向、CC1和 CC2上的电压是否互换?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、他们换了
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在实验中、
    我们编辑了 TI 库、并将命令从 hard_reset 更改为 soft_reset (在 PE_SNK_WAIT_for_CAPS 超时之后)。
    但变化不大。

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

    您好!

    微控制器软件是否使用 UFP 交替模式工作?

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

    您好!

    这是您使用的参考设计吗?  

    USB-CTm转 DisplayPort 有源电缆参考设计

    如果没有、您能否告诉我您使用的是哪种参考设计?  这将帮助我确定适合您的应用的 MCU 代码。

    此外、您能否以 zip 文件的形式向我发送您当前的 MCU 代码?

    谢谢、

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

    使用 USB-c PD 监听器、我能够解决我的大部分问题。

    感谢您的支持