otg

USB OTG插入检测识别

本小妞迷上赌 提交于 2019-11-28 19:13:54
转载请标注原文地址: http://blog.csdn.net/uranus_wm/article/details/9838847 一 USB引脚一般四根线,定义如下: 为支持OTG功能,mini/micro usb接口扩展了一个ID引脚(第4脚) A设备端ID脚接地,则初始状态为Host,例如PC和支持OTG设备做主设备时 B设备端ID脚悬空,默认上拉为高电平,则初始状态为Device,例如U盘和支持OTG设备做从设备时 1. 移动设备如需支持OTG,内部ID引脚需要默认上拉为高 2. VBUS是输入输出双向引脚。对于Device是power supply输入脚;对于Host需要串一个5V电源输出给device。 二 USB插入检测过程,看下面一个简单电路,Samsung Exynos4412平台: 电路描述:CON1为micro usb连接器,VBUS连接系统XuotgVBUS脚,同时提供一个中断输出脚到XEINT28 同时外部一个DC5V经过控制芯片也输出到XuotgVBUS,作为host时需要用到给外部供电 ID脚上拉1.8V作为Host/Slave检测,同时提供另一个中断输入脚到XEINT29 该设备支持OTG,下面说下设备的发现过程: 作为从设备插入PC端口时: 1. 系统检测到VBUS上的XEINT28上升沿触发中断,因为PC端会有一个5V从VBUS给过来

OTG识别原理

自作多情 提交于 2019-11-28 19:13:42
     如图1所示,那个是Micro USB的母头,可以清晰看到有5pin,分别是(不分顺序):Vbus、GND、D+、D-、ID。当移动设备,类似手机、平板电脑等要支持OTG功能,就必须使用这个接口,而且电路上需要将ID上拉。分两种情况来讨论:   1.当连接普通的USB线(图2),设备要充电或者连接电脑,这时候设备是充当电脑的从设备,Vbus是从电脑/适配器过来的,手机/平板吸收电流。这根普通的USB线,它的ID其实是悬空的,那就是说手机的ID与USB线的ID相接,此时电平为高。      2.当连接下面的OTG线(图3),手机、平板需要外接鼠标、U盘之类的,这时候Vbus就是由手机提供,为外设供电。需要注意的是,由于移动设备电池最高电压为4.2V,因此需要先升压再输出Vbus。OTG线的ID在接口位置已经和“GND”连接,所以当手机的ID一接上去,ID就变低电平。       所以,手机做老大时,ID为低电平;手机做小弟时,ID为高。 来源: http://www.cnblogs.com/ruihuagogogo/p/7161730.html

linux中OTG识别到一个U盘后产生一个sg节点的全过程

爷,独闯天下 提交于 2019-11-26 12:19:57
注:本篇文章暂时不做流程图,如果有需求后续补做。 1. 需要准备的源码文件列表: base部分: kernel\base\core.c kernel\base\bus.c kernel\base\dd.c kernel\base\class.c kernel\base\driver.c 头文件部分: kernel\include\linux\device.h kernel\include\linux\usb.h kernel\include\scsi\scsi_host.h usb核心部分: kernel\driver\usb\core\usb.c kernel\driverusb\core\driver.c kernel\driverusb\core\hub.c kernel\driverusb\core\driver.c kernel\drivers\usb\core\message.c kernel\drivers\usb\core\generic.c 大容量设备部分: kernel\driverusb\storage\usb.c scsi部分: kernel\driverscsi\scsi_scan.c kernel\driverscsi\scsi_sysfs.c kernel\driverscsi\sg.c 2. 当一个U盘插入linux设备前发生的事情: a.