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枚举失败的情况:直接插入电脑USB口是枚举失败,不能识别;经过HUB插入的话能识别,但是驱动有问题(带黄色三角形、感叹号)。

通过逻辑分析仪+DSView上位机进行跟踪,分析通信数据,注意到通信异常,如下红色箭头所指:

wKgZomUD5ZeAO87iAAEZs5O8D9o137.png
wKgaomUD5ZqAdiIfAABICLWpV7o282.png

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

在设定地址的包之后(条件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);

wKgZomUD5Z2Aek59AAI6zoB8Ugc322.png

添加之后,可以正常枚举(如下)和进行USB通信功能。

wKgaomUD5Z-Abcl6AAAZazEa_cs943.png

来源:航顺芯片

审核编辑:汤梓红

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

    关注

    146

    文章

    17370

    浏览量

    352987
  • usb
    usb
    +关注

    关注

    60

    文章

    7992

    浏览量

    266445
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1724

    浏览量

    92284
  • 航顺芯片
    +关注

    关注

    1

    文章

    109

    浏览量

    22882
收藏 人收藏

    评论

    相关推荐

    实际项目开发中为何选择ARM® Cortex®-M4 内核的HK32MCU

    ®Cortex®-M4内核的HK32F407芯片的深度知识,并围绕各类实际案例详细解读了如何选型,为何选择ARM®Cortex®-M4内核的HK32MCU。航顺芯片深耕32
    的头像 发表于 10-22 17:19 513次阅读
    实际项目开发中为何选择ARM® Cortex®-M4 内核的<b class='flag-5'>HK32MCU</b>?

    航顺HK32MCU闪耀2024’第七届电动工具控制与充电技术研讨会

    深圳市航顺芯片技术研发有限公司(以下简称“航顺芯片”)受邀出席在苏州举办的2024’第七届电动工具控制与充电技术研讨会(苏州),航顺芯片华东区域销售总监文志辉围绕《航顺HK32MCU在电机行业
    的头像 发表于 10-22 15:58 331次阅读
    航顺<b class='flag-5'>HK32MCU</b>闪耀2024’第七届电动工具控制与充电技术研讨会

    航顺HK32MCU在电机行业应用与布局

    深圳市航顺芯片技术研发有限公司(以下简称“航顺芯片”)受邀出席在杭州举办的2024(第七届)中国电机智造与创新应用暨电机产业链交流会(华东),航顺芯片华东区域销售总监文志辉围绕《航顺HK32MCU
    的头像 发表于 10-22 14:51 287次阅读
    航顺<b class='flag-5'>HK32MCU</b>在电机行业应用与布局

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

    本应用笔记旨在帮助您快速将基于 GD32F10x 2.0 版本及以上固件库开发的应用程序从GD32F10x 系列微控制器移植到 GD32E103 系列微控制器。GD32
    的头像 发表于 09-05 09:40 667次阅读
    【GD32 <b class='flag-5'>MCU</b> 移植教程】7、从 GD32<b class='flag-5'>F</b>10x 移植到 GD32<b class='flag-5'>E103</b>

    赋能创芯,共筑生态:航顺芯片HK32MCU新品发布,强势打破行业内卷

    “赋能创芯,共筑生态”,不仅是对过去十多年航顺芯片技与代理商伙伴们共同奋斗的总结,更是未来也将为之奋斗的目标——用创新和核心技术打造高性能高性价比的HK32MCU,赋能千行百业,与伙伴们并肩成长,共筑更加蓬勃的合作生态。
    的头像 发表于 08-07 10:30 551次阅读
    赋能创芯,共筑生态:航顺芯片<b class='flag-5'>HK32MCU</b>新品发布,强势打破行业内卷

    航顺芯片HK32MCU携新品闪耀慕尼黑上海电子展,开启电子盛宴

    慕尼黑2024上海电子展(electronica China)于7月8日正式开展。航顺HK32MCU亮相上海新国际博览中心E4号馆4616号展位,高性能迭代HK32F4系列MCU新品闪
    的头像 发表于 07-11 09:22 478次阅读
    航顺芯片<b class='flag-5'>HK32MCU</b>携新品闪耀慕尼黑上海电子展,开启电子盛宴

    航顺年度MCU新品发布,高性能迭代和新世代指纹传感器

    电子发烧友网报道(文/周凯扬)2024年6月15日,航顺举办了HK32MCU新品发布会,本次大会上,航顺发布了高性能迭代HK32F4系列MCU产品,以及新世代指纹传感器新品HK
    的头像 发表于 06-24 01:05 2994次阅读

    STM32F103xC,STM32F103xD,STM32F103xE中文资料

    电子发烧友网站提供《STM32F103xC,STM32F103xD,STM32F103xE中文资料.pdf》资料免费下载
    发表于 06-17 14:12 4次下载

    航顺芯片亮相CICD年会主论坛,HK32MCU助力中国智造产业升级

    主题演讲——《航顺HK32MCU强势助力中国智造产业升级》。 航顺芯片副总经理Ellison出席主论坛,向出席大会的政府领导、国内外知名企业家、专家学者等介绍了航顺芯片32位高端MCU+车规SoC的双战略布局及应用、重点分享了公司在助力中国智造产业升级道路上
    的头像 发表于 05-24 10:23 399次阅读
    航顺芯片亮相CICD年会主论坛,<b class='flag-5'>HK32MCU</b>助力中国智造产业升级

    芯海应用笔记:通用 MCU 基于 IAR 芯片包 IAR9 开发指南

    MCU 芯片。芯海科技基于 IAR 环境开发芯片包,给用户更多的编译选择,提高用户开发灵活性。本应用笔记从芯片包结构、DEMO 例程下载使用、工程建立等角度出发,详细介绍 IAR 芯片包的使用方法,旨在
    发表于 05-16 11:52

    芯海通用 MCU用笔记 :CS32F103 系列 MCU IAP 升级指南

    本应用笔记旨在帮助指导用户针对芯海 CORTEX-M3 MCU CS32F103 系列单片机 IAP 应用的快速开发。本应用笔记实现了 CAN 和 USART 两种接口方式来开发 IA
    发表于 05-16 11:40

    芯海通用 MCU用笔记: C32F103xB 快速应用指南

    本应用笔记旨在指导用户搭建 CS32F103xB 系列 MCU 开发环境并进行开发和调试,包括:软硬件注意事项、开发板说明、如何 Keil/IAR/GCC 下安装 SDK 并新建项目、量产烧录器
    发表于 05-16 11:37

    芯海科技通用 MCU用笔记: CS32F103 FOC 电机评估板使用指南

    本文档描述了基于芯海 CS32F103 系列芯片的矢量控制电机开发板 V1.00 的设计理念、结构和使用说明,以帮助用户快速使用此开发板,评估 CS32F103 芯片在电机控制应用上的性能表现。*附件:应用笔记:CS32
    发表于 05-16 11:35

    芯海通用 MCU用笔记: C32F03x 系列快速应用指南

    本应用笔记旨在指导用户搭建 CS32F03x/F03x-RA 系列 MCU 开发环境并进行开发和调试,包括:软件开发与移植、软硬件注意事项、开发板说明、如何 Keil/IAR/GCC
    发表于 05-16 11:29

    STM32F103 USB枚举不成功的原因?

    (NVIC_VectTab_FLASH,0x8800),但此时USB便枚举不成功,此时其他中断是正常的;但若把APP起始地址改为0X8000000不使用IAP进行跳转则枚举没有问题.我比较怀疑中断向量这块的设置是不是还有问题,跪
    发表于 04-29 06:29