从驱动层将USB3.0转换为USB2.0

最近有个需求是把USB3.0强制转换成USB2.0,也就是让操作系统把硬件上的3.0识别成2.0 。从网上找到了如下内容,顿时心里暖暖的,特拿来分享一下。

1. Linux下的操作,其中 设备号为 USB3.0 总线设备的设备号,可以通过 lspci -nn | grep xHCI 查出来

It‘s possible. It involves changing configuration registers in the xHCI controller, so it‘s obviously chipset-specific. This is how it‘s done on Linux. I suppose it should be possible to do it on Windows too, but I don‘t know what
utility to use.

To set both ports to USB 2.0 mode:

sudo setpci -H1 -d 8086:1e31 d8.l=0

Right port 3.0 and left port 2.0:

sudo setpci -H1 -d 8086:1e31 d8.l=1

Right port 2.0 and left port 3.0:

sudo setpci -H1 -d 8086:1e31 d8.l=2

Changing the register at d8 (USB3_PSSEN) sets the ports in USB 2.0 mode, but they are still on the xHCI controller. To switch over to EHCI, you also have to change the register at d0 (XUSB2PR). For example to run both ports off
the EHCI contoller you have to do this:

sudo setpci -H1 -d 8086:1e31 d8.l=0

sudo setpci -H1 -d 8086:1e31 d0.l=0

The registers are documented in this datasheet, in section 17.1.

http://www.intel.com/content/www/us/en/chipsets/7-series-chipset-pch-datasheet.html.

2.Windows下

下边这条回复简洁明了

pciutils (lspci, setpci) for Windows are available
here: https://eternallybored.org/misc/pciutils/

用法跟上边是一样的。

这样 3.0的口硬生生的就变成2.0的了。

时间: 2024-11-29 01:42:42

从驱动层将USB3.0转换为USB2.0的相关文章

USB2.0的最高传输速率

USB2.0除了拥有USB1.1中规定的1.5Mbps和12Mbps两个传输模式以外,还增加了480Mbps高速数据传输模式(注:第二版USB2.0的传输速率将达800Mbps,最高理想值1600Mbps).虽然USB2.0的传输速度大大提升了,但其工作原理和模式是完全与USB1.1一样的,而提高到480 Mbps的传输速度的最关键技术就是提高单位传输速率:USB1.1的单位数据传输时间是1毫秒,而USB2.0的单位数据传输时间则达到了125微秒. USB2.0的最高传输速率为480Mbps,即

独家全功能USB2.0开发板,最强CY7C68013A-128核心板,超强资料不断提供更新服务

       学习USB开发再也不用买书啦,也不用花费重金去上培训班啦,IFLabs开创USB学习开发新模式,你所需要的知识.技术.范例.代码等等统统都在这里.IFLabs打造全网最丰富.最权威的USB开发平台和资料. 热卖的IFLabs精品USB2.0核心板套件再升级,全网独家推出最强.最全功能的Cypress USB 2.0 CY7C68013A-128AXC核心板开发板,全网最全配件和全网最全开发资料.只需这一次投入,即可实现USB接口开发的从入门到精通!并且有长期的全网最全开发手册更新支

这就是全网最专业的USB2.0核心板,USB2.0 FX2LP开发板,使用CY7C68013A

铺天盖地的USB开发板.USB核心板那款最适合您?IFLabs组织专业团队.不惜成本.耗费大量时间精力打造的精品USB核心板是您最佳的选择,优化的核心板结构.全网最全的开发手册.全面的配件,一套在手即可开展USB接口的开发.只需这一次投入,即可实现USB接口开发的从入门到精通! 史无前例的专业.可靠.全面.豪华,绝不是其他低价产品所能比的.无论你是初学者,还是具有USB开发基础的工程师都值得拥有. IFLabs USB2.0 FX2LP核心板开发板详情:http://item.taobao.co

全网最佳CY7C68013A开发板,USB2.0高速核心板,独家最全开发资料,长期更新支持

铺天盖地的USB开发板.USB核心板那款最适合您?IFLabs组织专业团队.不惜成本.耗费大量时间精力打造的精品USB核心板是您最佳的选择,优化的核心板结构.全网最全的开发手册.全面的配件,一套在手即可开展USB接口的开发.只需这一次投入,即可实现USB接口开发的从入门到精通! 史无前例的专业.可靠.全面.豪华,绝不是其他低价产品所能比的.无论你是初学者,还是具有USB开发基础的工程师都值得拥有. IFLabs USB2.0 FX2LP核心板开发板详情:http://item.taobao.co

ehci符合USB2.0,uhci,ohci,

uhci   ohci   ehci他们都是主机控制器的规格,OHCI主要为非PC系统上以及带有SiShe ALi芯片组的 PC主板上的USB芯片,UHCI大多为Intel和Via主板上的USB控制器芯片. UHCI的硬件电路比OHCI简单,成本第,但驱动复杂.但他们都是由USB1.1规格的. EHCI是有Intel等几个厂商研发,兼容OHCI  UHCI 遵循USB2.0规范. USB规范EHCI,UHCI,OHCI区别 为 了实现USB主机功能的统一,提高系统的可靠性与可移植性,上游芯片生产

USB2.0规范

USB是一种支持热插拔的高速串行传输总线,它使用差分信号来传输数据,最高速度可达480Mb/S. USB支持“总线供电”和“自供电”两种供电模式.在总线供电模式下,设备最多可以获得500mA的电流.USB2.0 被设计称为向下兼容的模式,当有全速(USB 1.1)或者低速(USB 1.0)设备连接到高速(USB 2.0)主机时,主机可以退化工作在全速或者低速的模式.一条USB总线上,可达到的最高传输速度等级由该总线上最慢的“设备”决定,该设备包括主机.HUB以及USB功能设备. USB体系包括“

USB2.0学习笔记连载(三):通用USB驱动程序解析

对于USB驱动的开发,读者可以使用Windows DDK.DriverStudio等多种开发工具来实现USB的驱动,但是驱动程序的开发过程都比较复杂,而且很容易致使USB主机内存泄露而死机.那么对于笔者这样喜欢做硬件的研发对软件不是很感冒的孩纸,怎么快速上手开发出USB驱动.其实很多USB芯片公司已经给很多用户提供了开发包,譬如笔者使用的Cypress公司提供的开发包可以满足广大用户的要求,这一点还是值的称道的,关于后续怎么使用这些开发包进行USB2.0驱动的开发,笔者会在后续的博客中一一写出.

USB2.0 速度识别--区分低速-高速-全速

USB2.0是向下兼容USB1.X的,即USB2.0支持高速,全速,低速的USB设备 (HIGH-SPEED,FULL-SPEED,LOW-SPEED),而USB1.X不支持高速设备. 因此如果高速设备接在USB1.X的hub上,也只能工作在全速状态. 因此对速度的识别是很重要的,否则没办法以想要的速度通信. ************************************************************************************** 全速和低速区分

USB2.0速度识别

我们知道USB2.0向下兼容USB1.x,即高速2.0的hub能支持所有的速度类型的设备,而USB1.x的hub不能支持高速设备(High Speed Device).因此,如果高速设备挂到USB1.x的hub上,那该设备只能工作在全速模式下.不管是hub还是设备(device),对于速度的区分是非常重要的,否则,后续的通信根本无法进行. 全速和低速识别 根据规范,全速(Full Speed)和低速(Low Speed)很好区分,因为在设备端有一个1.5k的上拉电阻,当设备插入hub或上电(固定