在 本主题中 、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 库?