USB论坛
直播中

青sky

9年用户 1323经验值
擅长:模拟技术
私信 关注
[问答]

如何处理FX3 USB驱动程序与MFI相关接口的安装?

我有一个使用 FX3 制作的设备。 该设备具有与 iPhone 连接所需的 MFI 芯片。 该设备可在 macOS 和 iPhone 上正常运行。 当我使用 PMODE 的 SPI 引脚连接电脑并访问"Cypress SD3 USB 启动设备" 时,设备也能正常工作。 现在,我想让设备连接到电脑(Windows 10 及更高版本)。 我在固件中使用了现有的 VID (04B4) 和 PID (00F0),它们是 EZ-USB FX3 SDK 中提供的 cyusb3.inf(FX3 USB BulkloopExample Device)的一部分。
问题是,当我通过 USB 电缆将设备(没有 PMODE 的 SPI 引脚)连接到 PC(USB 2.0)并为 WestBridge 设备安装驱动程序时,在断开设备与 PC 的连接并重新连接后,驱动程序会在几秒钟后从"Universal Serial Bus Controllers" 消失,而在"Other devices" of Device Manager(设备管理器的其他设备)下,用于 MFI 身份验证的固件中的三个接口(没有 VID 和 PID)被打上感叹号,并带有错误代码 28(未安装此设备的驱动程序)。 该设备没有兼容的驱动程序)。 WestBridge 的设备状态显示"目前,此硬件设备未连接到计算机(代码 45)。  
问题是,当接口没有 VID 和 PID 时,如何为多个接口安装驱动程序? 这是否与 INF 文件设置有关? 如果是,如何设置 INF 文件才能避免三个 MFI 接口的驱动程序安装错误?

回帖(1)

李明

2025-5-30 17:45:44

为了确保你的FX3设备正确连接到Windows电脑并安装驱动程序,请按照以下步骤进行排查和解决:




步骤1:验证设备枚举和硬件ID



  1. 将设备连接到Windows的USB 2.0端口。

  2. 打开设备管理器,找到未知设备(可能显示为“WestBridge”或其他名称)。

  3. 右键点击设备 → 属性 → 详细信息 → 硬件ID

    • 确认显示的VID/PID是否为USBVID_04B4&PID_00F0

    • 如果不同,说明固件中的VID/PID设置错误,需检查并修正固件代码。





步骤2:手动安装驱动程序



  1. 下载并安装最新版 Cypress FX3 SDK,确保cyusb3.inf文件存在。

  2. 在设备管理器中右键点击未知设备 → 更新驱动程序 → 浏览计算机以查找驱动程序

  3. 指定SDK中的cyusb3.inf路径(例如:C:Program Files (x86)CypressEZ-USB FX3 SDK1.3driverbin)。

  4. 如果提示驱动未签名,需临时禁用驱动签名强制:

    • 重启电脑 → 按住Shift点击“重启” → 疑难解答 → 高级选项 → 启动设置 → 重启 → 按7禁用驱动签名强制





步骤3:检查固件配置



  1. 确认固件中的VID/PID设置
    // 在固件初始化代码中(如CyFxAppInit())
    CyU3PUsbSetDesc(Cy_False, CY_U3P_USB_HS_DEVICE, 0); // 确保描述符正确
    CyU3PUsbSetVid(0x04B4);  // 检查VID
    CyU3PUsbSetPid(0x00F0);  // 检查PID

  2. 确保USB接口正确初始化
    CyU3PUsbStart(); // 必须调用以启动USB堆栈




步骤4:排查MFI芯片干扰



  1. 硬件检查:确认当连接到PC时,MFI芯片不会干扰USB数据线(D+/D-)。

    • 可能需要断开MFI芯片或设计切换电路,使其仅在连接iOS设备时激活。


  2. 固件逻辑:确保在检测到非iOS主机时,固件跳过MFI相关握手。




步骤5:使用USB分析工具



  1. 使用工具(如USBLogView)捕获设备枚举日志。

  2. 检查设备是否返回正确的描述符。若枚举失败,可能是固件未正确响应主机请求。




步骤6:生成签名驱动(可选)


如果需长期使用,建议为cyusb3.inf添加微软签名:



  1. 通过Windows Hardware Dev Center注册并签名驱动。

  2. 或使用开源工具(如Zadig)替换为WinUSB/LibUSB驱动,绕过签名问题。




步骤7:更新FX3固件启动模式



  1. 使用Cypress Control CenterCyUSB3工具,确认固件已正确烧录到Flash。

  2. 确保设备从Flash启动而非ROM模式(通过PMODE引脚配置)。




最终验证



  1. 成功安装驱动后,设备应显示为“FX3 USB BulkloopExample Device”。

  2. 使用Cypress提供的测试工具(如CyConsole)验证USB通信。




总结:问题可能源于驱动签名、固件VID/PID配置错误或MFI芯片干扰。按上述步骤逐步排查,重点检查硬件ID匹配性、驱动安装流程及固件的USB初始化逻辑。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分