串口通信过冲原因分析和端接的方法
首先看一下我们常用的串口通信接线方式,MCU的RX,TX引出这里加一个33~100Ω的串联电阻以匹配传输线的阻抗,USB转TTL这端没有端接任何电阻,MCU这里和USB转TTL这里是通过15cm长的杜邦线连接,电路图如下,USB转TTL接到上位机电脑上面,MCU通过TXD不断发送数据给上位机,RXD为上位机给MCU发送测量指令。
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左右,所以我们可以看到信号的反射。我们在远端加了一个电容的就解决了反射的问题,就是把信号的上升时间变长,使反射淹没在上升沿过程中。
串口通信过冲原因分析和端接的方法相关推荐
- STM32串口通信中使用printf发送数据配置方法 开发环境 Keil
STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK) 已有 12456 次阅读2011-6-29 23:29 | 在STM32串口通信程序中使用printf发送数据, ...
- android qt 串口通信,Qt串口通信开发之QSerialPort模块详细使用方法与实例
Qt串口通信开发之QSerialPort模块详细使用方法与实例 发布时间:2020-10-23 12:19:05 来源:脚本之家 阅读:111 作者:沧海一笑-dj Qt串口通信基础及名词说明 串口通 ...
- 服务器端口不稳定怎么解决,网络不稳定的原因分析,以及解决方法
我们在上网的时候经常会遇到网络不稳定的情况,但我们往往都以为只是网线没插好,但其实造成网不稳定的原因不只是这个.那么网络不稳定的原因到底是什么呢?我们要如何去解决呢,有什么好的方法没?今天贤集网小编为 ...
- 4.0 树莓派做下位机播放视频、控制电机舵机、超声波检测、paj7620手势传感器控制,树莓派串口通信等程序分析
文章目录 一.前言 二.Python实现封装打包自己写的代码 参考链接 我的参考 _init_.py setup.py 三. 树莓派的硬件解码播放器--Omxplayer 四.树莓派控制舵机,驱动L2 ...
- java串口发送16进制数据_MFC串口通信发送16进制数据的方法
本文实例为大家分享了MFC串口通信发送16进制数据的具体代码,供大家参考,具体内容如下 MFC串口通信会使用m_mscomm控件. 发送数据一般是在edit control 里输入自己想发送的内容,然 ...
- 基于串口通信的DSP应用程序在线升级方法
摘 要:为解决特殊场合DSP程序升级困难的问题,以TMS320F28035为例,介绍了一种基于串口通信的适合于TMS320C2000系列DSP实现程序更新的在线升级方法.描述了该在线升级方法的基本思 ...
- STM32串口通讯数据丢失原因分析及解决办法
在进行串口通讯实验时,一时不仔细可能会发现通讯不正常,数据丢失的现象,包括丢失第一个字符,或只收到最后一个字符等等,本文接下来将就这类问题展开讨论. 首先是通过MCU向上位机发送数据: 若程序如下图所 ...
- WIN32 API串口通信编程
WIN32 API串口通讯实例教程 第一节实现串口通讯的函数及串口编程简介 API函数不仅提供了打开和读写通讯端口的操作方法,还提供了名目繁多的函数以支持对串行通讯的各种操作.常用函数及作用下: 函数 ...
- Ardunio下的STM32串口通信
文章目录 任务要求 Ardunio下的STM32串口通信 软件准备 编译烧录 标准库函数与HAL库函数的stm32编程方式差异 国人版的MCU集成开发平台 stduino IDE 总结 任务要求 安装 ...
最新文章
- 设计模式之解释器模式、例子分析
- oracle user does not exist,MVC+EF6+Oracle,提示ORA-01918: user '***' does not exist
- 《途客圈创业记:不疯魔,不成活》一一1.6 申请助跑计划
- c# decodeuri,用C#进行URL编码
- Linux基础命令---ftp
- JAVA基础:从一道面试题看逻辑运算符与、|与||的区别
- 【RLchina第四讲】Model-Based Reinforcement Learning
- ios蓝牙开发学习笔记(一)蓝牙概述
- ABB变频器维修,ABB变频器,ABB变频器配件FS300R12KE3/AGDR-61C 驱动模块APOW-01C 电源板AINP-01C 可控硅触发板
- 如何设置Idea字体颜色
- 微信小程序常用路由跳转方法
- 为什么美篇打不开显示服务器错误,评论为什么打不开
- 公民住宅权不可侵犯!为阻强拆致人重伤,属正当防卫
- Linux配置http代理(原理)
- DELL服务器硬件报错及对应的解决方法(R710)
- 20年时候收集的一些信息安全岗面试题
- 帆软10.0 冻结行 冻结列的 点击行变色
- 倾斜模型精细化处理_无人机倾斜摄影技术的三维精细模型制作
- (转)Let’s make a DQN 系列
- 结果导向和测试驱动(转)
热门文章
- Oracle 19c OCP认证 学习笔记(82) —— 约束的DEFERRABLE, NOT DEFERRABLE, INITIALLY IMMEDIATE 和 INITIALLY DEFERRED
- 关于db2中的NOT LOGGED INITIALLY
- C语言union占用空间知识
- (十九)Alian 的 Spring Cloud Config 集群配置
- 《HelloGitHub》第 51 期
- java实现二维数组推箱子小游戏
- 普通学生如何面对ACM,算法金奖得主带你领略
- pass了mentor的面试
- 2椭圆曲线密码学:有限域和离散对数
- 小程序图片高度自适应和设置text行高