STM32F105RCT6 移值到GD32F105 枚举成功后却变成了高速设备
首次用GD32,原本想用GD32F105替换STM32F105 采用原来ST的库,用作USB HOST移值成功,可用作DEVICE端时枚举成功,原来是个全速设备,枚举后却成了一个高速设备.我没用VBUS,VBUS检测电路USBFS_GCCFG寄存器中的VBUSIG控制位始终是0,设置不了1,不知要怎么弄. 你在替换的时候做了什么设置 稍微有点笼统不是很好判断 楼主方便就将多一点 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全速
楼主是怎么替换的,是修改下文件,直接使用STM32的程序还是直接全部换GD的程序 forestabc 发表于 2021-3-3 10:07
楼主是怎么替换的,是修改下文件,直接使用STM32的程序还是直接全部换GD的程序 ...
直接使用ST的程序 好快的动作,我们还在等ST价格回归正常呢!不知道可行不。 看来替换是势在必行了。国产的天下了。
楼主的码我也看不出来问题 我想有空用我自己的试一下 BettyBerry 发表于 2021-3-4 23:46
楼主的码我也看不出来问题 我想有空用我自己的试一下
在这个坑上好几天,都没趟过去.兄弟赶紧试试,通了告诉一下 论坛里应该有一些替换的文档 我这边照着做是没什么问题 索尼法 发表于 2021-3-5 23:37
论坛里应该有一些替换的文档 我这边照着做是没什么问题
我用ST和GD都跟踪了一下, 发现STGCCFG寄存器第21位 gccfg.b.disablevbussensing = 1;可以设置, 而GD
这个GCCFG寄存器第21位 VBUSIG设置不了,始终是0,好无语 可以进行直接替换的,不错的。很棒的。 别看我照片 发表于 2021-3-8 10:00
可以进行直接替换的,不错的。很棒的。
在GD32 V2.3手册说 当USBFS工作在设备模式下时(FHM控制位清除、FDM控制位置位),VBUS检测电路由
USBFS_GCCFG寄存器中的VBUSIG控制位所确定。
而在寄存器介绍说:
USBFS_GCCFG 寄存器 31:21必需保留复位值
不知道是哪个对的.实际跟踪,第21位值改不了 替换的时候做了什么设置 可以进行直接替换的 如何进行替换啊 可以自己实际测试一下 好像说的 有点矛盾啊 我也是gd32105 ,替换stm32f105使用不成功
页:
[1]