串口通信过冲原因分析

 一  测试电路    

       首先看一下我们常用的串口通信接线方式,MCU的RX,TX引出这里加一个33~100Ω的串联电阻以匹配传输线的阻抗USB转TTL这端没有端接任何电阻,MCU这里和USB转TTL这里是通过15cm长的杜邦线连接,电路图如下,USB转TTL接到上位机电脑上面,MCU通过TXD不断发送数据给上位机,RXD为上位机给MCU发送测量指令。MCU到USB转TTL工具的长度为15cm左右。

二  测试现象

 1、MCU_TX波形

 2、USB_RX

 3、MCU_RX

 4、USB_TX

       从上面的测试波形我们已经发现问题,MCU的TX和USB的TX都是基本上没有过冲,MCU的RX和USB的RX都是有比较大的过冲,这个过冲一个15%一个30%,过冲是比较大的,造成这个过冲的原因就是因为阻抗的不匹配,而且导线过长使我们看到了信号的反射。

      我们以MCU_TX(近端)和USB_RX(远端)这一组为例,我们把匹配的100R电阻去掉,看远端的波形如下:

可以发现这个过冲又增加了3%左右。

然后我们把100R电阻焊回去,在远端出并联一个470p电容,这样增加传输的时延,使我们振铃淹没在上升沿,这样我们看到远端的波形就没有过冲了。

三 原因分析总结 

有人也许会说串口的通信信号频率不高,比如我上面的串口用的波特率为:961200bps,看频率有500k的时候,如果按500k来说远远没到需要阻抗匹配的的频率。

这个问题我的理解如下:

因为一般需要端接的最大长度in数是信号的上升沿的ns数,也就是当

Len max  >  RT

Len max是没有端接的传输线的最大长度,RT为信号的上升沿。举例来说:信号10M的频率,时钟周期为100ns,上升沿为10ns,那么不需要端接的传输线最大长度为10in,测试我们MCU的TX的上升沿时间如下图所示,可以看出上升时间为1.1ns,也就是不需要端接的传输线的最大长度1.1in,也就是2.79cm,而我们用的传输线长度有15cm左右,所以我们可以看到信号的反射。我们在远端加了一个电容的就解决了反射的问题,就是把信号的上升时间变长,使反射淹没在上升沿过程中。

参考:

串口通信过冲原因分析和端接的方法_过冲可以计算出阻抗不匹配的位置吗-CSDN博客

https://zh.wikipedia.org/wiki/%E4%BF%A1%E5%8F%B7%E5%AE%8C%E6%95%B4%E6%80%A7

  • 13
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值