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.

[参考译文] TPS65988:向 CPU 通知插入的内容

Guru**** 2595770 points
Other Parts Discussed in Thread: TPS65988

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/910311/tps65988-notify-the-cpu-about-what-is-plugged-in

器件型号:TPS65988

大家好、我的客户希望在以下配置中实现 TPS65988:

系统中有2个 C 型连接器、MTK CPU 仅支持一对 USB2.0 D+/D-信号。

因此、他们需要 TPS65988来通知 MTK CPU 插入哪个端口以及是否插入 DFP 或 UFP。

我想知道这是不是可能的、TPS65988如何告诉 CPU 这种情况? I2C 寄存器来完成的?

此外、C 型连接器可以连接到软件狗或 PC。

有3种情况:

1.连接到 PC、PC 为主机(类似于 USB3.0中的 DFP?) PC 将成为源。

2.连接到软件狗,设备是软件狗(类似于 USB3.0中的 UFP?) 加密狗将是接收器。

3.连接到加密狗,加密狗是设备,当适配器连接到加密狗时,加密狗将作为源。

TPS65988能否支持它? 我们是否应该将 TPS65988配置为 DRP? TPS65988如何知道它应该是灌电流还是拉电流?

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

    您好 Howard、

    这是一个好问题。 对于这种类型的功能、您将需要使用配置工具中的 I2C_IRQ 线路和 IRQ 事件。

    寄存器0x14到0x19是中断寄存器、每当发生特定事件时、它们都会将 IRQ 线路触发为低电平。 这是启用 IRQ 功能的典型流程。 我将使用寄存器0x3F 并确定连接的器件类型作为我的示例。  

    1. 使用应用配置工具、启用希望 PD 控制器触发的相关位并通知嵌入式控制器(EC)。 对于此特定示例,您的最佳事件是事件 “PlugInsertOrRemoval”(PlugInsertOrRemoval)  
    2. 使用应用配置工具更新配置后、将更新后的二进制文件加载到外部闪存中、以便 PD 控制器加载
    3. 加载更新的配置后、只要插入或移除器件、IRQ 线路就会触发低电平
    4. 当 IRQ 线路变为低电平时、读取寄存器0x14以确定触发了哪个 IRQ 事件。 如果   触发了“PlugInsertOrRemoval”事件,您可以让 EC 读取寄存器0x3F 以确定连接的设备类型。
    5. 使用中断清除(0x18)来清除 IRQ 寄存器并将 IRQ 线路恢复为高电平。 这是 EC 将根据 IRQ 变为低电平来了解新事件的时间

    您可以使用端口地址确定连接了设备的端口。 在上面的示例中、无论哪个端口被连接、IRQ 线路将变为低电平、这是因为有两个端口和一个 I2C_IRQ 线路进入嵌入式控制器。 所有寄存器都在两个端口之间共享、因此 EC 确定连接哪个端口的流程也应与此类似

    1. EC 看到 IRQ 线路变为低电平
    2. 读取端口1的中断寄存器
    3. 如果端口1 IRQ 寄存器为0、则读取端口2的 IRQ 寄存器
    4. 清除 IRQ 寄存器
    5. 处理读取中断

    希望这有助于回答您的问题

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

    Adam、

    我搜索了0x3F、它似乎只告知插入的是源还是接收、而不是 DFP 或 UFP。

    0x5F 似乎会告知插入的设备是 DFP 还是 UFP、对吧?

    我的理解是:DFP 或 UFP 仅与数据相关、与源设备或接收设备无关。

    可能有一个器件是 DFP、但也有一个灌电流、对吧?

    我描述了 TPS65988可能面临的3种情况:

    1.连接到 PC、PC 为主机(类似于 USB3.0中的 DFP?) PC 将成为源。

    2.连接到软件狗,设备是软件狗(类似于 USB3.0中的 UFP?) 加密狗将是接收器。

    3.连接到加密狗,加密狗是设备,当适配器连接到加密狗时,加密狗将作为源。

    我的建议是:

    TPS65988配置为 DRP 作为默认值(不首选 DFP 或 UFP)、首选灌电流。

    然后 CPU 可以读取0x3F 和0x5F 以了解插入的器件、并相应地配置 TPS65988、对吧?

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

    Howard、

    寄存器0x3F 的描述只是一个示例。 我介绍了 IRQ 系统的工作原理。

    正确的是、DFP 和 UFP 与数据相关、与功耗无关。 您可能有一个 Type-C PD 系统、它既是灌电流系统、也是 DFP 系统  

    是的、 CPU 可以读取0x3F 和0x5F 来知道插入了什么、但您仍需要使用 IRQ 事件、以便 CPU 知道何时读取这些寄存器。