搜索
bottom↓
回复: 28

CH340N串口速度到不了2M,哪里问题?

[复制链接]

出590入992汤圆

发表于 2023-4-14 09:55:40 | 显示全部楼层 |阅读模式
我怀疑是硬件问题。
从单片机STM32G431的TX口:从CH340N下面走线到CH340的RX下面。
帮我看下这样设计有没有问题。
但是:我之前用的SPI通信频率能到10M左右,也是从单片机下面走线的,也没有问题。所以大家帮我判断下问题。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出590入992汤圆

 楼主| 发表于 2023-4-14 09:59:58 | 显示全部楼层
我判断不是软件问题的方法:
1:波特率在1.5M的时候都没有问题,10W字节收发都正常。
2:波特率在2M的时候,其实也没有问题,但是测试10W字节收发会有丢100-300多个字节,每次不确定。
3:软件处理逻辑简单,不会出现所谓的溢出或者没有处理过来的情况:每100ms发送100字节。如果有问题,前期就会有问题,显然是数量大上来后出现的问题。
4:最后判断是单片机TX到CH340的RX上丢的数据。

出615入1076汤圆

发表于 2023-4-14 10:05:44 来自手机 | 显示全部楼层
本帖最后由 dukelec 于 2023-4-14 10:31 编辑

看错
跟走线肯定没有关系

出0入4汤圆

发表于 2023-4-14 10:09:32 | 显示全部楼层
没看见上拉电阻。内置的电阻,支持你到2M吗?

出0入4汤圆

发表于 2023-4-14 10:13:23 | 显示全部楼层
也未见外部晶振。我们使用119200,两个M3,M0通讯时,就会有几率出现通讯失败。

出590入992汤圆

 楼主| 发表于 2023-4-14 10:14:29 | 显示全部楼层
Xujuango 发表于 2023-4-14 10:09
没看见上拉电阻。内置的电阻,支持你到2M吗?
(引用自4楼)

不对。
是单片机给CH340发送数据。单片机用的是:推挽输出,不需要上拉电阻。
而且也不是开漏模式的输出,上拉电阻不需要吧。

出590入992汤圆

 楼主| 发表于 2023-4-14 10:15:18 | 显示全部楼层
Xujuango 发表于 2023-4-14 10:13
也未见外部晶振。我们使用119200,两个M3,M0通讯时,就会有几率出现通讯失败。 ...
(引用自5楼)

用的是:外部晶振的。截图没有截出来。

出0入4汤圆

发表于 2023-4-14 10:19:19 | 显示全部楼层
SUPER_CRJ 发表于 2023-4-14 10:15
用的是:外部晶振的。截图没有截出来。
(引用自7楼)

8脚的340,没有外置晶振接口啊

出0入0汤圆

发表于 2023-4-14 10:25:10 | 显示全部楼层
340最高就到2M吧,我们用340跑2M会丢包,换343了,没得问题。

出590入992汤圆

 楼主| 发表于 2023-4-14 10:34:25 | 显示全部楼层
Xujuango 发表于 2023-4-14 10:19
8脚的340,没有外置晶振接口啊
(引用自8楼)

单片机用的是外部晶振。
CH340N是内置晶振的型号。难道是内置晶振的问题?但是他的宣传上支持2M波特率的。不应该会是内置晶振的原因吧。

出590入992汤圆

 楼主| 发表于 2023-4-14 10:35:45 | 显示全部楼层
dukelec 发表于 2023-4-14 10:05
看错
跟走线肯定没有关系
(引用自3楼)

好的,谢谢。走线没关系,我就考虑下其他问题。
因为数据量大才出现问题,我这边好不判断到底哪里的问题。

出0入475汤圆

发表于 2023-4-14 10:36:18 来自手机 | 显示全部楼层
这点线这点速度,随便怎么走线都没问题。只要走的通。
换ft232吧,一直以来都是3M速度的批量工程用了十年了,

出0入224汤圆

发表于 2023-4-14 10:36:47 | 显示全部楼层
CH340N用的5V供电还是3.3V,如果是5V,mcu的IO是3.3V的话,也会有问题吧。

出590入992汤圆

 楼主| 发表于 2023-4-14 11:07:53 | 显示全部楼层
yyts 发表于 2023-4-14 10:36
CH340N用的5V供电还是3.3V,如果是5V,mcu的IO是3.3V的话,也会有问题吧。
(引用自13楼)

都是3.3V的。

出0入442汤圆

发表于 2023-4-14 11:17:15 来自手机 | 显示全部楼层
1a2b3c 发表于 2023-4-14 10:36
这点线这点速度,随便怎么走线都没问题。只要走的通。
换ft232吧,一直以来都是3M速度的批量工程用了十年了 ...

(引用自12楼)

你一次发100字节保证也丢得想哭。

usb hid以及这类usb串口缓冲区长度可能是64字节,一次发64字节以内,理论上不会出问题,超了没法保证。

出0入0汤圆

发表于 2023-4-14 11:33:45 | 显示全部楼层
本帖最后由 8051爱好者 于 2023-4-14 11:35 编辑

我去找找看

出0入0汤圆

发表于 2023-4-14 11:34:12 | 显示全部楼层
在一个群里看到别人分享的 希望能帮到你
如下最快的STC 1T 8051, 32位8051 都可以
STC8H8K64U-45MHz-TSSOP20, RMB1.9;
LQFP32/48/64, PDIP40, QFN64/48/32 全系列封装现货供应
STC32G12K128-LQFP64/48/32,TSSOP20,PDIP40,QFN64/48/32;

超级简单的STC USB-CDC虚拟串口:
当单片机需要和电脑之间进行数据交换时,首选一般都是串口通讯。
STC32G系列单片机内置USB控制器和收发器,当用户代码中嵌入USB-CDC代码后,
使用USB线将单片机与电脑直接相连接,在电脑端就可识别出【USB-CDC虚拟串口】,
【USB-CDC虚拟串口】就是【串口】。
USB-CDC虚拟串口和传统串口相比有如下优点:
△  数据传输更快:USB-CDC虚拟串口忽略传统串口的波特率,
    传输速度的比特率即为全速USB的通讯速度12MBPS(即每秒12M位)
△  使用更简单便捷:USB-CDC虚拟串口忽略传统串口的起始位、停止位等冗余信息
△  数据传输更可靠:USB-CDC虚拟串口丢弃传统串口简单的软件奇偶校验机制,
    USB-CDC虚拟串口数据传输时有USB硬件CRC校验,以及校验出错重传机制,保证数据100%正确
△  自动缓存数据:USB-CDC虚拟串口会自动缓存数据。单片机在没有处理完成上位机下传的上一笔数据时,
    如果此时上位机又有新的数据下传,虚拟串口会自动将新的数据缓存,从而保证数据100%不会丢失或被覆盖。

出590入992汤圆

 楼主| 发表于 2023-4-14 11:50:49 | 显示全部楼层
wye11083 发表于 2023-4-14 11:17
你一次发100字节保证也丢得想哭。

usb hid以及这类usb串口缓冲区长度可能是64字节,一次发64字节以内, ...
(引用自15楼)

但是为什么1.5M可以?也是一次100字节,间隔100ms。
对于USB2.0来说,可能每次最大的包就是64字节,但是串口驱动里面肯定处理了大于64字节的包。否则市面上所有基于USB2.0的串口,肯定都有64字节的问题。

出0入442汤圆

发表于 2023-4-14 11:57:16 来自手机 | 显示全部楼层
SUPER_CRJ 发表于 2023-4-14 11:50
但是为什么1.5M可以?也是一次100字节,间隔100ms。
对于USB2.0来说,可能每次最大的包就是64字节,但是 ...

(引用自18楼)

这就不知道了。可以试试发64字节,等个几ms再发剩下的部分。

出0入0汤圆

发表于 2023-4-14 12:57:52 | 显示全部楼层
也可能是电脑USB的问题,或者你上位机软件的问题呢,你怎么证明这二者没问题呢,换个电脑再试试呢

出0入475汤圆

发表于 2023-4-14 13:02:00 来自手机 | 显示全部楼层
wye11083 发表于 2023-4-14 11:17
你一次发100字节保证也丢得想哭。

usb hid以及这类usb串口缓冲区长度可能是64字节,一次发64字节以内, ...

(引用自15楼)

你测试过?

出5入157汤圆

发表于 2023-4-14 13:03:32 | 显示全部楼层
FT232  没有比这更强的了,真是稳

出0入0汤圆

发表于 2023-4-14 13:22:58 | 显示全部楼层
用电脑接CH340N做大数据包收发试试,以前用CH340E试过2M波特率下不丢数据,也是内部晶振

出590入992汤圆

 楼主| 发表于 2023-4-14 14:52:06 | 显示全部楼层
罗小蘑菇 发表于 2023-4-14 12:57
也可能是电脑USB的问题,或者你上位机软件的问题呢,你怎么证明这二者没问题呢,换个电脑再试试呢 ...
(引用自20楼)

问题就在上面说过了。有丢数据,10W只丢了几百个,定位的有点难。
而且我这边软件包括配置,更换了一个硬件都试过了。所以。。

出0入17汤圆

发表于 2023-4-14 19:18:26 | 显示全部楼层
SUPER_CRJ 发表于 2023-4-14 10:34
单片机用的是外部晶振。
CH340N是内置晶振的型号。难道是内置晶振的问题?但是他的宣传上支持2M波特率的 ...
(引用自10楼)

内置的不行。。。有时候512000就不行了。

出145入215汤圆

发表于 2023-4-17 15:13:09 来自手机 | 显示全部楼层
试试cp21xx系列,体积比较小

出0入362汤圆

发表于 2023-4-17 16:16:18 | 显示全部楼层
我很久以前测试过,CH340G和CP2102可以1.5M稳定传输, CH340不带晶振的几种, 包括B/C/N,1.5M时都会出现隔几百字节丢一字节的情况。 所以我用CH340N只敢用到500ksps.

你要想体积小还要免晶振的话, 只能选CP2102.

出0入42汤圆

发表于 2023-4-18 09:21:38 | 显示全部楼层
SUPER_CRJ 发表于 2023-4-14 09:59
我判断不是软件问题的方法:
1:波特率在1.5M的时候都没有问题,10W字节收发都正常。
2:波特率在2M的时候 ...
(引用自2楼)

"3:软件处理逻辑简单,不会出现所谓的溢出或者没有处理过来的情况:每100ms发送100字节。如果有问题,前期就会有问题,显然是数量大上来后出现的问题。
4:最后判断是单片机TX到CH340的RX上丢的数据。"

也可能是PC的CH340驱动和CH340间的通信问题
USB的上传是基于轮询的,单片机发送到CH340的数据必须暂存在发送缓冲区内,而CH340这类廉价方案的缓冲区不会很大,估计也就是几KB数量级。
2M波特率下不停发送,则每10ms就可以产生约2000字节的数据,PC只要卡一下,就很容易填满缓冲区

验证方式也简单:单片机每发1024字节数据就加上100ms延时,如果发了10W字节都没有丢,就逐步减小延时时间,直到出现丢数据,此时的延时就是极限;如果延时100ms也有丢数据,才有可能是单片机与CH340间通信的问题

出0入0汤圆

发表于 2023-4-18 14:56:06 来自手机 | 显示全部楼层
10M的话,单片机TX到CH340的RX上需要串个10Ω电阻。。。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-20 22:29

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表