打印

STM32F103和GD32F303的USB差别

[复制链接]
1300|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ufo1cn|  楼主 | 2023-5-5 13:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
https://github.com/Arksine/STM32_HID_Bootloader
STM的HID Bootloader在GD32F303上跑,上位机无法枚举.如果在STM32F103上跑就正常.除了MCU不同,其他晶振什么的外围都一样.

请问有人知道它们在USB功能上的差别,或者是什么其他原因?

使用特权

评论回复
沙发
alxd| | 2023-5-24 10:51 | 只看该作者
可能是由于USB功能的差别造成的

使用特权

评论回复
板凳
B1lanche| | 2023-5-24 11:57 | 只看该作者
STM32F103具有USB OTG功能,可以通过OTG连接U盘、移动硬盘等外部存储设备,从而实现数据传输和刷写。而GD32F303没有此功能,因此上位机无法枚举

使用特权

评论回复
地板
Allison8859| | 2023-5-24 13:08 | 只看该作者
估计是硬件原因吧,比如那个上拉1.5K电阻

使用特权

评论回复
5
Charlene沙| | 2023-5-24 14:10 | 只看该作者
这个你仿真跟踪一下看看,看程序在哪儿出的问题

使用特权

评论回复
6
ufo1cn|  楼主 | 2023-5-24 14:54 | 只看该作者
B1lanche 发表于 2023-5-24 11:57
STM32F103具有USB OTG功能,可以通过OTG连接U盘、移动硬盘等外部存储设备,从而实现数据传输和刷写。而GD32 ...

都是USBD做USB HID设备.

使用特权

评论回复
7
ufo1cn|  楼主 | 2023-5-24 14:57 | 只看该作者
本帖最后由 ufo1cn 于 2023-5-24 15:04 编辑
Allison8859 发表于 2023-5-24 13:08
估计是硬件原因吧,比如那个上拉1.5K电阻

硬件本身没问题, 如果用GD32的USB例程增加控制USB DP上拉的代码后能正常枚举,但例程用的是库,编译出来大了. 此代码也加入了上拉DP的定义Pin.但用ST32F103跑起来就没问题,GD32F303就收不到上位机发来的获取设备描述符的SETUP包.用逻辑分析仪也发现上位机没有发送获取设备描述符的SETUP包.

使用特权

评论回复
8
ufo1cn|  楼主 | 2023-5-24 14:59 | 只看该作者
Charlene沙 发表于 2023-5-24 14:10
这个你仿真跟踪一下看看,看程序在哪儿出的问题

硬件上把SWCLK控制了USB DP上拉,所以无法仿真,在代码中加入LED闪烁,发现,接收不到上位机发送的获取设备描述符的SETUP包.只能收到USB Reset. 通过逻辑分析仪发现上位机也没有发送获取设备描述符的SETUP包.

使用特权

评论回复
9
Emily999| | 2023-5-24 15:19 | 只看该作者
你对比一下这俩硬件是否一样啊?

使用特权

评论回复
10
Belle1257| | 2023-5-24 16:25 | 只看该作者
USB估计没啥区别吧,都是48MHz时钟啥的

使用特权

评论回复
11
ufo1cn|  楼主 | 2023-5-24 16:33 | 只看该作者
Belle1257 发表于 2023-5-24 16:25
USB估计没啥区别吧,都是48MHz时钟啥的

仅仅只是MCU不一样,外围晶振什么都一样.程序也一样, ST32F103正常,GD32F303上跑,主机就只向GD32发送USB Reset的命令,没有发送获取设备描述符的SETUP包.

使用特权

评论回复
12
Carina卡| | 2023-5-25 07:05 | 只看该作者
有可能是USB的寄存器不一样,你执行的时候就出错了

使用特权

评论回复
13
Annie556| | 2023-5-25 08:12 | 只看该作者
建议你用官方提供的USB部分例程,用这个移植比较合适合理

使用特权

评论回复
14
Betty996| | 2023-5-25 10:21 | 只看该作者
你是程序一点没做修改?

使用特权

评论回复
15
Alina艾| | 2023-5-25 13:30 | 只看该作者
你看看主频之类的,枚举失败基本就是时钟问题

使用特权

评论回复
16
ufo1cn|  楼主 | 2023-5-29 09:18 | 只看该作者
Annie556 发表于 2023-5-25 08:12
建议你用官方提供的USB部分例程,用这个移植比较合适合理

官方的都包装了几层,编译出来比较大.这个bootloader只要2K比较小.

使用特权

评论回复
17
ufo1cn|  楼主 | 2023-5-29 09:21 | 只看该作者
Alina艾 发表于 2023-5-25 13:30
你看看主频之类的,枚举失败基本就是时钟问题

时钟是应该没问题的,都用的12M晶振,已经修改了设定主频部分的倍频为6,烧到STM32F103上没有问题.现在的问题是没发现主机给GD32F303发送获取描述符的STEUP包

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

10

帖子

0

粉丝