模塊介紹
參考《Infineon-PSoC6_MCU_CY8C6xx8_CY8C6xxA_Architecture_Technical_Reference_Manual(TRM)-AdditionalTechnicalInformation-v08_00-EN.pdf》的33. Universal Serial Bus (USB) Device Mode
PSoC 6 MCU 提供了一個USB2.0全速設備接口。具備一下特征:
USB2.0全速
8個數據端點和一個控制端點
512B共享FIFO
控制端點專用的8字節存儲
支持控制,中斷,批量,同步傳輸
支持總線和自供電
支持USB掛起以降低功耗
支持
無DMA,手動DMA模式 最大512字節的包
自動DMA模式 同步傳輸最大1023自己的包
帶22歐終端電阻和1.5k上拉電阻
支持USB2.0 LPM
框圖如下
離線模式創建工程
1.安裝Modus Toolbox建議從Infineon Developer Center Launcher安裝,直接下載的話比較慢。
2.果在線從github拉取,需要配置C:WindowsSystem32driversetchosts后添加一行185.199.108.133 raw.githubusercontent.com 否則會提示不能訪問raw.githubusercontent.com
3.如果修改了Modus Toolbox默認安裝路徑的話需要設置環境變量
CY_TOOLS_PATHS為安裝路徑D:/ModusToolbox/tools_3.0 注意斜杠方向為左斜杠
4.從以下地址下載離線包,在線git拉取基本都會失敗
5.配置離線包
將上述下載內容解壓到%USERPROFILE%/.modustoolbox目錄下
只有.modustoolbox/offline文件夾,其他之前在線模式已經下載的內容都要刪掉。
新建系統環境變量CY_GETLIBS_OFFLINE=true
6.創建工程
離線的方式創建工程
打開Modus ToolBox
File->New->ModusToolbox Applacation->
測試
雙擊打開
D:BOARDinfineonPSOC62usbUSB_HID_GenericUSB_HID_Generic.cprj
另外需要先安裝Cypress.PSoC6_DFP.1.2.0.pack包。
修改設備
Pre_Include_Global.h中注釋掉#define CY_SUPPORTS_DEVICE_VALIDATION
#define CY_TARGET_DEVICE CY8C624ABZI_S2D44
改為#define CY_TARGET_DEVICE CY8C624ABZI_S2D44
#define CY_TARGET_DEVICE CY8C624ALQI_S2D42
報以下錯誤
按如下設置
設置仿真器
下載運行
卡在了WCO初始化
這是因為板子上沒有WCO的32.768Khz時鐘
所以cycfg_system.c中注釋掉//#define CY_CFG_SYSCLK_WCO_ENABLED 1
板子上也沒有外接ECO
從手冊上看到時鐘樹,只能使用IMO作為系統時鐘源,
修改#define CY_CFG_SYSCLK_CLKBAK_SOURCE CY_SYSCLK_BAK_IN_WCO
為#define CY_CFG_SYSCLK_CLKBAK_SOURCE CY_SYSCLK_BAK_IN_ILO
全部選擇IMO作為時鐘源
接上USB線到PC,運行程序測試可以看到多了USB輸入設備
調試
下載HID調試工具
進入USB-HID-Toolbinwindows目錄 右鍵打開終端
輸入./usbhidtool.exe 0x04B4 0xE17E 4 0xDE 0xAD 0xBE 0xEF
其中0x04B4 0xE17E是設備的VID和PID, 發送4個字節給設備(實際發送64字節剩余的補0),設備原樣返回收到的數據
以上結合仿真就可以進行調試了。
代碼介紹
代碼框架如下
使用了usbdev設備驅動
-
驅動器
+關注
關注
53文章
8255瀏覽量
146477 -
上拉電阻
+關注
關注
5文章
360瀏覽量
30633 -
USB接口
+關注
關注
9文章
701瀏覽量
55666 -
仿真器
+關注
關注
14文章
1018瀏覽量
83776 -
MCU控制器
+關注
關注
0文章
27瀏覽量
6886
發布評論請先 登錄
相關推薦
評論