我使用以前是UNO的Arduino Nano从传感器收集数据,然后通过USB连接将数据通过有源集线器发送回运行Jessie 4.1.19+ Mar的Raspberry Pi模型B, 2016年6月和Python 2.7。 python代码使用pyserial readline来获取数据。
一般来说,它工作正常但偶尔(通常一天几次)它会因上述消息而失败。似乎修复它的唯一方法是拔掉USB连接,重新连接并重新启动程序。我修改了代码以捕获异常但它不会重新打开连接,给出错误:
serial.serialutil.SerialException:无法打开端口/ dev / ttyUSB0:[Errno 2]没有这样的文件或目录:' / dev / ttyUSB0'
UNO(在/ dev / ttyAMA0上)和NANO(在/ dev / ttyUSB0上)都会出现此问题。
就在最近,我发现在发生这个错误之后,Nano已经转移到了/ dev / ttyUSB1。然后python代码将针对/ dev / ttyUSB1成功运行,但是当问题再次发生时,它会切换回/ dev / ttyUSB0。
结果,我更改了代码以拦截异常并打开备用设备并继续。到目前为止,这工作正常,但显然不对。
任何人都可以建议问题所在的位置以及如何进行诊断吗?我不是超级技术!另外,我已经看过关于这个主题的其他一些帖子,但在这种情况下,恢复到以前的内核级别并不实际。
更新以包含下面的日志输出。有两种设备:NANO(1a86:7523)和OWL功率监视器(0fde:ca05)。
$ dmesg -T
[2017年2月11日星期四14:53:02] usb 1-1.3-port2:由集线器(EMI?)禁用,重新启用...
[2017年2月11日星期四14:53:02] usb 1-1.3.2:USB断开,设备编号71
[2017年2月11日星期四14:53:03] dwc_otg_hcd_handle_hc_fsm:173次回调受到抑制 [2017年2月11日星期四14:53:03]转移到设备72端点0x1帧1649失败 - FIQ报告NYET。数据可能已丢失 [2017年2月11日星期四14:53:03]转移到设备72端点0x1帧1650失败 - FIQ报告NYET。数据可能已丢失 [2017年2月11日星期四14:53:03] ch341-uart ttyUSB1:usb_serial_generic_read_bulk_callback - urb停止:-32
[2017年2月11日星期四14:53:03]转移到设备72端点0x1帧1651失败 - FIQ报告NYET。数据可能已丢失 [2017年2月11日星期四14:53:03]转移到设备72端点0x1帧1652失败 - FIQ报告NYET。数据可能已丢失 [2017年2月11日星期四14:53:03]转移到设备72端点0x1帧1653失败 - FIQ报告NYET。数据可能已丢失 [2017年2月11日星期四14:53:03] ch341-uart ttyUSB1:usb_serial_generic_read_bulk_callback - urb停止:-32
[2017年2月11日星期四14:53:03]转移到设备72端点0x1帧1654失败 - FIQ报告NYET。数据可能已丢失 [2017年2月11日星期四14:53:03]转移到设备72端点0x1帧1655失败 - FIQ报告NYET。数据可能已丢失 [2017年2月11日星期四14:53:03]转移到设备72端点0x1帧1656失败 - FIQ报告NYET。数据可能已丢失 [2017年2月11日星期四14:53:03]转移到设备72端点0x1帧1657失败 - FIQ报告NYET。数据可能已丢失 [2017年2月11日星期四14:53:03]转移到设备72端点0x1帧1658失败 - FIQ报告NYET。数据可能已丢失 [2017年2月11日星期四14:53:03] usb 1-1.3.2:使用dwc_otg新的全速USB设备编号73 [星期六2月11日14:53:03] usb 1-1.3.2:找到新的USB设备,idVendor = 0fde,idProduct = ca05
[Sat Feb 11 14:53:03 2017] usb 1-1.3.2:新的USB设备字符串:Mfr = 1,Product = 2,SerialNumber = 3
[2017年2月11日星期四14:53:03] usb 1-1.3.2:产品:OWL无线电力监控器USB版本已连接
[2017年2月11日星期四14:53:03] usb 1-1.3.2:制造商:Silicon Labs
[2017年2月11日星期四14:53:03] usb 1-1.3.2:SerialNumber:001A3C26
[星期六2月11日14:53:03] cp210x 1-1.3.2:1.0:检测到cp210x转换器
[2017年2月11日星期四14:53:03] usb 1-1.3.2:cp210x转换器现已连接到ttyUSB0
[星期六2月11日14:53:03] usb 1-1.3-port3:由集线器(EMI?)禁用,重新启用...
[2017年2月11日星期四14:53:03] usb 1-1.3.3:USB断开,设备号72
[2017年2月11日星期四14:53:03] ch341-uart ttyUSB1:ch341-uart转换器现在与ttyUSB1断开连接
[2017年2月11日星期四14:53:03] ch341 1-1.3.3:1.0:设备断开连接
[2017年2月11日星期四14:53:03] usb 1-1.3.3:使用dwc_otg的新型全速USB设备编号74 [星期六2月11日14:53:03] usb 1-1.3.3:找到新的USB设备,idVendor = 1a86,idProduct = 7523
[Sat Feb 11 14:53:03 2017] usb 1-1.3.3:新的USB设备字符串:Mfr = 0,Product = 2,SerialNumber = 0
[2017年2月11日星期四14:53:03] usb 1-1.3.3:产品:USB2.0-Serial
[2017年2月11日星期四14:53:03] ch341 1-1.3.3:1.0:检测到ch341-uart转换器
[星期六2月11日14:53:03] usb 1-1.3.3:ch341-uart转换器现在连接到ttyUSB2
[2017年2月11日星期四14:53:05] cp210x ttyUSB0:cp210x转换器现在与ttyUSB0断开连接
[2017年2月11日星期四14:53:05] cp210x 1-1.3.2:1.0:设备已断开连接
答案 0 :(得分:0)
我知道这是一个旧线程,但是最近我用 Raspberry Pi 3 Model B Rev 1.2 遇到了这个问题,它在连接的同时运行股票Debian内核5.4.0-3-arm64 3018 CNC Pro控制器板。当我lsusb
时,木板显示为
Bus 001 Device 011: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
每当我打开串行端口时,usb设备都会重置。我进行了广泛搜索,在不同论坛上应用了一堆配置参数,但对我来说,这个问题与电源相关。
尽管3018 CNC Pro主板具有独立的电源,但是主板上的usb串行芯片由总线供电(在lsusb -v
中已注意到)。我的Raspberry Pi具有足够的可用功率,但我正在将1m usb电缆穿过金属夹并沿着金属通道运行,该通道必须具有足够的电感量,以抵抗通过usb电缆所需的电涌。取下夹子即可解决问题。
希望此注释对某人有所帮助!