我正在開發一個太陽能係統,該系統透過 USB 電纜透過恆定的串行資料流提供資料輸出。該系統可以在Windows 7 PC 上運行(使用在太陽系佈滿灰塵的盒子中的CD-ROM 上找到的驅動程式),也可以在Windows 10 PC 上運行,無需安裝驅動程式(儘管驅動程式可能是之前安裝的)與其他一些設備一起工作)。
從 Windows 裝置管理員中我了解到該電纜的類型為CDC_ACM
.
現在我嘗試將它與 BeagleBone Black 一起使用,以便我可以自動化資料收集。太陽系附近沒有插頭點(諷刺?),所以我只是透過 PC 為 BeagleBone 供電。插入電纜後,我鍵入lsusb
並看到設備未連接:
debian@beaglebone:~$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
查看訊息日誌,這是我得到的資訊:
debian@beaglebone:~$ dmesg | tail -n 20
[ 442.566683] hub 1-0:1.0: hub_resume
[ 442.566753] hub 1-0:1.0: port 1: status 0101 change 0001
[ 442.668291] hub 1-0:1.0: state 7 ports 1 chg 0002 evt 0000
[ 442.668381] hub 1-0:1.0: port 1, status 0101, change 0000, 12 Mb/s
[ 442.721964] CAUTION: musb: Babble Interrupt Occurred
[ 442.773713] usb 1-1: new full-speed USB device number 44 using musb-hdrc
[ 442.823536] musb-hdrc: setup fifo_mode 4
[ 442.823583] musb-hdrc: 28/31 max ep, 16384/16384 memory
[ 442.826509] hub 1-0:1.0: unable to enumerate USB device on port 1
[ 442.833788] hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
[ 442.833924] hub 1-0:1.0: port 1, status 0500, change 0003, 480 Mb/s
[ 442.941687] hub 1-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x500
[ 442.941807] hub 1-0:1.0: hub_suspend
[ 442.941867] usb usb1: bus auto-suspend, wakeup 1
[ 443.006061] usb usb1: usb wakeup-resume
[ 443.006138] usb usb1: usb auto-resume
[ 443.006178] hub 1-0:1.0: hub_resume
[ 443.006253] hub 1-0:1.0: port 1: status 0101 change 0001
[ 443.107772] hub 1-0:1.0: state 7 ports 1 chg 0002 evt 0000
[ 443.107860] hub 1-0:1.0: port 1, status 0101, change 0000, 12 Mb/s
如果我第一次發送sudo modprobe cdc_acm
它,看起來在連接電纜時會得到相同的結果。 (在另一台 BeagleBone Black 上,我曾經收到過「電纜故障」訊息,但我確認該電纜在 Windows PC 上仍然可以工作)。
看起來驅動程式確實存在於核心中:
debian@beaglebone:/sys/bus/usb/drivers$ ls
cdc_acm cdc_ncm rndis_host usb usbhid
cdc_ether hub rt2870 usbfs usb-storage
debian@beaglebone:/sys/bus/usb/drivers$ cd cdc_acm
debian@beaglebone:/sys/bus/usb/drivers/cdc_acm$ ls
bind new_id remove_id uevent unbind
我是否缺少讓該設備正常運作的步驟?
答案1
如錯誤訊息所示,USB 根集線器無法列舉您插入的裝置。
嘗試將供電的集線器連接到 Beaglebone,然後將裝置插入集線器。
(根據評論,這解決了問題)。