Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用BeagleBone黑色内核关闭/打开USB电源>;=3.8_Usb_Gpio_Beagleboneblack - Fatal编程技术网

使用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电源
能够硬件重置连接到USB的设备(华为E220调制解调器)

已尝试软复位(使用解除绑定/绑定和授权0/1),但软件复位不足以使设备再次正常工作;该设备存在一些奇怪的错误,这是由长时间使用(连接几天后)触发的

使用/sys/debug/omap_mux可以找到许多答案,但是这个设备在新内核中已经不存在了


由于这个问题花了两天的时间才得到一个可行的答案,我决定将它和答案一起发布在这里,这样它可能对其他人有用。

感谢我的朋友克莱顿·布埃诺为我找到了这个解决方案:

先决条件:

  • 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命令失败。我发现这篇博文是为了获取编译过的二进制文件: