我们正在开发基于 FX3 的 UVC 应用程序,在 Ubuntu 20.04 上使用 USB 3 时遇到了 FX3 无法完成枚举的问题。
在附带的 Wireshark 捕获帧 79 中,可以看到设备描述器请求响应只包含了应包含的 18 个字节中的 8 个字节。
描述符内容包括正确的长度 18,但响应中没有包含该数据。 FX3 固件将描述符创建为一个常量变量
"CyFxUSB30DeviceDscr",该值仅在 CyU3PUsbSetDesc API(参数
"CY_U3P_USB_SET_SS_DEVICE_DESCR, 0, (uint8_t *)CyFxUSB30DeviceDscr`)
中使用。在 Ubuntu 20.04 中是否存在任何已知问题,或者枚举无法完成的原因?
我们在使用 Ubuntu 18.04 时没有遇到这个问题。 USB2 可以正常工作。 我还附上了 FX3 插入 Ubuntu 20.04 机器后枚举失败的 UART 调试日志。
在Ubuntu20.04上使用USB3时遇到了FX3无法枚举的情况,怎么解决?

关键词: Ubuntu FX3

要解决在Ubuntu 20.04上使用USB 3时遇到的FX3无法枚举的问题,我们可以按照以下步骤进行排查和解决:
1. **检查USB 3.0驱动**:首先确保Ubuntu 20.04系统已经正确安装了USB 3.0驱动。可以通过以下命令检查驱动状态:
```
lsmod | grep xhci_hcd
```
如果没有输出,说明驱动可能未正确安装。可以通过以下命令安装驱动:
```
sudo apt-get install linux-modules-extra-$(uname -r)
```
2. **检查USB端口**:确保USB端口是USB 3.0端口,而不是USB 2.0端口。可以通过查看主板手册或在线资源来确认。
3. **检查FX3固件**:确认FX3固件是否正确编译和烧录。检查固件中的描述符是否正确设置。你提到的描述符问题可能是固件中的一个错误。请确保固件中的描述符设置正确,例如:
```c
const uint8_t CyFxUSB30DeviceDscr[] = {
0x12, // bLength
0x01, // bDescriptorType
0x00, // bcdUSB - LSB
0x02, // bcdUSB - MSB
0xef, // bDeviceClass
0x02, // bDeviceSubClass
0x01, // bDeviceProtocol
0x40, // bMaxPacketSize0
0x83, // idVendor - LSB
0x04, // idVendor - MSB
0x00, // idProduct - LSB
0x00, // idProduct - MSB
0x00, // bcdDevice - LSB
0x01 // bcdDevice - MSB
};
```
4. **检查CyU3PUsbSetDesc API调用**:确保在固件中正确调用了CyU3PUsbSetDesc API。检查参数是否正确传递,例如:
```c
CyU3PUsbSetDesc(CY_U3P_USB_SET_SS_DEVICE_DESCR, 0, (uint8_t *)CyFxUSB30DeviceDscr);
```
5. **检查USB线缆**:尝试更换USB线缆,以排除线缆故障的可能性。
6. **检查电源供应**:确保FX3设备和计算机的电源供应充足且稳定。
7. **检查操作系统设置**:在某些情况下,操作系统设置可能会影响USB设备的枚举。尝试在不同的操作系统版本或不同的计算机上测试FX3设备。
8. **查看日志**:通过查看系统日志,可以获取更多关于枚举失败的信息。可以使用以下命令查看日志:
```
dmesg | grep -i usb
```
回复
有奖活动 | |
---|---|
分享开发笔记,赚取电动螺丝刀(便携轻巧与无刷电机两款可选) | |
看《关键跃升》,聊聊工作心法、动力、能力、沟通与协作,从五个方面深入交流你的工作心得 | |
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
我要给自己挣一部逻辑分析仪 | |
用知识换取送给亲朋的礼物,做个浪漫的开发者 | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 |
打赏帖 | |
---|---|
Buck电路工作在CCM模式下电感电流的计算公式是什么?被打赏5分 | |
buck电路工作原理被打赏5分 | |
基于MSPM0L1306的MODBUS-RTU协议通讯实验被打赏100分 | |
我想要一部加热台+多合一调试工具被打赏18分 | |
每周了解几个硬件知识+485硬件知识分享被打赏10分 | |
【换取手持数字示波器】树莓派PICO调试器官方固件本地化部署实践被打赏24分 | |
【换取手持数字示波器】分享一个KEIL无法识别CMSIS-DAP调试器的解决办法被打赏20分 | |
【换取手持数字示波器】分享一个自制的ArduinoNano扩展板底板被打赏23分 | |
【换取手持示波器】树莓派PICOW网页烟花被打赏18分 | |
【换取手持示波器】树莓派PICO逻辑分析仪被打赏16分 |