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.

[参考译文] TM4C123GH6PM:处理自供电 TM4C123 MCU 上 VBUS 的正确方法

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/566080/tm4c123gh6pm-correct-way-to-handle-vbus-on-the-self-powered-tm4c123-mcus

器件型号:TM4C123GH6PM

本主题中 、Amit 建议根本不连接 VBUS 线路、因为 GPIO#10勘误表有问题。 但是、在这种情况 下、我们不会收到断开事件、而且我们违反了 USB 规范、因为我们需要在 VBUS 不存在时对 D+/D-线路进行三态处理(请参阅安圭拉博文)、至少在我理解正确的情况下是如此。

那么、正确处理 VBUS 意味着什么?

  • 我们检测连接/断开事件。
  • 即使我们的感应引脚尚未配置 VBUS 功能(因此我们无法使用 PB1)、也可以应用 VBUS (来自主机的5V 电压)。
  • 避免 GPIO#10问题(闩锁)。
  • 器件断开连接时复位 SOFTCONN 位。

对于硬件、我想使用如下所示的内容:

肖特基就在那里、因此电流永远不会流入主机。 RC 滤波器是为了消除 GPIO#10错误。 作为 USB_VBUS_senser、我想使用任何可耐受5V 电压的 GPIO (例如 PD6)。 这是否起作用?

对于一个软件、据我所知、我需要在   GPIO 下降沿中断上触发带有 ui32Event = USB_EVENT_DISCONNECTED 的 ControlHandler、但 SOFTCONN 位又如何呢? 为了进行正确的 SOFTCONN 处理、我是否需要修改 TivaWARE USB 库?

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

    IO 锁存是5V 电路的功能、与 VBUS 引脚完全无关。 即使您使用 PD6、USB_VBUS_SENSR 也会作为数字或模拟引脚功能进行连接?

    您无需单独管理 SOFTCONN、当您设置该位且总线未连接时、连接操作将延迟到总线连接。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Amit Ashara"] IO 闩锁是5V 电路的函数,与 VBUS 引脚完全无关。

    在这种情况下、电平转换器是否可以避免这是模拟功能?

    Robert

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

    如果摆幅限制在0-3.3V、并且上升时间不会在高压摆率下导致过冲、则应使用电平转换器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Amit:

    我知道这个。 我正在使用 PD6 (或任何其他 GPIO)、因为它可耐受5V 电压、并且默认的 PB1/USB0VBUS 不能耐受5V 电压(至少在启动和初始化期间)。 我计划将其用作简单的数字输入。 为了避免闩锁、我添加了第一个帖子中所示的 RC 滤波器。 这是足够的吗?

    关于 SOFTCONN 位、嗯、没关系。 只要我能够检测到所有事件:就让它检测到。 如果我理解正确、在主机关闭但仍通过 USB 电缆连接到器件的情况下、只需关闭上拉电阻器。

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

    让我澄清一下:IO 的 GPIO 模式不能耐受5V 电压。 然而、当被用作 USB 引脚时、5V 电压可被施加到 PB1引脚上。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Amit:

    这一点很清楚。 如果 VBUS 不能承受5V 电压会有点奇怪:)

    我想我在声明中明确说明:"即使我们的感应引脚尚未配置为 VBUS 功能(因此我们无法使用 PB1)、也可以应用 VBUS (来自主机的5V 电压)。"

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

    是的、当未配置感测引脚时、可以应用 VBUS。 但对于任何其他引脚也是如此。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Amit:

    但大多数 GPIO 默认为三态、在该配置中可耐受5V 电压、而 PB1不是。 是这样吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好 Andrei

    是的、没错。 当电源斜升时、所有 GPIO 均为三态。 但是、这对于 USB IO 来说不应该是一个问题、因为它们是一个不同的结构。