• 注册 / 登录
  • 切换到窄版
  • 查看: 1365|回复: 0

    OTG 硬件检测电路

    [复制链接]

    665

    主题

    679

    帖子

    6476

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    6476
    发表于 2023-7-7 11:13:38 | 显示全部楼层 |阅读模式

    路线栈欢迎您!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    一、OTG 接口与转换器

    OTG 是"On The Go"的英文缩写,可以理解为“安上即可用”。USB 传输是主从结构,一切 USB 传输都由 Host 发起。

    在开发板上可以插入 U 盘,这时开发板作为 USB Host。

    开发板要跟 PC 通信,开发板就要作为 USB Device。

    开发板要作为 USB Host、USB Device 两种角色,可以使用 OTG 插口:它可以根据硬件电路自动识别自己的角色,切换为 USB Host 或 USB Deivce。

    OTG 插口有多种形态,常用的有 Micro USB、Type C,如下:

    0.png

    1.png

    1.1 Micro USB

    对于 Micro USB 插座,它有 5 条引脚:

    2.png

    引脚作用如下表所示:

    引脚名
    作用

    VBUS作为 Host 时,对外供电
    作为 Device 时,接收外部输入的电源
    DM数据信号
    DP数据信号
    ID分辨自己角色的引脚:
    1:作为 Device
    0:作为 Host
    GND地线


    开发板作为 USB Device 时,跟 PC 上的 USB 相连,PC 的 USB 接口只有 VBUS、DM、DP、GND,所以开发板的 ID 引脚跟 PC 的 USB 口并无连接,它被板子上的上拉电阻拉高。

    开发板作为 USB Host 时,需要接入一个"OTG 转换器",再连接 U 盘。如下图黑色的转换器:

    3.png

    OTG 转换器的内部电路很简单,就是把 ID 引脚拉低:

    4.png

    这个转换器插入开发板的 OTG 口之后,OTG 口上的 ID 引脚就被拉低,软件把开发板转换为 USB Host。

    1.2 Type C

    Type C 插座里面有两组完全一样的信号,Type C 数据线无论正插、反插,都可以使用:

    5.png

    Type C 插座有如下信号,在 USB2.0 协议里我们只关心红框里的信号:
    6.png

    开发板作为 USB Device 时,跟 PC 上的 USB 相连,PC 的 USB 接口只有 VBUS、DM、DP、GND,所以开发板的 CC1、CC2 引脚跟 PC 的 USB 口并无连接,它被板子上的上拉电阻拉高。

    开发板作为 USB Host 时,需要接入一个"OTG 转换器",如下图黑色的转换器:

    7.png

    如果不考虑兼容 USB 3.0 协议,上述转换器的电路图很简单,把 Type C 插头里面的 CC 引脚连接 5.1K 欧姆电阻到 GND 即可。如下图所示:

    8.png

    二、OTG 接口电路

    开发板上的 OTG 接口需要实现两个功能:

    检测 ID 引脚(使用 Type C 接口的话是 CC1、CC2 引脚),引入主控芯片:软件根据它设置 USB 控制器的角色(Host 或 Device)
    根据 ID 引脚(或者 CC1、CC2)决定 VBUS 是否输出电源:硬件电路自动实现,或者加入专用芯片

    2.1 Micro USB

    当 USB_OTG1_ID 高电平时,说明 ID 引脚被板子的上拉电阻拉高,没有被拉低。这时候 AO3416 导通,EN 引脚不使能。这样 SY6280AAAC 就不会对外供电,USB_OTG1_VBUS 就没有电压。

    当 USB_OTG1_ID 低电平时,说明 ID 引脚被拉低,这时候 AO3416 截至,EN 引脚使能,SY6280AAAC 对外供电,USB_OTG1_VBUS 有电压,开发板作为 USB Host 对外供电。

    9.png

    2.2 Type C

    如果不考虑兼容 USB 3.0 协议,可以使用如下精简电路:CC1、CC2 作为 ID 引脚。原理和上图类似。

    10.png

    如果要兼容 USB 3.0 协议,则需要加入专用的芯片,专用芯片检测到 CC1、CC2 状态后,发中断给主控,并通过 I2C 将信息报给主控,主控再控制供电引脚:

    11.png

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|路丝栈 ( 粤ICP备2021053448号 )

    GMT+8, 2024-9-17 04:07 , Processed in 0.056493 second(s), 22 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表