[AT32F413]

AT32F413 USB虚拟串口 工作不稳定

[复制链接]
4878|24
手机看帖
扫描二维码
随时随地手机跟帖
lcj1301|  楼主 | 2022-7-1 15:08 | 显示全部楼层 |阅读模式
本帖最后由 lcj1301 于 2022-7-5 15:56 编辑

原来stm32 用cubemx生成的代码 移植到at32f413上,usb虚拟串口在72m下工作正常,频率变成192M以后 ,所有分频都已经按照AT32的寄存器重新修改 usb只能工作几十秒就没有数据了,这是什么原因 有人知道吗?还有个问题 想要内部48M直接给usb时钟,但是acc也开了,依然枚举不出设备,不知道还有什么问题

使用特权

评论回复
muyichuan2012| | 2022-7-1 15:20 | 显示全部楼层
ST cubemx生成的代码只支持72M的,频率到192M的话需要修改代码的。
还有就是接内部48M到USB时钟,开启ACC等都是AT32独有的功能,需要使用AT32  bsp才能实现。
因此建议基于AT32 BSP去开发,usb虚拟串口等案例都是现成的。

使用特权

评论回复
评论
lcj1301 2022-7-5 15:54 回复TA
@muyichuan2012 :acc的时钟,我照着他的demo反推寄存器改过的,现在不纠结acc问题,我直接192分频下来48M也工作不稳定 
muyichuan2012 2022-7-4 15:35 回复TA
@lcj1301 :ACC不一定你被你成功开启了。还要开启ACC时钟,这在ST 库是没有的。 
lcj1301 2022-7-4 14:44 回复TA
通过直接写寄存器已经能跑到192M,并且开启ACC,通过定时器也已经验证过频率了,48M分频也验证过了,主要就是USB工作不稳定,发送一会儿就没了,其他外设都没问题 
caigang13| | 2022-7-1 18:29 | 显示全部楼层
代码不能直接兼容的吧

使用特权

评论回复
muyichuan2012| | 2022-7-1 19:29 | 显示全部楼层
72M内可以兼容,他这个是192M主频了,要修改代码。

使用特权

评论回复
评论
lcj1301 2022-7-4 14:47 回复TA
分频倍频的代码已经修改 192M主频定时器已经验证 48M主频也验证了 就是USB不能长时间稳定工作 
EtherWalker| | 2022-7-2 17:08 | 显示全部楼层
这两套代码确实不能直接移植

使用特权

评论回复
muyichuan2012| | 2022-7-2 17:20 | 显示全部楼层
本帖最后由 muyichuan2012 于 2022-7-2 17:24 编辑

at32f413/at33f403a软硬件兼容st103的,大概率可以直接用。

使用特权

评论回复
weifeng90| | 2022-7-4 21:14 | 显示全部楼层
这肯定不得行啊,你ST是72MHZ,时钟和分频系数这些都不一样了。

使用特权

评论回复
chenqianqian| | 2022-7-5 20:33 | 显示全部楼层
软件不能兼容的

使用特权

评论回复
muyichuan2012| | 2022-7-5 21:15 | 显示全部楼层
72M内大概率可以,超过72M不可以。

使用特权

评论回复
qiufengsd| | 2022-7-8 10:03 | 显示全部楼层
主频太快了吧   

使用特权

评论回复
cemaj| | 2022-7-8 10:23 | 显示全部楼层
这个不稳定是什么意思  

使用特权

评论回复
selongli| | 2022-7-8 15:31 | 显示全部楼层
串口不稳定,可能是硬件的问题。

使用特权

评论回复
wwppd| | 2022-7-9 12:21 | 显示全部楼层
降低频率试试  

使用特权

评论回复
adolphcocker| | 2022-7-9 13:21 | 显示全部楼层
连续的数据太多了。  

使用特权

评论回复
jtracy3| | 2022-7-9 14:07 | 显示全部楼层
是数据有丢失吗  

使用特权

评论回复
天意无罪| | 2022-7-17 17:18 | 显示全部楼层

AT32F413 USB虚拟串口 工作不稳定

用的ST的库?AT又不是完全兼容ST的啊,怎么这么多人直接拿ST的程序就来跑了。

使用特权

评论回复
lvben5d| | 2022-7-23 07:57 | 显示全部楼层
虚拟串口也好  其他也罢,用户自己应用程序需要做好数据交互,否则容易卡住得。数据缓冲,我喜欢开数组来接收USB Host发出的包,然后主循环查询包个数非0 去处理,毕竟USB FS 一次最大接收字节只有64个,如果上位机一次发超过64个,你下位机软件必须要做叠包处理,USB dev会连续接收到叠包,你还要拼包。 所以一定要定义一个私有协议,第一个包内 包含 这次传输的性质 到底是64字节内 还是超过64字节~

使用特权

评论回复
fuquan19801117| | 2022-7-23 09:03 | 显示全部楼层
是的USB是不稳定,之前发过帖子,被木一川给删除了

使用特权

评论回复
lvben5d| | 2022-7-23 12:10 | 显示全部楼层
fuquan19801117 发表于 2022-7-23 09:03
是的USB是不稳定,之前发过帖子,被木一川给删除了

我下周3后,应该移植好 AT32F425 USB dev了,到时候我验证下 库写的代码 稳定不, 目前我是GD32E103C8 写好了Lucky-LIN-I 分析仪的下位机代码,再开发1~2个月,把上位机也弄好,就可以放淘宝卖~ YE

使用特权

评论回复
imdx| | 2022-7-23 13:56 | 显示全部楼层
AT32F413和F425的USB都很稳定,如果不稳定是自己程序的问题

使用特权

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

本版积分规则