使用BeagleBone黑色内核关闭/打开USB电源>;=3.8
我需要:使用BeagleBone黑色内核关闭/打开USB电源>;=3.8,usb,gpio,beagleboneblack,Usb,Gpio,Beagleboneblack,我需要: 关闭->睡眠几秒钟->打开beaglebone black的USB电源 能够硬件重置连接到USB的设备(华为E220调制解调器) 已尝试软复位(使用解除绑定/绑定和授权0/1),但软件复位不足以使设备再次正常工作;该设备存在一些奇怪的错误,这是由长时间使用(连接几天后)触发的 使用/sys/debug/omap_mux可以找到许多答案,但是这个设备在新内核中已经不存在了 由于这个问题花了两天的时间才得到一个可行的答案,我决定将它和答案一起发布在这里,这样它可能对其他人有用。感谢我的
- 关闭->睡眠几秒钟->打开beaglebone black的USB电源
由于这个问题花了两天的时间才得到一个可行的答案,我决定将它和答案一起发布在这里,这样它可能对其他人有用。感谢我的朋友克莱顿·布埃诺为我找到了这个解决方案: 先决条件:
- apt获取安装devmem2
devmem2 0x47401c60 b 0x00
sleep 1
echo "usb1" > /sys/bus/usb/drivers/usb/unbind
sleep 20
echo "usb1" > /sys/bus/usb/drivers/usb/bind
sleep 1
devmem2 0x47401c60 b 0x01
“devmem2”命令负责直接访问beaglebone的GPIO3_13,该命令控制打开/关闭USB端口的IC
“unbind/bind”命令负责告诉usb驱动程序在通电后“重新扫描”端口。这非常有用,感谢您解决了这个问题。操作顺序似乎很关键,而且顺序也不是100%可靠。我比较幸运的顺序是“解除绑定”、“绑定”、关机、开机。在我的情况下,它是专门重置usb集线器和所有下游设备。可靠性可能与集线器本身有关,而不是此处的序列。该地址(0x47401c60)来自何处?我想理解。@DavideBerra不是你问题的完整答案,但我确实找到了一些关于神奇值0x47401c60的信息。看看我在回答这个问题时写的:这正是我所需要的!但是,
devmem2
不在apt中,因此install命令失败。我发现这篇博文是为了获取编译过的二进制文件: