android usb otg转换成host调试笔记

(原创作品,转载请标明转载路径)

近日在mstar 786平台上有个需求,即把usb otg转换成host接U盘。

开始调试时,以为只要把OTG的配置去掉,即CONFIG_USB_MS_OTG屏蔽掉即可,但编译烧录后,插入和拨出U盘时发现提示

android_work: did not send uevent (0 0   (null))

U盘的灯也不亮,说明没有上电。

后来搜索了有关资料,才发现需要把USB_CID脚拉低,拉低表示工作在HOST模式下。

有2种方式拉低该引脚:

1)硬件上把它强制拉低。

2)软件上拉低,在kernel目录下的drivers\usb\otg\ms_otg.c  中的ms_otg_init_irq函数,把如下代码屏蔽掉:

// OTG id pin pull-up

/*    reg_t = readl(&msotg->op_regs->usbc_regs->port_ctrl);

reg_t |= IDPULLUP_CTRL;

writel(reg_t, &msotg->op_regs->usbc_regs->port_ctrl);*/

编译烧录后,开机插入U盘,有如下LOG,表示识别成功:

[ 1374.141871] hub_events

[ 1374.144655] hub_port_connect_change

[ 1374.303911] hub_port_init

[ 1374.306911] ==13==> hub_port_init 1

[ 1374.310873] Plug in USB Port1

[ 1374.503906] usb 3-1: new high speed USB device number 3 using Mstar-ehci-1

[ 1374.958064] usb-storage 3-1:1.0: Quirks match for vid 058f pid 6387: 20

[ 1374.965494] usb-storage 3-1:1.0: This device (058f,6387,010b S 06 P 50) has unneeded SubClass and Protocol entries in unusual_devs.h (kernel 3.4.5)

[ 1374.965505]    Please send a copy of this message to <[email protected]> and <[email protected]>

[ 1374.992704] scsi1 : usb-storage 3-1:1.0

[ 1374.999392] hub_events

[ 1375.002158] hub_events

[ 1375.996046] scsi 1:0:0:0: Direct-Access     Generic  Flash Disk       8.07 PQ: 0 ANSI: 4

[ 1376.008295] sd 1:0:0:0: [sdb] 16293888 512-byte logical blocks: (8.34 GB/7.76 GiB)

[ 1376.017568] sd 1:0:0:0: [sdb] Write Protect is off

[ 1376.023685] sd 1:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn‘t support DPO or FUA

[ 1376.038784]  sdb: sdb1

[ 1376.046711] sd 1:0:0:0: [sdb] Attached SCSI removable disk

[ 1376.054754] sd 1:0:0:0: Attached scsi generic sg0 type 0

识别成功后,在/dev/block/下会生成一个设备节点,有可能叫sda1

需要手动把它mount到mnt目录后才可访问:

mount -t vfat /dev/block/sda1 /mnt/sdcard

然后就可以在root权限下cd sdcard访问该U盘内容

时间: 2024-10-11 00:43:39

android usb otg转换成host调试笔记的相关文章

android USB OTG功能如何打开及实现

一.检查HW原理图,确认是否支持OTG功能(vbus是否供上电,IDDIG pin连接是否正确) 二.若HW确认支持OTG功能,则按照以下方法分别打开USB OTG功能及实现挂载: 如何打开USB OTG功能: 1).在alps/mediatek/config/[project]/autoconfig/kconfig/project中打开CONFIG_USB_MTK_OTG和CONFIG_USB_MTK_HDRC_HCD CONFIG_USB_MTK_OTG =y CONFIG_USB_MTK_

android USB OTG功能实现

一.检查HW原理图,确认是否支持OTG功能(vbus是否供上电,IDDIG pin连接是否正确) 二.若HW确认支持OTG功能,则按照以下方法分别打开USB OTG功能及实现挂载: 如何打开USB OTG功能: 1).在alps/mediatek/config/[project]/autoconfig/kconfig/project中打开CONFIG_USB_MTK_OTG和CONFIG_USB_MTK_HDRC_HCD CONFIG_USB_MTK_OTG =y CONFIG_USB_MTK_

Android将图像转换成流存储与将流转换成图像

1.将图片转换成二进制流 public byte[] getBitmapByte(Bitmap bitmap){ ByteArrayOutputStream out = new ByteArrayOutputStream(); //参数1转换类型,参数2压缩质量,参数3字节流资源 bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out); try { out.flush(); out.close(); } catch (IOException e

Android 将View转换成Bitmap

/** * 将View转换成Bitmap的方法 * @param view * @return */ public static Bitmap getBitmapFromView(View view) { view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); view.layout(0, 0, v

android 将图片转换成黑白图片

先调用android的系统工具,获取图片生成bitmap文件,再使用android中的二值化技术,将图片转化成黑白图片,主界面代码: package com.example.blackwhite; import java.io.IOException; import android.media.ThumbnailUtils; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore;

如何把Android Studio项目转换成Eclipse的项目

1. 找到这个目录:项目名称\app\src\main,并把它导入到Eclipse里 2. 把项目名称\app\libs文件夹拷贝到新生成的项目下,并删除掉.DS_Store文件 3. 这时再看还有什么地方报错,比如我的项目会提示我最小API没有指定,那么在AndroidManifest.xml里加入代码 <uses-sdk        android:minSdkVersion="8"        android:targetSdkVersion="19"

Android中 int 转换成 byte[] 的方法

/** * 将基本数据类型转换为byte数组,以及反向转换的方法 * 只涉及转换操作,对于参数没有进行校验 * 适用范围:RMS操作.网络数据传输 */ public class DataConvert{ /** * 将int类型的数据转换为byte数组 * @param n int数据 * @return 生成的byte数组 */ public static byte[] intToBytes(int n){ String s = String.valueOf(n); return s.get

Android中将Bitmap转换成单色的Bmp图片

添加权限 : 测试代码: 原图: 解析的单色bmp图: 工具下载地址: http://download.csdn.net/download/u013914149/10024381

USB OTG学习

1. 概要 OTG设备使用插头中的ID引脚来区分A/B Device,ID接地被称作为A-Device,为连接时候的USB Host,A-Device始终为总线提供电力,ID悬空被称作为B-Device,为连接时候的USB Device,设备的USB Host/USB Device角色可以通过HNP切换.OTG设备连接时不能跨越USB Hub,如果跨越USB Hub则失去HNP功能. 这里要注意A-Device/B-Device与USB Host/Device不是一回事,没有必然的绑定关系.A-