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

[复制链接]
2078|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全速
forestabc 发表于 2021-3-3 10:07 | 显示全部楼层
楼主是怎么替换的,是修改下文件,直接使用STM32的程序还是直接全部换GD的程序
 楼主| liushaolin 发表于 2021-3-3 10:28 | 显示全部楼层
forestabc 发表于 2021-3-3 10:07
楼主是怎么替换的,是修改下文件,直接使用STM32的程序还是直接全部换GD的程序 ...

直接使用ST的程序
yangxf1217 发表于 2021-3-3 11:57 | 显示全部楼层
好快的动作,我们还在等ST价格回归正常呢!不知道可行不。
单片小菜 发表于 2021-3-3 14:59 | 显示全部楼层
看来替换是势在必行了。国产的天下了。
BettyBerry 发表于 2021-3-4 23:46 | 显示全部楼层
楼主的码我也看不出来问题 我想有空用我自己的试一下
 楼主| liushaolin 发表于 2021-3-5 22:28 | 显示全部楼层
BettyBerry 发表于 2021-3-4 23:46
楼主的码我也看不出来问题 我想有空用我自己的试一下

在这个坑上好几天,都没趟过去.兄弟赶紧试试,通了告诉一下
索尼法 发表于 2021-3-5 23:37 | 显示全部楼层
论坛里应该有一些替换的文档 我这边照着做是没什么问题
 楼主| 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,好无语
别看我照片 发表于 2021-3-8 10:00 | 显示全部楼层
可以进行直接替换的,不错的。很棒的。
 楼主| 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位值改不了
heimaojingzhang 发表于 2021-4-4 11:43 | 显示全部楼层
替换的时候做了什么设置
keaibukelian 发表于 2021-4-4 11:44 | 显示全部楼层
可以进行直接替换的
labasi 发表于 2021-4-4 11:46 | 显示全部楼层
如何进行替换啊
paotangsan 发表于 2021-4-4 11:50 | 显示全部楼层
可以自己实际测试一下
renzheshengui 发表于 2021-4-4 11:52 | 显示全部楼层
好像说的 有点矛盾啊
chenyelong 发表于 2021-4-14 09:05 | 显示全部楼层
我也是gd32105 ,替换stm32f105使用不成功
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

10

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部