嵌入式系统USB OTG硬件电路设计

1 MP157

1.2 OTG 理论

  • OTG 应运而生,OTG 是 On-The-Go 的缩写,支持 USB OTG 功能的 USB 接口既可以做 HOST,也可以做 DEVICE。那么问题来了,一个 USB 接口如何知道应该工作在 HOST 还是 DEVICE呢?这里就引入了 ID 线这个概念,前面讲解 USB 电气属性的时候已经说过了,Mini USB 插头有 5 根线,其中一条就是 ID 线。ID 线的高低电平表示 USB 口工作在 HOST 还是 DEVICE 模式:
     ID=1:OTG 设备工作在从机模式。
     ID=0:OTG 设备工作在主机模式。
    复制代码
  • 支持 OTG 模式的 USB 接口一般都是 Mini USB、Micro USB 等这些带有 ID 线的接口。
  • 如果STM32MP1 OTG模式使用USB Type C做接口,则没有ID线,USB Type C有自己的识别方法

1.2 MP157 OTG方案一

  • `FUSB302PMX 也是负责控制切换主机和从机模式的,MT9700HT5 是负载开关,用来控制VBUS 输出,当 OTG_PWR_CTRL 输出高电平的时候 OUT 引脚就输出 5V 电压,也就是 VBUS变为 5V。当 OTG_PWR_CTRL 输出低电平的时候 OUT 输出 0V,相当于 VBUS 关闭。
  • 随意当开发板上的 TypeC 接口作为主设备的时候(MP157作为从机),OTG_PWR_CTRL 要输出高电平,VBUS输出 5V,为外部 USB 设备供电。当 TypeC 接口作为从设备的时候,OTG_PWR_CTRL 输出低电平。OTG_PWR_CTRL 对应的 GPIO 引脚为 PZ6。

image.png

  • OTG_ID悬空,

image.png

1.3 MP157 OTG方案二

image.png image.png

2 IMX6ULL

  • I.MX6ULL 内部集成了两个独立的 USB 控制器,这两个 USB 控制器都支持 OTG 功能。I.MX6ULL 内部 USB 控制器特性如下:有两个 USB2.0 控制器内核分别为 Core0 和 Core1,这两个 Core 分别连接到 OTG1 和OTG2。
  • USB_OTG_VBUS 是 Mini USB 的电源线,只有插入Mini USB 线以后 USB_OTG_VBUS 才有效(5V)。插入 Mini USB 线就表示开发板此时要做从机(此时不考虑接 OTG 线的情况),USB_OTG_VBUS 就是电脑供的 5V 电压,由于分压电阻 R111和 R31 的作用,此时 USB_OTG1_ID 的电压就是 4.5V 左右,很明显这一个高电平。前面我们讲了,当 ID 线为高的时候就表示 OTG 工作在从机模式。

2.1 IMX6ULL OTG 方案一

  • USB_OTG1_VBUS

image.png

  • USB_OTG1_ID

image.png image.png

猜你喜欢

转载自juejin.im/post/7080786131263979556