0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

HK32MCU應(yīng)用筆記(二十)| HK32F103xC/D/E USB枚舉情況分析(二)

jf_pJlTbmA9 ? 來源:航順芯片 ? 作者:航順芯片 ? 2023-09-18 10:58 ? 次閱讀

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ì)的。

wKgZomUD5IyAcPsnAAB0UYn_9j8186.png

通過分析客戶代碼,且使用邏輯分析儀+DSview跟蹤USB通信數(shù)據(jù),發(fā)現(xiàn)是在枚舉過程中,第三次獲取設(shè)備描述符的時(shí)候出錯(cuò),如下:

wKgaomUD5I2AapNtAAA-HAex14E628.png

進(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類,屏蔽下圖處。

wKgZomUD5I-AA5wyAADpNxYeJHw542.png

來源:航順芯片

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16885

    瀏覽量

    349916
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7876

    瀏覽量

    263696
  • HAL庫
    +關(guān)注

    關(guān)注

    1

    文章

    114

    瀏覽量

    6144
  • 航順芯片
    +關(guān)注

    關(guān)注

    1

    文章

    102

    瀏覽量

    22769
  • HK32MCU
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    189
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    HK32MCU應(yīng)用筆記(十九)| HK32F103xC/D/E USB枚舉情況分析

    HK32MCU應(yīng)用筆記(十九)| HK32F103xC/D/E USB
    的頭像 發(fā)表于 09-18 10:58 ?754次閱讀
    <b class='flag-5'>HK32MCU</b>應(yīng)<b class='flag-5'>用筆記</b>(十九)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b> <b class='flag-5'>USB</b><b class='flag-5'>枚舉</b><b class='flag-5'>情況</b><b class='flag-5'>分析</b>

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

    HK32MCU應(yīng)用筆記(十八)| HK32F103xC/D/E-DAC的應(yīng)用及注意事項(xiàng)
    的頭像 發(fā)表于 09-18 10:58 ?994次閱讀
    <b class='flag-5'>HK32MCU</b>應(yīng)<b class='flag-5'>用筆記</b>(十八)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b>-DAC的應(yīng)用及注意事項(xiàng)

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

    HK32MCU應(yīng)用筆記(十七)| HK32F103xC/D/E-flash擦寫應(yīng)用及注意事項(xiàng)
    的頭像 發(fā)表于 09-18 10:58 ?1015次閱讀
    <b class='flag-5'>HK32MCU</b>應(yīng)<b class='flag-5'>用筆記</b>(十七)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b>-flash擦寫應(yīng)用及注意事項(xiàng)

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

    HK32MCU應(yīng)用筆記(十六)| HK32F103xC/D/E-Timer的應(yīng)用及注意事項(xiàng)
    的頭像 發(fā)表于 09-18 10:58 ?717次閱讀

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

    HK32MCU應(yīng)用筆記(十五)| HK32F103xC/D/E-同步注入模式下,ADC2工作狀態(tài)不能單獨(dú)配置
    的頭像 發(fā)表于 09-18 10:58 ?652次閱讀
    <b class='flag-5'>HK32MCU</b>應(yīng)<b class='flag-5'>用筆記</b>(十五)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b>-同步注入模式下,ADC2工作狀態(tài)不能單獨(dú)配置

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

    HK32MCU應(yīng)用筆記(十四)| HK32F103x/C/D/E-TIM1的應(yīng)用及注意事項(xiàng)
    的頭像 發(fā)表于 09-18 10:58 ?738次閱讀
    <b class='flag-5'>HK32MCU</b>應(yīng)<b class='flag-5'>用筆記</b>(十四)| <b class='flag-5'>HK32F103</b>x/C/<b class='flag-5'>D</b>/<b class='flag-5'>E</b>-TIM1的應(yīng)用及注意事項(xiàng)

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

    HK32MCU應(yīng)用筆記(十三)| HK32F103xC/D/E-ADC的應(yīng)用及注意事項(xiàng)
    的頭像 發(fā)表于 09-18 10:58 ?1037次閱讀
    <b class='flag-5'>HK32MCU</b>應(yīng)<b class='flag-5'>用筆記</b>(十三)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b>-ADC的應(yīng)用及注意事項(xiàng)

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

    HK32MCU應(yīng)用筆記(十二)| HK32F103xC/D/E的GPIO的應(yīng)用及注意事項(xiàng)
    的頭像 發(fā)表于 09-18 10:58 ?870次閱讀
    <b class='flag-5'>HK32MCU</b>應(yīng)<b class='flag-5'>用筆記</b>(十二)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b>的GPIO的應(yīng)用及注意事項(xiàng)

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

    HK32MCU應(yīng)用筆記(十一)| HK32F103xC/D/E的flash讀保護(hù)應(yīng)用及注意事項(xiàng)
    的頭像 發(fā)表于 09-18 10:58 ?911次閱讀
    <b class='flag-5'>HK32MCU</b>應(yīng)<b class='flag-5'>用筆記</b>(十一)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b>的flash讀保護(hù)應(yīng)用及注意事項(xiàng)

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

    HK32MCU應(yīng)用筆記(十)| HK32F103xC/D/E的ADC常規(guī)和注入通道同時(shí)觸發(fā)時(shí)的處理機(jī)制
    的頭像 發(fā)表于 09-18 10:58 ?675次閱讀
    <b class='flag-5'>HK32MCU</b>應(yīng)<b class='flag-5'>用筆記</b>(十)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b>的ADC常規(guī)和注入通道同時(shí)觸發(fā)時(shí)的處理機(jī)制

    HK32MCU應(yīng)用筆記(九)| HK32F103x8xB系列CAN的應(yīng)用解決方案

    HK32MCU應(yīng)用筆記(九)| HK32F103x8xB系列CAN的應(yīng)用解決方案
    的頭像 發(fā)表于 09-18 10:59 ?621次閱讀

    HK32MCU應(yīng)用筆記(六)| HK32MCU芯片調(diào)試心得

    HK32MCU應(yīng)用筆記(六)| HK32MCU芯片調(diào)試心得
    的頭像 發(fā)表于 09-18 10:59 ?740次閱讀
    <b class='flag-5'>HK32MCU</b>應(yīng)<b class='flag-5'>用筆記</b>(六)| <b class='flag-5'>HK32MCU</b>芯片調(diào)試心得

    HK32MCU應(yīng)用筆記(五)| 關(guān)于應(yīng)用HK32F030延時(shí)效率問題

    HK32MCU應(yīng)用筆記(五)| 關(guān)于應(yīng)用HK32F030延時(shí)效率問題
    的頭像 發(fā)表于 09-18 11:00 ?619次閱讀

    HK32MCU應(yīng)用筆記(四)| 關(guān)于老版本HK32F103串口USART偶爾出現(xiàn)數(shù)據(jù)錯(cuò)誤

    HK32MCU應(yīng)用筆記(四)| 關(guān)于老版本HK32F103串口USART偶爾出現(xiàn)數(shù)據(jù)錯(cuò)誤
    的頭像 發(fā)表于 09-18 11:00 ?1049次閱讀

    HK32MCU應(yīng)用筆記(一)| HK32F030X系列在PH測(cè)量筆的應(yīng)用

    HK32MCU應(yīng)用筆記(一)| HK32F030X系列在PH測(cè)量筆的應(yīng)用
    的頭像 發(fā)表于 09-18 11:00 ?1060次閱讀
    <b class='flag-5'>HK32MCU</b>應(yīng)<b class='flag-5'>用筆記</b>(一)| <b class='flag-5'>HK32F</b>030X系列在PH測(cè)量筆的應(yīng)用