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文章
18031浏览量
369314 -
usb
+关注
关注
60文章
8216浏览量
274201 -
SPI
+关注
关注
17文章
1808浏览量
96366 -
航顺芯片
+关注
关注
1文章
111浏览量
23241
发布评论请先 登录
STM32MCU市场价又暴涨了!航顺HK32MCU不涨反降普惠产业,速来Pick!
全球最小面积1mm? 32位MCU HK32F005颠覆资深前辈TI的不严谨

【智能化+高精度】电焊机为何需要一颗“智慧大脑”?航顺HK32F103A给出答案
航顺 HK32F407ZGT7 芯片的开发板:多功能外设助力多领域应用

【干货】有了这份HK32F407ZGT7开发板介绍,1万个项目轻松拿捏!

【干货】性价比拉满!HK32F407VG开发板介绍

航顺芯片HK32MCU版图再扩张,深圳南山新基地助力集成电路核心圈突破

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

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

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

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

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

评论