HK32F103x/C/D/E是深圳市航順芯片技術研發有限公司推出的中大容量的32位MCU芯片,內部集成豐富且強大的外設,如SPI/IIC/UART/USB/FSMC/SDIO等。
有客戶在快速替換使用過程中,遇到過使用HAL庫的USB枚舉失敗的情況:直接插入電腦USB口是枚舉失敗,不能識別;經過HUB插入的話能識別,但是驅動有問題(帶黃色三角形、感嘆號)。
通過邏輯分析儀+DSView上位機進行跟蹤,分析通信數據,注意到通信異常,如下紅色箭頭所指:
進一步分析確認(根本原因):
在設定地址的包之后(條件1),接著下一個獲取設備描述符的請求包(setup)來了之后(條件2),芯片會把Tx狀態設置為Valid(而不是預期的NAK),導致在隨后的IN包來了之后馬上發出DATA1[],即還未來得及填充有效數據。所以導致后續枚舉失敗。
解決方案:
進入USB中斷處理函數PCD_EP_ISR_Handler()里面,把USB端點0的Tx狀態設置為NAK即可,即添加上以下這句就可以了:PCD_SET_EP_TX_STATUS(USB, 0, USB_EP_TX_NAK);
添加之后,可以正常枚舉(如下)和進行USB通信功能。
來源:航順芯片
審核編輯:湯梓紅
-
mcu
+關注
關注
146文章
17458瀏覽量
354447 -
usb
+關注
關注
60文章
8035瀏覽量
267443 -
SPI
+關注
關注
17文章
1731瀏覽量
92838 -
航順芯片
+關注
關注
1文章
109瀏覽量
22923
發布評論請先 登錄
相關推薦
實際項目開發中為何選擇ARM? Cortex?-M4 內核的HK32MCU?

航順HK32MCU閃耀2024’第七屆電動工具控制與充電技術研討會

航順HK32MCU在電機行業應用與布局

【GD32 MCU 移植教程】7、從 GD32F10x 移植到 GD32E103

賦能創芯,共筑生態:航順芯片HK32MCU新品發布,強勢打破行業內卷

航順芯片HK32MCU攜新品閃耀慕尼黑上海電子展,開啟電子盛宴

航順年度MCU新品發布,高性能迭代和新世代指紋傳感器
STM32F103xC,STM32F103xD,STM32F103xE中文資料
航順芯片亮相CICD年會主論壇,HK32MCU助力中國智造產業升級

評論