0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HK32MCU应用笔记(二十)| HK32F103xC/D/E USB枚举情况分析(二)

jf_pJlTbmA9 来源:航顺芯片 作者:航顺芯片 2023-09-18 10:58 次阅读

HK32F103x/C/D/E是深圳市航顺芯片技术研发有限公司推出的中大容量的32位MCU芯片,内部集成丰富且强大的外设,如SPI/IIC/UART/USB/FSMC/SDIO等。

有客户在快速替换使用过程中,遇到过使用HAL库的USB枚举失败的情况:VID/PID值等设备描述符内容不正确。使用bus hound捕获USB包,观察设备描述符内容,如下红色箭头所指IN包数据部分,大多数时候是不对的,即不是预期值,偶发是对的。

wKgZomUD5IyAcPsnAAB0UYn_9j8186.png

通过分析客户代码,且使用逻辑分析仪+DSview跟踪USB通信数据,发现是在枚举过程中,第三次获取设备描述符的时候出错,如下:

wKgaomUD5I2AapNtAAA-HAex14E628.png

进一步分析发现并确认(根本原因):

USB设备在收到STALL之后的下一条SETUP的情况下,硬件会设置Tx状态为Valid,这导致接下来IN包来了之后,USB直接就把还未准备好的数据发送给主机,即发送的数据不是预设值/乱码,例如一部分为本次要发送的数据,另外一部分为上一次的数据。

解决方案:

屏蔽掉软件设置STALL的代码,例如在HAL库的HID类,屏蔽下图处。

wKgZomUD5I-AA5wyAADpNxYeJHw542.png

来源:航顺芯片

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16840

    浏览量

    349719
  • usb
    usb
    +关注

    关注

    60

    文章

    7862

    浏览量

    263532
  • HAL库
    +关注

    关注

    1

    文章

    114

    浏览量

    6133
  • 航顺芯片
    +关注

    关注

    1

    文章

    102

    浏览量

    22766
  • HK32MCU
    +关注

    关注

    0

    文章

    27

    浏览量

    187
收藏 人收藏

    评论

    相关推荐

    HK32MCU用笔记(十九)| HK32F103xC/D/E USB枚举情况分析

    HK32MCU用笔记(十九)| HK32F103xC/D/E USB
    的头像 发表于 09-18 10:58 748次阅读
    <b class='flag-5'>HK32MCU</b>应<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用笔记(十八)| HK32F103xC/D/E-DAC的应用及注意事项

    HK32MCU用笔记(十八)| HK32F103xC/D/E-DAC的应用及注意事项
    的头像 发表于 09-18 10:58 983次阅读
    <b class='flag-5'>HK32MCU</b>应<b class='flag-5'>用笔记</b>(十八)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b>-DAC的应用及注意事项

    HK32MCU用笔记(十七)| HK32F103xC/D/E-flash擦写应用及注意事项

    HK32MCU用笔记(十七)| HK32F103xC/D/E-flash擦写应用及注意事项
    的头像 发表于 09-18 10:58 1006次阅读
    <b class='flag-5'>HK32MCU</b>应<b class='flag-5'>用笔记</b>(十七)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b>-flash擦写应用及注意事项

    HK32MCU用笔记(十六)| HK32F103xC/D/E-Timer的应用及注意事项

    HK32MCU用笔记(十六)| HK32F103xC/D/E-Timer的应用及注意事项
    的头像 发表于 09-18 10:58 709次阅读

    HK32MCU用笔记(十五)| HK32F103xC/D/E-同步注入模式下,ADC2工作状态不能单独配置

    HK32MCU用笔记(十五)| HK32F103xC/D/E-同步注入模式下,ADC2工作状态不能单独配置
    的头像 发表于 09-18 10:58 641次阅读
    <b class='flag-5'>HK32MCU</b>应<b class='flag-5'>用笔记</b>(十五)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b>-同步注入模式下,ADC2工作状态不能单独配置

    HK32MCU用笔记(十四)| HK32F103x/C/D/E-TIM1的应用及注意事项

    HK32MCU用笔记(十四)| HK32F103x/C/D/E-TIM1的应用及注意事项
    的头像 发表于 09-18 10:58 719次阅读
    <b class='flag-5'>HK32MCU</b>应<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的应用及注意事项

    HK32MCU用笔记(十三)| HK32F103xC/D/E-ADC的应用及注意事项

    HK32MCU用笔记(十三)| HK32F103xC/D/E-ADC的应用及注意事项
    的头像 发表于 09-18 10:58 1024次阅读
    <b class='flag-5'>HK32MCU</b>应<b class='flag-5'>用笔记</b>(十三)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b>-ADC的应用及注意事项

    HK32MCU用笔记(十二)| HK32F103xC/D/E的GPIO的应用及注意事项

    HK32MCU用笔记(十二)| HK32F103xC/D/E的GPIO的应用及注意事项
    的头像 发表于 09-18 10:58 858次阅读
    <b class='flag-5'>HK32MCU</b>应<b class='flag-5'>用笔记</b>(十二)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b>的GPIO的应用及注意事项

    HK32MCU用笔记(十一)| HK32F103xC/D/E的flash读保护应用及注意事项

    HK32MCU用笔记(十一)| HK32F103xC/D/E的flash读保护应用及注意事项
    的头像 发表于 09-18 10:58 899次阅读
    <b class='flag-5'>HK32MCU</b>应<b class='flag-5'>用笔记</b>(十一)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b>的flash读保护应用及注意事项

    HK32MCU用笔记(十)| HK32F103xC/D/E的ADC常规和注入通道同时触发时的处理机制

    HK32MCU用笔记(十)| HK32F103xC/D/E的ADC常规和注入通道同时触发时的处理机制
    的头像 发表于 09-18 10:58 669次阅读
    <b class='flag-5'>HK32MCU</b>应<b class='flag-5'>用笔记</b>(十)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b>的ADC常规和注入通道同时触发时的处理机制

    HK32MCU用笔记(九)| HK32F103x8xB系列CAN的应用解决方案

    HK32MCU用笔记(九)| HK32F103x8xB系列CAN的应用解决方案
    的头像 发表于 09-18 10:59 610次阅读

    HK32MCU用笔记(六)| HK32MCU芯片调试心得

    HK32MCU用笔记(六)| HK32MCU芯片调试心得
    的头像 发表于 09-18 10:59 735次阅读
    <b class='flag-5'>HK32MCU</b>应<b class='flag-5'>用笔记</b>(六)| <b class='flag-5'>HK32MCU</b>芯片调试心得

    HK32MCU用笔记(五)| 关于应用HK32F030延时效率问题

    HK32MCU用笔记(五)| 关于应用HK32F030延时效率问题
    的头像 发表于 09-18 11:00 613次阅读

    HK32MCU用笔记(四)| 关于老版本HK32F103串口USART偶尔出现数据错误

    HK32MCU用笔记(四)| 关于老版本HK32F103串口USART偶尔出现数据错误
    的头像 发表于 09-18 11:00 1038次阅读

    HK32MCU用笔记(一)| HK32F030X系列在PH测量笔的应用

    HK32MCU用笔记(一)| HK32F030X系列在PH测量笔的应用
    的头像 发表于 09-18 11:00 1031次阅读
    <b class='flag-5'>HK32MCU</b>应<b class='flag-5'>用笔记</b>(一)| <b class='flag-5'>HK32F</b>030X系列在PH测量笔的应用