获取USB设备的功耗


29

有没有办法检查USB设备需要多少电量?

我为什么需要这个?

我需要将LTE USB记忆棒连接到我的Raspberry Pi,并且不知道它需要多少功率。在Windows上我们很容易获得它,但是在Linux上却找不到找到它的方法。

Answers:


27

看一下标题为“ SuperUser”的“超级用户”问答:如何检查USB端口可以提供多少功率?特别是我的回答

lsusb -v

您可以使用来获得最大功率lsusb -v,例如:

$ lsusb -v|egrep "^Bus|MaxPower"
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    MaxPower                0mA
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    MaxPower                0mA
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    MaxPower                0mA
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    MaxPower                0mA
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    MaxPower                0mA
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    MaxPower                0mA
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    MaxPower                0mA
Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
    MaxPower              100mA
Bus 003 Device 002: ID 046d:c517 Logitech, Inc. LX710 Cordless Desktop Laser
    MaxPower               98mA
Bus 001 Device 004: ID 04a9:1069 Canon, Inc. S820
    MaxPower                2mA
Bus 001 Device 005: ID 05ac:120a Apple, Inc. iPod Nano
    MaxPower              500mA
    MaxPower              500mA

5
我认为这不是正确的答案。据报道,即使我将其睡眠,我的arduino仍会使用100mA的电流(其他设备当时测得的功耗约为56mA)。如果我使Arduino处于活动状态,则也报告为100mA ...
惠更斯(Huygens)

您能建议Windows的类似命令吗?
Suncatcher

17

您也可以看看usb-devices

$ usb-devices | grep 'Product=\|MxPwr'
S:  Product=EHCI Host Controller
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
S:  Product=EHCI Host Controller
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
S:  Product=USB Keykoard
C:  #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=98mA
S:  Product=USB Receiver
C:  #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=98mA
S:  Product=DW375 Bluetooth Module
C:  #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=100mA
S:  Product=5880
C:  #Ifs= 2 Cfg#= 0 Atr=c0 MxPwr=100mA

6

bMaxPower设备的sysfs文件夹中有一个文件。但是我认为这不会很有用。您将发现该设备“要求” 500mA只是为了符合标准,而不是实际的电流消耗。


3
$ watch -n1 'lsusb -v|egrep "^Bus|MaxPower"'

并每秒刷新

Cada 1,0s: lsusb -v|egrep "^Bus|MaxPower"                               Mecaro: Fri Dec  1 00:15:54 2017

Couldn't open device, some information will be missing
Couldn't open device, some information will be missing
Couldn't open device, some information will be missing
Couldn't open device, some information will be missing
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    MaxPower                0mA
Bus 002 Device 002: ID 046d:c31c Logitech, Inc. Keyboard K120
    MaxPower               90mA
Bus 002 Device 005: ID 04fc:0538 Sunplus Technology Co., Ltd Wireless Optical Mouse 2.4G [Bright]
    MaxPower              100mA
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    MaxPower                0mA

0

您可能已经解决了问题,或者现在就继续前进,但是大多数时候该信息都可以在制造商的网站上找到。它也写在我使用过的每个USB设备上。

实时测量的真正答案可能是不可能从OS获得此信息。我的猜测是所有这些都是在导线级别上协商的,实际上是由附加的稳压器/电阻器控制的。

此外,对我而言,专门为此目的设计的设备的可用性最终暗示了不存在“简便”的解决方案。


5
当您制作自己的USB设备时,“制造商的网站”用处不大;-)
dr。Sybren
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.