STM32 USB串口打开失败

之前做了一块STM32F401CB数据采集的板子,采集传感器数据,然后通过USB CDC传回给电脑。程序是cube生成的。

以前采集一直很稳定,最近有人跟我说电脑上一直打不开串口,可以看到virtual com port的端口,但是使用串口软件打开时总是失败。

很久以前用的时候,可能会有很小概率打不开串口(或者从没出现过),所以没有留意。现在还是一样的硬件,一样的代码,突然就打不开串口了,或者有时候小概率可以打开,很是诡异。

自己试了几个硬件和软件,发现在同样的软件下,有的板子能打开串口,有的不能。

然后对于同一块板子,有的软件下可以打开串口,有的不可以。


我发一下我的cube设置和电路,麻烦大家帮忙看一下哪里有问题:

sch.png


已邀请:

pkuzhx

赞同来自:

即便对于串口无法打开的样机,插在电脑上也是能看到com口生成的:

blob.png

只是用各种串口软件打开的时候都会报错,跟没插硬件的时候报错一样:

blob.png

pkuzhx

赞同来自:

另外还测试过时钟晶振,所有板子都在8±0.02MHz范围内。

pkuzhx

赞同来自:

刚才看论坛帖子,管理员提到了heap和stack设置,我也尝试过,结果很诡异。

对于同一批次的芯片,有的在heap和stack较小时就可以打开串口,有必须通过修改heap或stack改善。


admin

赞同来自:

ESD新品的Pup脚接3.3v试试....

admin

赞同来自: pkuzhx

另外看了程序配置没啥问题,电路里感觉ESD芯片画的有点问题.?

blob.png

看内部电路,已经集成了33欧的串阻,我觉得这个芯片应该是单片机的DM和DP接IN然后D+和D-直接接usb就可以了吧,而不是你电路中并联22欧这样的接法.

对usb功能用的少,不正之处谅解

admin

赞同来自: pkuzhx

最简单测试办法把ESD芯片焊除,单片机和usb接口直通,如果单片机内部dp上拉枚举不出来,就加个外部上拉.在测试下

要回复问题请先登录注册