Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • J JL_EARPHONE_ISSUE
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 161
    • Issues 161
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • chenmingqiu
  • JL_EARPHONE_ISSUE
  • Issues
  • #211
Closed
Open
Created Mar 07, 2026 by chenmingqiu@chenmingqiuOwner

FAQ:USB实现OTG插入检测说明

1、USB 检测启动:
1772864667687_6A7FC423-6B98-4cce-914C-173AE6FBC963
如果应用需要某些条件满足后再启动USB检测,可以把对应的“usb_otg_init(NULL, &otg_data);”接口挪到对应条件满足地方。

USB检测原理

一、USB接线

标准的USB连接使用4芯电缆,分别是5V的电源线(Vbus)、差分数据线负(D-)、差分数据线正(D+)以及地线 image

二、USB检测原理

image

usb host:D+、D-连接15K下拉电阻到地,没有设备插入的时候,两条数据线为低电平

usb slave:在D+或者D-上连接1.5K上拉电阻到3.3v电源,上拉电阻连接在D+还是D-取决于设备速度,低速设备连接在D-,全速和高速设备连接在D-

检测过程:

1、usb设备插入,usb host检测到D+/D-被拉高

2、起中断通知usb host控制器

3、对设备进行枚举

三、SDK的USB 从机检测实现

1.usb设备控制器为全速设备

2.检测定时器,默认周期250ms,检测到插入后周期改成50ms,进行3次滤抖

image

a.默认是用D+检测是否插入

image

DP检测依赖比较器检测,DM没有比较器,比较器的输出连到寄存器的1bit,软件读这个bit

正输入端(不接电脑只有DP15k下拉,接了电脑是芯片15k下拉电阻并联电脑15k下拉电阻变成7.5k),接电脑时,DP的正输入端电压比负输入端低,输出低电平给寄存器

b.D+复用串口的时候,用D-检测(设置成输入、上拉180k)

3.检测到插入,D+(usb控制器对应bit为低)/D-(被拉低并消抖完成后),打开D+的1.5k上拉检测到D+/D-被拉低并消抖完成后,打开D+的1.5k上拉

4.usb host开始对usb slave枚举

Edited Mar 09, 2026 by zhangminzong
Assignee
Assign to
Time tracking