RS-232 到 USB CDC_ACM 在 Debian / BeagleBone Black 上不起作用

RS-232 到 USB CDC_ACM 在 Debian / BeagleBone Black 上不起作用

我正在开发一个太阳能系统,该系统通过 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 无法为该设备提供足够的电源。

尝试将供电的集线器连接到 Beaglebone,然后将设备插入集线器。

(根据评论,这解决了问题)。

相关内容