精华内容
下载资源
问答
  • USB驱动能力调节方法; USB眼图测试fail处理方法; [SOLUTION] 1、USB眼图测试fail通常需要修改如下两个register调节USB驱动能力: RG_USB20_VRT_VREF_SEL:调整VRT的电压大小, 电压愈大, DP DM上SWING愈大,等效...

    [DESCRIPTION]

    USB驱动能力调节方法;
    USB眼图测试fail处理方法;

    [SOLUTION]

    1、USB眼图测试fail通常需要修改如下两个register调节USB驱动能力:
    RG_USB20_VRT_VREF_SEL:调整VRT的电压大小, 电压愈大, DP DM上SWING愈大,等效调整眼图斜率;
    RG_USB20_VRT_VREF_SEL:直接调整DP DM 电压大小,等效调整眼图的高度

    2、修改或查看USB驱动能力有三种方法:
    1)工模菜单
    通过"##3646633##"进入工程模式,通过如下菜单可以查看修改USB驱动能力:
    hardware testing–>USB–>USB PHY TUning–>USB_DRIVING_CAPABILITY;

    2)adb cmd rw sysfs node
     有ROOT权限image通过下面节点查看修改驱动能力:
      调节等效斜率:echo xxx > /sys/kernel/debug/usb20_phy/RG_USB20_VRT_VREF_SEL (二进制,具体值参考register描述)
      调节等效高度:echo xxx > /sys/kernel/debug/usb20_phy/RG_USB20_TERM_VREF_SEL(二进制,具体值参考register描述)
      Both:echo n > /sys/kernel/debug/usb20_phy/USB_DRIVING_CAPABILITY(十进制)
    

    3)修改CODE:
    以alps-mp-p0.mp3为例

    (1)修改set_usb_phy_mode()函数
    以MT6765 device和host设置驱动能力为例,若host不care则只修改device即可;注意仅USB20可用;
    /kernel-4.9/drivers/misc/mediatek/usb20/mt6765/usb20_phy.c
    void set_usb_phy_mode(int mode)
    {
    switch (mode) {
    case PHY_DEV_ACTIVE:
    /* VBUSVALID=1, AVALID=1, BVALID=1, SESSEND=0, IDDIG=1, IDPULLUP=1 /
    USBPHY_CLR32(0x6C, (0x10<<0));
    USBPHY_SET32(0x6C, (0x2F<<0));
    USBPHY_SET32(0x6C, (0x3F<<8));
    // device mode add here 其中u2_vrt_ref与u2_term_ref 最大为0x7,u2_enhance最大为0x3//
    USBPHY_CLR32(OFFSET_RG_USB20_VRT_VREF_SEL,
    VAL_MAX_WIDTH_3 << SHFT_RG_USB20_VRT_VREF_SEL);
    USBPHY_SET32(OFFSET_RG_USB20_VRT_VREF_SEL,
    u2_vrt_ref << SHFT_RG_USB20_VRT_VREF_SEL);

    break;
    case PHY_HOST_ACTIVE:
    /
    VBUSVALID=1, AVALID=1, BVALID=1, SESSEND=0, IDDIG=0, IDPULLUP=1 */
    USBPHY_CLR32(0x6c, (0x12<<0));
    USBPHY_SET32(0x6c, (0x2d<<0));
    USBPHY_SET32(0x6c, (0x3f<<8));
    //host mode add here,与device mode相同,但需设定不同的us_vrt_ref/u2_term_ref/u2_enhance//
    break;

    }
    (2)usb_phy_tuning(void)函数
    以MT6779 为例,USB20/USB30均可用;
    /kernel-4.9/drivers/phy/mediatek/phy-mtk-mt6779.c
    void usb_phy_tuning(void)
    {
    printk(“mtk_usb_phy_tuning is_host_mode:%d”, mtk_musb->is_host_mode);
    if (mtk_musb->is_host_mode) {
    if (!instance->phy_tuning.inited) {
    instance->phy_tuning.u2_vrt_ref = 6;
    instance->phy_tuning.u2_term_ref = 6;
    instance->phy_tuning.u2_enhance = 1;
    } else {

    与host_modecode一致,只是需要设定不同的参数
    }
    (3)修改dts
    USB20/USB30均可用;
    usb_phy_tuning:usb_phy_tuning {
    compatible = “mediatek,phy_tuning”;
    u2_vrt_ref = <7> ; //should replaced by test value
    u2_term_ref = <7> ;//should replaced by test value
    };

    展开全文
  • 如何修改USB驱动能力

    千次阅读 2018-08-17 11:53:48
    Android 驱动(15)---如何修改USB驱动能力    如何修改USB驱动能力  修改或查看USB驱动能力有三种方法:  1、工模菜单  通过"*#*#3646633#*#*"进入工程模式,通过如下菜单可以查看修改USB驱动...

    Android 驱动(15)---如何修改USB驱动能力

     

     如何修改USB驱动能力

     修改或查看USB驱动能力有三种方法:

     1、工模菜单

        通过"*#*#3646633#*#*"进入工程模式,通过如下菜单可以查看修改USB驱动能力:

        hardware testing-->USB-->USB PHY TUning-->USB_DRIVING_CAPABILITY;

     2、USB节点

         有ROOT权限image通过下面节点查看修改驱动能力:

         /sys/kernel/debug/usb20_phy/USB_DRIVING_CAPABILITY

     3、修改CODE:

            通过修改code改变USB REG设定,调节驱动能力;

            (1)首先,以mt6735为例,查询USB 驱动能力控制REG为0X1121004 ,对应bit如下(其他平台寄存器名字一样,地址不同):     

                       

             (2)USB driver中把32bit寄存器当作4个8bits寄存器来访问,MT6735平台base address为11210000,所以0x11210004 0~7bit对应offset为0x4,8~15bit对应offset为0x5;

                    在usb20_phy.c的usb_phy_recover()函数里面
                    请在hs_slew_rate_cal()后面添加:
                    USBPHY_SET8(0x5,0x77);//将驱动能力设为这是最大值14(7+7),贵司可修改0x77为其他的bit_mask来实现调节;

    展开全文
  • 如何修改USB驱动能力  修改或查看USB驱动能力有三种方法:  1、工模菜单  通过"*#*#3646633#*#*"进入工程模式,通过如下菜单可以查看修改USB驱动能力:  hardware testing--&gt;USB--&gt;...

     如何修改USB驱动能力

     修改或查看USB驱动能力有三种方法:

     1、工模菜单

        通过"*#*#3646633#*#*"进入工程模式,通过如下菜单可以查看修改USB驱动能力:

        hardware testing-->USB-->USB PHY TUning-->USB_DRIVING_CAPABILITY;

     2、USB节点

         有ROOT权限image通过下面节点查看修改驱动能力:

         /sys/kernel/debug/usb20_phy/USB_DRIVING_CAPABILITY

     3、修改CODE:

            通过修改code改变USB REG设定,调节驱动能力;

            (1)首先,以mt6735为例,查询USB 驱动能力控制REG为0X1121004 ,对应bit如下(其他平台寄存器名字一样,地址不同):     

                       

             (2)USB driver中把32bit寄存器当作4个8bits寄存器来访问,MT6735平台base address为11210000,所以0x11210004 0~7bit对应offset为0x4,8~15bit对应offset为0x5;

                    在usb20_phy.c的usb_phy_recover()函数里面
                    请在hs_slew_rate_cal()后面添加:
                    USBPHY_SET8(0x5,0x77);//将驱动能力设为这是最大值14(7+7),贵司可修改0x77为其他的bit_mask来实现调节;

    展开全文
  •  MTK 平台修改或查看USB驱动能力有三种方法:    1、工模菜单  通过"*#*#3646633#*#*"进入工程模式,通过如下菜单可以查看修改USB驱动能力:  hardware testing--&gt;USB--&gt;USB PHY ...

     

     MTK 平台修改或查看USB驱动能力有三种方法:

     

     1、工模菜单

        通过"*#*#3646633#*#*"进入工程模式,通过如下菜单可以查看修改USB驱动能力:

        hardware testing-->USB-->USB PHY TUning-->USB_DRIVING_CAPABILITY;

     

     2、USB节点

         有ROOT权限image通过下面节点查看修改驱动能力:

         /sys/kernel/debug/usb20_phy/USB_DRIVING_CAPABILITY

     

     3、修改CODE:

        

                       

     

    方法1、修改set_usb_phy_mode()函数

    有时候device的驱动能力调整好,但手机作为host确存在连接不上device的问题,这时就需要单独调节device和host的驱动能力,以6765为例,可在如下位置进行修改:

            

    /kernel-4.9/drivers/misc/mediatek/usb20/mt6765/usb20_phy.c
    void set_usb_phy_mode(int mode)
    {
     switch (mode) {
     case PHY_DEV_ACTIVE:
     /* VBUSVALID=1, AVALID=1, BVALID=1, SESSEND=0, IDDIG=1, IDPULLUP=1 */
     USBPHY_CLR32(0x6C, (0x10<<0));
     USBPHY_SET32(0x6C, (0x2F<<0));
     USBPHY_SET32(0x6C, (0x3F<<8));
     // device mode add here 其中u2_vrt_ref与u2_term_ref 最大为0x7,u2_enhance最大为0x3//
    USBPHY_CLR32(OFFSET_RG_USB20_VRT_VREF_SEL,
    	VAL_MAX_WIDTH_3 << SHFT_RG_USB20_VRT_VREF_SEL);
    USBPHY_SET32(OFFSET_RG_USB20_VRT_VREF_SEL,
    	u2_vrt_ref << SHFT_RG_USB20_VRT_VREF_SEL);
    USBPHY_CLR32(OFFSET_RG_USB20_TERM_VREF_SEL,
            VAL_MAX_WIDTH_3 << SHFT_RG_USB20_TERM_VREF_SEL);
    USBPHY_SET32(OFFSET_RG_USB20_TERM_VREF_SEL,
            u2_term_ref << SHFT_RG_USB20_TERM_VREF_SEL);
    USBPHY_CLR32(OFFSET_RG_USB20_PHY_REV6,
            VAL_MAX_WIDTH_2 << SHFT_RG_USB20_PHY_REV6);
    USBPHY_SET32(OFFSET_RG_USB20_PHY_REV6,
            u2_enhance<<SHFT_RG_USB20_PHY_REV6);
    break;
     case PHY_HOST_ACTIVE:
     /* VBUSVALID=1, AVALID=1, BVALID=1, SESSEND=0, IDDIG=0, IDPULLUP=1 */
     USBPHY_CLR32(0x6c, (0x12<<0));
     USBPHY_SET32(0x6c, (0x2d<<0));
     USBPHY_SET32(0x6c, (0x3f<<8));
     //host mode add here,与device mode相同,但需设定不同的us_vrt_ref/u2_term_ref/u2_enhance//
     break;
     case PHY_IDLE_MODE:
     /* VBUSVALID=0, AVALID=0, BVALID=0, SESSEND=1, IDDIG=0, IDPULLUP=1 */
     USBPHY_SET32(0x6c, (0x11<<0));
     USBPHY_CLR32(0x6c, (0x2e<<0));
     USBPHY_SET32(0x6c, (0x3f<<8));
     break;
     default:
     DBG(0, "mode error %d\n", mode);
     }
     DBG(0, "force PHY to mode %d, 0x6c=%x\n", mode, USBPHY_READ32(0x6c));
    }

     方法2、直接修改usb_phy_tuning(void)函数,修改为:

    void usb_phy_tuning(void)
    {
        printk("mtk_usb_phy_tuning is_host_mode:%d", mtk_musb->is_host_mode);
        if (mtk_musb->is_host_mode) {
    	if (u2_vrt_ref != -1) {
    		if (u2_vrt_ref <= VAL_MAX_WIDTH_3) {
    			USBPHY_CLR32(OFFSET_RG_USB20_VRT_VREF_SEL,
    				VAL_MAX_WIDTH_3 << SHFT_RG_USB20_VRT_VREF_SEL);
    			USBPHY_SET32(OFFSET_RG_USB20_VRT_VREF_SEL,
    				u2_vrt_ref << SHFT_RG_USB20_VRT_VREF_SEL);
    		}
    	}
    	if (u2_term_ref != -1) {
    		if (u2_term_ref <= VAL_MAX_WIDTH_3) {
    			USBPHY_CLR32(OFFSET_RG_USB20_TERM_VREF_SEL,
    				VAL_MAX_WIDTH_3 << SHFT_RG_USB20_TERM_VREF_SEL);
    			USBPHY_SET32(OFFSET_RG_USB20_TERM_VREF_SEL,
    				u2_term_ref << SHFT_RG_USB20_TERM_VREF_SEL);
    		}
    	}
    	if (u2_enhance != -1) {
    		if (u2_enhance <= VAL_MAX_WIDTH_2) {
    			USBPHY_CLR32(OFFSET_RG_USB20_PHY_REV6,
    				VAL_MAX_WIDTH_2 << SHFT_RG_USB20_PHY_REV6);
    			USBPHY_SET32(OFFSET_RG_USB20_PHY_REV6,
    					u2_enhance<<SHFT_RG_USB20_PHY_REV6);
    		}
        } else {
          ..........
          与host_modecode一致,只是需要设定不同的参数
        }  
    展开全文
  • mtk-usb驱动

    2014-07-09 08:23:35
    mtk-usb驱动 (MTK USB Debug Port)运行InstallDriver.exe自动安装
  • USB驱动的概念介绍

    千次阅读 2018-11-11 12:37:23
    所有的USB传输都是从USB主机发起,USB设备没有能力“主动”通知USB主机。 例子:USB鼠标滑动一下立刻产生数据,但是它没有能力通知PC机来取数据,只能被动等待PC机来读。 2、USB的传输类型 (1)控制传输:可靠的...
  • 重点是usb驱动开发。学习完这三个文件后,你将拥有为usb设备开发windows驱动程序的能力。如需学习stm32 usb设备的开发,敬请关注本人csdn账号。本人有stm32 usb设备开发的相关文档:“STM32F10xxx全速USB设备开发...
  • USB驱动,电脑没有usb驱动怎么办

    千次阅读 2021-07-28 06:55:53
    win10系统其实本身是带有安卓手机的MTP驱动的,所以我们根本不需要去网上找各种驱动来安装,也不需要各种助手自带的驱动,当你遇到MTP模式无法使用,不能传输文件,没有显示手机的设备盘符的话,我们可以在设备管理...
  • MTK智能机USB驱动-刷机必备驱动
  • [RK3288][Android6.0] USB EHCI 驱动小结

    千次阅读 2017-02-07 10:49:41
    Platform: RK3288 OS: Android 6.0 ...rk3288平台的usb host controller接口实现都在这里. echi-hcd.c: linux通用echi hcd驱动. echi-rockchip.c: 平台echi驱动. rk3288平台总共有5个usb host contr
  • 我养你”,让我现在在家浪荡了快两个月了,现在疫情有所缓和,但是能不出门还是少出门,现在翻翻书,看看内核代码,再敲敲代码,偶尔玩玩游戏也还可以,但还是要趁这段时间充实一下自己,提高自己的能力水平,才能更...
  • Linux驱动开发: USB驱动开发

    千次阅读 多人点赞 2021-08-24 22:03:05
    一、USB简介 1.1 什么是USB? USB是连接计算机系统与外部设备的一种串口总线标准,也是一种输入输出接口的技术规范,被广泛地应用于个人电脑和移动设备等信息通讯产品,USB就是简写,中文叫通用串行总线。最早出现...
  • Linux USB 驱动开发(三)—— 编写USB 驱动程序

    万次阅读 多人点赞 2016-03-26 15:10:13
    Linux的设备驱动都遵循一个惯例——表征驱动程序(用driver更贴切一些,应该称为驱动器比较好吧)的... 下面先看一下Linux内核源码中的一个usb-skeleton(就是usb驱动的骨架咯),其定义的设备结构体就叫做usb-skel:s
  • 适用于TL-WN821N V4.0版本网卡的驱动程序.本驱动适用于TL-WN821Nnbsp;V1.0和v2.0无线网卡,增加了...TP-LINK TL-WN821N 300M无线USB网卡驱动整体来说还不错,接收能力挺强的,隔了两堵墙,没有掉过线。TL,欢迎下载体验
  • 周立功can卡转usb驱动程序是一款靠谱的驱动软件,支持32位和64位操作系统,can卡具有强大的错误检测能力,灵活性强,使用这款驱动可以增强稳定性,需要的朋友快来下载吧!周立功can卡介绍周立功can卡是单机开发过程...
  • 小米平板3usb驱动

    2021-06-08 12:46:21
    小米平板3usb驱动是一款由小米官方出品适用于小米平板3的usb接口专业驱动如果您正在使用小米平板pad3而usb接口使用过程又不敬如人意马上下载这款小米平板3驱动吧。。相关软件软件大小版本说明下载地址小米平板3usb...
  • USB驱动编写_USB介绍

    2019-08-10 22:01:21
    现象:把USB设备接到PC ... windows里已经有了USB的总线驱动程序,接入USB设备后,是"总线驱动程序"知道你是"android phone" 提示你安装的是"设备驱动程序" USB总线驱动程序负责:识别USB设备, 给U...
  • 中兴U956手机USB驱动程序,官方最新驱动,如果你有这款手机,需要连接电脑,那就现在这款驱动吧。手机特色· 四核1.2GHz处理器,性能更卓越,运行更流畅· 5英寸高清视网膜屏,视觉享受新体验· 800万BSI背照式...
  • Linux usb驱动开发(基础)

    千次阅读 2018-11-09 15:02:20
    最近想学几个基于linux的驱动开发:(想想还是从usb驱动开始记录,毕竟USB的驱动的开发的讲解比较多,学习比较快) (做个笔记,忘了就进来看看) 参考文档:文档写的比较基础: ... ...
  • 一、USB设备驱动程序的构成 1、设备的探测  用于检查传递给探测函数的设备信息,确认驱动程序是否适合该设备。 2、数据的发送和接收  负责主机到设备的发送和设备到主机的数据接收。 3、设备断开  当设备断开时候...
  • usb驱动开发1之学习准备

    千次阅读 2018-01-08 17:31:01
    出处:http://www.cnblogs.com/myblesh/p/3634702.html ...很敬佩fudan_abc的文章,仔细学习和分析受益很多。注:fundan_abc所分析linux内核代码所用的版本是2.6.22.6。 ...Q:学习linux下的usb通信要怎样进行?
  • 1、usbmouse.c (1)probe函数 在这个probe函数后判断是不是一个鼠标,先得到usb_host_interface结构体,除了端点0外,端点个数如果不是1,返回错误,表示不是自己能支持的设备。如果只有一个端点,放在...
  • Linux USB总线驱动框架分析

    千次阅读 2019-04-01 16:17:32
    1、USB驱动引入 USB(全称 Universal Serial Bus,通用串行总线),已经成为PC及嵌入式设备中最常用、最便捷的通信接口。Linux USB子系统较为庞大,本文主要对Linux系统下的USB总线驱动框架进行概述,重点的细节待...
  • 【linux驱动USB总线驱动框架分析

    千次阅读 2019-02-19 20:26:38
    1、USB驱动引入 USB(全称 Universal Serial Bus,通用串行总线)。USB接口已经成为PC及嵌入式设备中最常用、最便捷的通信接口。Linux USB子系统较为庞大,本文主要对Linux系统下的USB总线驱动整体框架进行概述,...
  • 23_ZYNQ7020开发板_USB驱动

    千次阅读 2020-08-22 16:47:53
    usb是通用串行总线的总称。Linux支持几乎所有的usb设备和鼠标,键盘,打印机。 一、USB识别的过程,USB设备接入主机后,匹配过程如下; usb设备接入主机后,匹配的过程如下 1)硬件检测 usb接口有四条线分别为5V、GND...
  • Windows下usb接口驱动技术

    千次阅读 2019-08-16 09:57:38
    一、USB概述 USB的英文全称为Universal Serial Bus,中文含义是通用串行总线,是由Conpaq、DEC、IBM、Inter、Microsoft、NEC和Northen Telecom等公司为简化PC与外设之间的互连而共同研究开发的一种免费的标准化连接...
  • 第1章 产品概述 FW150US 超小型 150M 无线 USB 网卡适用于台式 PC 机、笔记本等设备... 具有良好的抗干扰能力;  配置简单并提供检测信息;  支持 Windows XP, Windows 7、Windows 8 和 Windows 8.1 操作系统。
  • WIN10 MTP USB驱动无法安装解决方法win10系统其实本身是带有安卓手机的MTP驱动的,所以我们根本不需要去网上找各种驱动来安装,也不需要各种助手自带的驱动,当你遇到MTP模式无法使用,不能传输文件,没有显示手机的...
  • USB 设备驱动代码通过urb和所有的 USB 设备通讯。urb用 struct urb 结构描述(include/linux/usb.h )。  urb 以一种异步的方式同一个特定USB设备的特定端点发送或接受数据。一个 USB 设备驱动可根据驱动的需要,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,674
精华内容 9,469
关键字:

usb驱动能力