打印

STM32F105RCT6 移值到GD32F105 枚举成功后却变成了高速设备

[复制链接]
1629|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liushaolin|  楼主 | 2021-3-2 20:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首次用GD32,原本想用GD32F105替换STM32F105 采用原来ST的库,用作USB HOST移值成功,可用作DEVICE端时枚举成功,原来是个全速设备,枚举后却成了一个高速设备.我没用VBUS,VBUS检测电路USBFS_GCCFG寄存器中的VBUSIG控制位始终是0,设置不了1,不知要怎么弄.

使用特权

评论回复
沙发
x史可法| | 2021-3-2 23:37 | 只看该作者
你在替换的时候做了什么设置

使用特权

评论回复
板凳
正圆椭圆| | 2021-3-2 23:48 | 只看该作者
稍微有点笼统不是很好判断 楼主方便就将多一点

使用特权

评论回复
地板
liushaolin|  楼主 | 2021-3-3 06:41 | 只看该作者
x史可法 发表于 2021-3-2 23:37
你在替换的时候做了什么设置

替换时没有设置什么,使用外部晶8M晶振,ST片子是OK的
跟踪发现
在进入 USB_OTG_STS USB_OTG_CoreInit(USB_OTG_CORE_HANDLE *pdev)函数时
    gccfg.d32 = 0;
    gccfg.b.pwdn = 1;
    gccfg.b.vbussensingA = 1 ;
    gccfg.b.vbussensingB = 1 ;     
#ifndef VBUS_SENSING_ENABLED //这个没有定义
    gccfg.b.disablevbussensing = 1;
#endif   
   
    if(pdev->cfg.Sof_output)
    {
      gccfg.b.sofouten = 1;  
    }
   
    USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GCCFG, gccfg.d32);


gccfg.b.disablevbussensing = 1;  这个设置不了

在进入中断 DCD_HandleEnumDone_ISR 函数

USB_OTG_GetDeviceSpeed(pdev) == USB_SPEED_HIGH

查看USBFS_DSTAT 中的 ES 值为0而不是 01全速

使用特权

评论回复
5
forestabc| | 2021-3-3 10:07 | 只看该作者
楼主是怎么替换的,是修改下文件,直接使用STM32的程序还是直接全部换GD的程序

使用特权

评论回复
6
liushaolin|  楼主 | 2021-3-3 10:28 | 只看该作者
forestabc 发表于 2021-3-3 10:07
楼主是怎么替换的,是修改下文件,直接使用STM32的程序还是直接全部换GD的程序 ...

直接使用ST的程序

使用特权

评论回复
7
yangxf1217| | 2021-3-3 11:57 | 只看该作者
好快的动作,我们还在等ST价格回归正常呢!不知道可行不。

使用特权

评论回复
8
单片小菜| | 2021-3-3 14:59 | 只看该作者
看来替换是势在必行了。国产的天下了。

使用特权

评论回复
9
BettyBerry| | 2021-3-4 23:46 | 只看该作者
楼主的码我也看不出来问题 我想有空用我自己的试一下

使用特权

评论回复
10
liushaolin|  楼主 | 2021-3-5 22:28 | 只看该作者
BettyBerry 发表于 2021-3-4 23:46
楼主的码我也看不出来问题 我想有空用我自己的试一下

在这个坑上好几天,都没趟过去.兄弟赶紧试试,通了告诉一下

使用特权

评论回复
11
索尼法| | 2021-3-5 23:37 | 只看该作者
论坛里应该有一些替换的文档 我这边照着做是没什么问题

使用特权

评论回复
12
liushaolin|  楼主 | 2021-3-6 15:53 | 只看该作者
索尼法 发表于 2021-3-5 23:37
论坛里应该有一些替换的文档 我这边照着做是没什么问题

我用ST和GD都跟踪了一下, 发现ST  GCCFG寄存器第21位 gccfg.b.disablevbussensing = 1;  可以设置, 而GD
这个GCCFG  寄存器第21位 VBUSIG设置不了,始终是0,好无语

使用特权

评论回复
13
别看我照片| | 2021-3-8 10:00 | 只看该作者
可以进行直接替换的,不错的。很棒的。

使用特权

评论回复
14
liushaolin|  楼主 | 2021-3-12 11:47 | 只看该作者
别看我照片 发表于 2021-3-8 10:00
可以进行直接替换的,不错的。很棒的。

在GD32 V2.3手册说 当USBFS工作在设备模式下时(FHM控制位清除、FDM控制位置位),VBUS检测电路由
USBFS_GCCFG寄存器中的VBUSIG控制位所确定。

而在寄存器介绍说:
USBFS_GCCFG 寄存器 31:21必需保留复位值

不知道是哪个对的.实际跟踪,第21位值改不了

使用特权

评论回复
15
heimaojingzhang| | 2021-4-4 11:43 | 只看该作者
替换的时候做了什么设置

使用特权

评论回复
16
keaibukelian| | 2021-4-4 11:44 | 只看该作者
可以进行直接替换的

使用特权

评论回复
17
labasi| | 2021-4-4 11:46 | 只看该作者
如何进行替换啊

使用特权

评论回复
18
paotangsan| | 2021-4-4 11:50 | 只看该作者
可以自己实际测试一下

使用特权

评论回复
19
renzheshengui| | 2021-4-4 11:52 | 只看该作者
好像说的 有点矛盾啊

使用特权

评论回复
20
chenyelong| | 2021-4-14 09:05 | 只看该作者
我也是gd32105 ,替换stm32f105使用不成功

使用特权

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

本版积分规则

1

主题

9

帖子

0

粉丝