USB论坛
直播中

jefljel

9年用户 1199经验值
擅长:20762
私信 关注
[问答]

请问在Windows10下可以安装USB2.0驱动么?

请问在Windows10下可以安装USB2.0驱动么?为什么HID的实例无法运行,且用烧录程序后,这样显示,能具体告知如何正确导入hid_kd程序么,如何让CY7C68013实现HID功能么?

回帖(1)

郭大

2025-6-9 18:09:56

你的问题涉及多个技术层面,我来逐一分析并提供解决方案:




1. Windows10下USB2.0驱动的安装



  • 无需单独安装:Windows 10 已内置完整的USB 2.0主机控制器驱动(如usbhub.sys, usbehci.sys)。插入USB设备后,系统会自动加载驱动。

  • 特殊情况:若主板芯片组驱动未正确安装(如Intel/AMD主板驱动),可能影响USB控制器性能。建议:

    1. 访问电脑/主板厂商官网

    2. 下载对应型号的最新芯片组驱动(Chipset Driver)

    3. 安装后重启系统





2. HID实例无法运行 & 烧录问题


可能原因及解决步骤:




  1. 固件编译配置错误



    • 确认在Cypress SDK/GPIF Designer中选择了 HID设备类(而非默认的Vendor-Specific)。

    • 检查dscr.a51描述符文件是否正确定义了HID报告描述符。

    • 示例HID键盘描述符片段:
      HID_DSCR   equ $
      db 09h, 21h       ; HID Descriptor (长度9, 类型0x21)
      db 00h, 01h       ; HID版本1.0
      db 00h            ; 国家代码
      db 01h            ; 报告描述符数量
      db 22h, 00h, 00h  ; 报告描述符长度 (34字节)




  2. 烧录工具使用错误



    • 使用Cypress EZ-USB Control Center

      1. 连接设备到USB口(需先进入ISP模式)

      2. 工具识别设备后 → 选择Download → 加载.hex.iic固件文件

      3. 勾选"Reconnect" 选项 → 点击Execute


    • 关键步骤:按住开发板上的ISP按钮再上电,进入烧录模式(LED状态变化可确认)。




  3. 驱动冲突问题



    • 烧录后若提示"未知设备":

      • 右键"未知设备" → 更新驱动 → 浏览本地驱动 → 选择 Cypress USB EZ-HID 驱动路径(通常位于SDK的Driver目录)


    • 或手动安装驱动:

      1. 在设备管理器中选择设备 → 右键"更新驱动程序"

      2. 选择"浏览我的电脑以查找驱动程序"

      3. 指向SDK中的C:CypressEZ-USB FX3 SDK1.3driverbinwin7x64(按系统版本选择x86/x64)







3. 正确导入hid_kd示例工程


步骤详解(以Cypress SDK为例):



  1. 打开开发环境

    • 运行 Keil uVisionSDK GPIF Designer


  2. 导入工程

    • 文件路径示例:C:CypressUSBSDKExamplesFX2LPHIDKeyboard

    • 打开 hid_kd.Uv2(Keil工程文件)


  3. 配置工程

    • fw.c中确认VID/PID(默认04B4/8613

    • 检查dscr.a51中的bInterfaceClass = 03H(HID类)


  4. 编译固件

    • 点击 Rebuild All → 生成hid_kd.hex

    • 注意:编译前确认芯片型号选择 FX2LP (CY7C68013A)





4. 实现CY7C68013的HID功能


核心配置要点:




  1. 描述符配置



    • dscr.a51中设置设备类为 bDeviceClass = 0x00(在接口中定义类)

    • 接口类设置为 bInterfaceClass = 0x03(HID类)

    • 添加HID报告描述符(定义数据传输格式)




  2. 固件架构



    • main()函数中启用HID中断:
      EZUSB_IRQ_ENABLE();        // 使能USB中断
      EZUSB_ENABLE_RSMIRQ();     // 使能远程唤醒中断
      IN07VAL = bmHXFRDYIRQ;     // 设置端点IN中断

    • 处理HandleHIDRequests()函数响应主机请求




  3. 端点配置



    • HID通常使用 中断传输(Interrupt Transfer)

    • TD_Init()中配置端点模式:
      EP2CFG = 0xA2;  // 端点2: 1024字节, 方向IN, 类型BULK(HID需改为INTERRUPT)
      EP6CFG = 0x62;  // 端点6: 1024字节, 方向OUT, 类型INTERRUPT






5. 调试技巧




  1. 使用Bus Hound



    • 监控USB数据流,确认HID描述符是否被正确读取

    • 查看报告描述符解析结果(第6栏显示HID报文)




  2. 设备管理器验证



    • 成功识别后设备显示为 "Cypress EZ-HID Keyboard" 或类似名称




  3. 代码检查点



    • 确保bRequestType=0x81(HID类请求)的处理函数已实现

    • 验证报告描述符长度与HID_DESCR中定义一致






完整操作流程图


graph TD
A[开发板进入ISP模式] --> B[用Control Center烧录固件]
B --> C{设备管理器状态}
C -->|未知设备| D[手动安装EZ-HID驱动]
C -->|已识别HID设备| E[测试HID通信]
D --> E
E --> F[使用Bus Hound抓包验证]
F --> G{数据是否符合HID规范}
G -->|是| H[成功]
G -->|否| I[检查描述符/固件代码]


⚠️ 重要提示:若使用自定义PCB,请检查硬件电路:



  • 确认 RESET 引脚上拉电阻

  • 24MHz 晶振起振正常

  • VCC 稳定(3.3V±10%)



请尝试以上步骤并观察结果。若问题依然存在,建议提供:



  1. 烧录程序后的具体错误截图

  2. 设备管理器中的设备状态截图

  3. 固件编译输出日志


这样能更精准定位问题根源。

举报

更多回帖

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