首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

USB 驅動安裝與固件編寫實戰(CY7C68013A)

     編輯:關於C語言

USB 驅動安裝與固件編寫實戰(CY7C68013A)

Cypress FX2LP (CY7C68013A) 開發涉及兩大核心:固件(跑在芯片上)與驅動(跑在 Windows 主機上)。本文記錄驅動定制與固件編寫關鍵步驟。

驅動核心文件

  • cyusb.sys:內核模式驅動(二進制),通常不修改,直接使用 Cypress 提供的簽名版本。
  • cyusb3.inf:安裝信息文件(文本),用戶必須修改以匹配自定義 VID/PID/字串。

修改 cyusb3.inf 關鍵點

  1. 支援的作業系統:[Models.NTamd64]、[Models.NTx86] 等區段確認目標 OS 版本。
  2. VID/PID 對應表:[CyUSB.Devices.NTamd64] 區段列出支援的 VID/PID。新增自定義 VID/PID 行,格式:%DESC%=DriverInstall, USB\VID_xxxx&PID_yyyy。
  3. 注意:修改 .inf 會導致驅動簽名失效(變為未簽名)。Windows 10/11 預設拒絕載入未簽名驅動,需:
  • 測試模式:bcdedit /set testsigning on 重啟。
  • 或申請 EV 代碼簽名證書對修改後的 .inf/.cat 重新簽名(正式產品必經)。

自定義安裝向導顯示字串

[Strings] 區段定義安裝過程中顯示的廠商名、設備名等:

[Strings]
CyPress="MyCompany"
FX2LP="MyCustom Device"
DiskId1="MyDriver Disk"
DeviceDesc="MyCustom USB Device"

GUID 固定不變(對應驅動類別)。

固件編寫要點

  1. 基於 Cypress 官方例程(如 bulkloop)修改 dscr.a51 描述符區:VID/PID、字串索引、端點配置。
  2. 修改 periph.c 等邏輯代碼實現具體功能(批量傳輸、同步傳輸、GPIO 控制等)。
  3. Keil 編譯生成 .hex,配置 Hex2bix 生成 .iic(見前文)。
  4. 用 Cypress USB Console 燒錄 .iic 到 EEPROM,設備 C2 啟動。

驅動安裝流程

  1. 設備插入,Windows 彈出「找到新硬體」。
  2. 指定修改後的 cyusb3.inf 所在目錄。
  3. 若提示「未簽名驅動」,確認已進入測試模式或簽名有效。
  4. 安裝完成後,設備管理器顯示自定義名稱,屬性 → 詳細資料 → 硬體 ID 顯示修改後的 VID/PID。

避坑指南

  • VID 向 USB-IF 申請(正式產品),測試可用 0x04B4 (Cypress) 或實驗性 VID。
  • PID 唯一標識產品型號,同一 VID 下不可衝突。
  • .inf 中 %DESC% 必須與 [Strings] 區段定義一致。
  • 固件端點配置(數量、類型、方向、大小)必須與描述符、驅動預期完全一致。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved