otg

usb otg type-c的硬件介绍

萝らか妹 提交于 2020-02-16 14:34:55
一 usb硬件接口: Type A Type B Type C Mini usb Micro usb 1 typeA 2 Type-b 3 Type-c 4 Mini usb 5 Micro usb 二 usb线序 1 Usb2.0 usb2.0包含: 1、DM+:Data Minus,数据负信号; 2、DP -:USB Data Positive,数据正信号; 3、VCC(Voltage to Current Converter)正极 4、GND负极(Ground即地线) Mini usb和micro usb在usb2.0 基础上引入了第五根线:ID检测线;用于OTG功能; OTG功能就是设备既可以作为usb host又可以作为client;设备就是通过检测这个ID脚完成主从切换的; OTG_ID:输入信号,由 USB OTG 协议定义,用于识别 USB 口所接设备的默认角色(HOST or device)。 USB_ID 默认上拉,处于 device 状况,如果要控制器进入 HOST 状态,需外接 mini-A 口或 micro-A 口将 USB_ID 短接到地。 Usb数据线 otg数据线 例如 当手机接入usb数据线后,检测到ID脚为悬空后自己切换为device模式; 当手机接入otg数据线后,检测到ID脚为低后自己切换到host模式; 2 Usb3.0 1

STM32F4xx usb库源码详解 custom HID

こ雲淡風輕ζ 提交于 2020-01-19 00:33:03
STM32F4xx USB 库源码详解(custom HID) 首先我列出几个非常棒的参考文档: Keil USB documentation http://www.keil.com/pack/doc/mw/USB/html/index.html USB_in_a_Nutshell https://www.beyondlogic.org/usbnutshell/usb1.shtml USB基础知识概论 https://www.crifan.com/files/doc/docbook/usb_basic/release/htmls/ http://www.crifan.com/files/doc/docbook/usb_basic/release/pdf/usb_basic.pdf.7z 一些常见的疑问 EndPoints到底有多少个 STM32F407/417/27/37/29/39等系列芯片,包括EP0在内的双向EP数目只有4个,而不是16个。这是要特别注意的地方,只不过程序为了其通用性,HAL_PCD_IRQHandler中对16个端点进行了轮询。 更具体详细的信息,建议参考《 STM-AN4879 》, https://www.st.com/resource/en/application_note/dm00296349.pdf 传输方向的问题 这里特别列出来

[FAQ20527] 如何关闭OTG功能

断了今生、忘了曾经 提交于 2019-12-27 01:44:02
设定kernel config中: CONFIG_USB_MTK_OTG=n或删除CONFIG_USB_MTK_OTG. 注: kernel config位置: kernel-3.18(kernel-4.4)/arch/arm[64]/configs/[_debug]_defconfig 确认文件修改有效与否: out/target/product//obj/KERNEL_OBJ/.config 编译验证: mmm -j12 -k kernel-3.18:kernel 2>&1 | tee k.log ; make -j12 bootimage-nodeps mmm -j12 -k kernel-4.4:kernel 2>&1 | tee k.log ; make -j12 bootimage-nodeps 烧录boot.img. 使用验证: 连接U盘,鼠标,键盘等外设,无任何反应,无法读取或操作. 来源: CSDN 作者: weixin_37376417 链接: https://blog.csdn.net/weixin_37376417/article/details/103718854

STM32启动过程简图

早过忘川 提交于 2019-12-16 19:57:34
STM32启动过程简图 以STM32F407为例,用一个简图介绍STM32的启动过程。如下: 对应的启动文件startup_stm32f40_41xxx.s的代码如下: ;******************** (C) COPYRIGHT 2013 STMicroelectronics ******************** ;* File Name : startup_stm32f40_41xxx.s ;* Author : MCD Application Team ;* Version : V1.2.1 ;* Date : 19-September-2013 ;* Description : STM32F40xxx/41xxx devices vector table for MDK-ARM toolchain. ;* This module performs: ;* - Set the initial SP ;* - Set the initial PC == Reset_Handler ;* - Set the vector table entries with the exceptions ISR address ;* - Configure the system clock and the external SRAM mounted on ;* STM324xG

android6.0获取OTG

僤鯓⒐⒋嵵緔 提交于 2019-12-05 18:34:45
最近项目中遇到了获取android OTG 路径安装以前的方法无法获取的问题,原来在android6.0已经改变了外置sd卡和u盘的挂载方式,改为自动挂载,所以之前的方法是无法获取的了。 通过查看系统设置中的存储项,该项可以显示usb存储必然有方法获取OTG路径,经查看源码,得出了获取路径的大概思路和方法。很遗憾的是没有能全部弄明白,不过能解决项目需求就好了。以下就是用来获取android6.0的外置usb路径的方法: StorageManager mStorageManager; String usbPath = null ; mStorageManager = context.getSystemService(StorageManager.class); List<VolumeInfo> volumes = mStorageManager.getVolumes(); for (VolumeInfo vol : volumes) { if (vol.getType() == VolumeInfo.TYPE_PUBLIC) { //6.0中外置sd和usb标示为公共的 File usbFile = vol.getPath(); if (usbFile!= null ) { usbPath = usbFile.getAbsolutePath(); } } } 这样的方法是有弊端

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

断了今生、忘了曾经 提交于 2019-12-05 16:49:54
注:本篇文章暂时不做流程图,如果有需求后续补做。 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.

How app can access files on USB OTG storages in Android 6.0 (API level 23) without root?

匿名 (未验证) 提交于 2019-12-03 01:23:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: Android 6.0 Developer Preview (API level 23) can natively mounts external removable USB OTG storages out-of-the-box without any additional apps (for more info please see: https://goo.gl/0UvsyN ). When user connects USB OTG storage, it shows up in the system storage menu and it is accessible with the built-in file manager. User can access all files on the USB OTG external storage using the new built-in file manager without root rights. When I connect my USB OTG storage to my Android device, it mounts at /storage/A03E-1DF5 and also at /mnt

USB OTG ID 检测原理

匿名 (未验证) 提交于 2019-12-02 23:43:01
OTG 检测的原理是: USB OTG标准在完全兼容USB2.0标准的基础上,增添了电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG)。USB OTG技术可实现没有主机时设备与设备之间的数据传输。例如:数码相机可以直接与打印机连接并打印照片,手机与手机之间可以直接传送数据等,从而拓展了USB技术的应用范围。在OTG中,初始主机设备称为A设备,外设称为B设备。也就是说,手机既可以做外设,又可以做主机来传送数据,可用电缆的连接方式来决定初始角色(由ID线的状态来决定)。 USB OTG接口中有5条线: 2条用来传送数据(D+ 、D-); 1条是电源线(VBUS); 1条则是接地线(GND)、 1条是ID线。ID线―以用于识别不同的电缆端点,mini-A插头(即A外设)中的ID引脚接地,mini-B插头(即B外设)中的ID引脚浮空。当OTG设备检测到接地的ID引脚时,表示默认的是A设备(主机),而检测到ID引脚浮空的设备则认为是B设备(外设)。 只有而言支持USB OTG的设备(即可以做USB Host有可以做Slave的设备),USB_ID信号才有意义。 当设备检测到USB_ID信号为低时,表该设备应作为Host(主机,也称A设备)用。 当设备检测到USB_ID信号为高时,表示该设备作为Slave(外设,也称B设备)用。 实际的USB连接线中,是没有USB

USB OTG插入检测识别

筅森魡賤 提交于 2019-11-28 19:14:38
一 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给过来,进入中断处理函数进一步确认ID脚状态,ID脚为低则状态错误,ID脚为高表示设备应该切换到从设备模式 2. 通知usb gadget使能vbus

USB OTG插入检测识别

自闭症网瘾萝莉.ら 提交于 2019-11-28 19:14:27
转载请标注原文地址: 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给过来