HK32F103x/C/D/E是深圳市航順芯片技術(shù)研發(fā)有限公司推出的中大容量的32位MCU芯片,內(nèi)部集成豐富且強(qiáng)大的外設(shè),如SPI/IIC/UART/USB/FSMC/SDIO等。
有客戶在快速替換使用過程中,遇到過使用HAL庫的USB枚舉失敗的情況:VID/PID值等設(shè)備描述符內(nèi)容不正確。使用bus hound捕獲USB包,觀察設(shè)備描述符內(nèi)容,如下紅色箭頭所指IN包數(shù)據(jù)部分,大多數(shù)時(shí)候是不對(duì)的,即不是預(yù)期值,偶發(fā)是對(duì)的。
通過分析客戶代碼,且使用邏輯分析儀+DSview跟蹤USB通信數(shù)據(jù),發(fā)現(xiàn)是在枚舉過程中,第三次獲取設(shè)備描述符的時(shí)候出錯(cuò),如下:
進(jìn)一步分析發(fā)現(xiàn)并確認(rèn)(根本原因):
USB設(shè)備在收到STALL之后的下一條SETUP的情況下,硬件會(huì)設(shè)置Tx狀態(tài)為Valid,這導(dǎo)致接下來IN包來了之后,USB直接就把還未準(zhǔn)備好的數(shù)據(jù)發(fā)送給主機(jī),即發(fā)送的數(shù)據(jù)不是預(yù)設(shè)值/亂碼,例如一部分為本次要發(fā)送的數(shù)據(jù),另外一部分為上一次的數(shù)據(jù)。
解決方案:
屏蔽掉軟件設(shè)置STALL的代碼,例如在HAL庫的HID類,屏蔽下圖處。
來源:航順芯片
審核編輯:湯梓紅
-
mcu
+關(guān)注
關(guān)注
146文章
17895瀏覽量
362034 -
usb
+關(guān)注
關(guān)注
60文章
8152瀏覽量
271431 -
HAL庫
+關(guān)注
關(guān)注
1文章
121瀏覽量
6807 -
航順芯片
+關(guān)注
關(guān)注
1文章
111瀏覽量
23162 -
HK32MCU
+關(guān)注
關(guān)注
0文章
29瀏覽量
293
發(fā)布評(píng)論請(qǐng)先 登錄
HK32MCU應(yīng)用筆記(十八)| HK32F103xC/D/E-DAC的應(yīng)用及注意事項(xiàng)

HK32MCU應(yīng)用筆記(十七)| HK32F103xC/D/E-flash擦寫應(yīng)用及注意事項(xiàng)

HK32MCU應(yīng)用筆記(十六)| HK32F103xC/D/E-Timer的應(yīng)用及注意事項(xiàng)
HK32MCU應(yīng)用筆記(十五)| HK32F103xC/D/E-同步注入模式下,ADC2工作狀態(tài)不能單獨(dú)配置

HK32MCU應(yīng)用筆記(十四)| HK32F103x/C/D/E-TIM1的應(yīng)用及注意事項(xiàng)

HK32MCU應(yīng)用筆記(十三)| HK32F103xC/D/E-ADC的應(yīng)用及注意事項(xiàng)

HK32MCU應(yīng)用筆記(十二)| HK32F103xC/D/E的GPIO的應(yīng)用及注意事項(xiàng)

HK32MCU應(yīng)用筆記(十一)| HK32F103xC/D/E的flash讀保護(hù)應(yīng)用及注意事項(xiàng)

HK32MCU應(yīng)用筆記(十)| HK32F103xC/D/E的ADC常規(guī)和注入通道同時(shí)觸發(fā)時(shí)的處理機(jī)制

HK32MCU應(yīng)用筆記(九)| HK32F103x8xB系列CAN的應(yīng)用解決方案
HK32MCU應(yīng)用筆記(五)| 關(guān)于應(yīng)用HK32F030延時(shí)效率問題
HK32MCU應(yīng)用筆記(四)| 關(guān)于老版本HK32F103串口USART偶爾出現(xiàn)數(shù)據(jù)錯(cuò)誤
HK32MCU應(yīng)用筆記(一)| HK32F030X系列在PH測(cè)量筆的應(yīng)用

評(píng)論