信号线小电阻的作用
2015-07-05 16:53
148 查看
在一块新的PCB上,测试系统能否正常运行的时候,发现系统上电后没有正常启动。
系统框图如下:
在上电的时刻,CPU A(GPIO电平2.6V)会向串口发送启动日志数据,CPU A启动后,使能CPU B(GPIO电平 3.3V)模块的电源芯片,CPU B开始工作。
经分析,发现是上电时刻CPU A的Rx接收到数据,导致CPU A进入非正常启动状态。
猜想CPU A的Rx端接收到信号的原因可能为:
CPU A发送启动日志数据后 CPU B有回复,造成CPU A的Rx接收到数据;
考虑到CPU A启动后才使能CPU B的电源芯片,于是测试CPU A的控制CPU B电源芯片的引脚。发现在复位后的瞬间会出现一个50us左右的一个使能信号,可能在此时CPU B进入工作接收到CPU A的数据,并回复。
但是,
1、CPU B的启动初始化能否在50us内完成?
2、在115200 bps的波特率下,完整接收玩一个字节需要的时间为10*1/115200=86.8 us。所以,在50us的时间内CPU B还没有收到一个完整的字符。
这种假设不成立。
在使用示波器测量串口Rx上的电平时,发现在Rx出现了方波状带有杂波的波形,电平信号在1.8V左右。1.8V的电平信号,很可能造成Rx端接收异常的数据。
为了使CPU A端的电平确定,尝试在CPU A端添加了1K的强上拉电阻。发现系统确实可以正常工作。此时,测试CPU A端Rx,发现出现的方波状波形在2.4V左右。虽然,这样能够暂时解决问题,但是并没根本解决问题。
在比较新旧两块PCB的时候,发现旧的PCB上在CPU A端Tx Rx存在一个120欧姆左右的小电阻,如下:
旧的PCB在测量CPU A端Rx处的电平时,发现电平为0。
在新的PCB上CPU A端添加两个120欧姆的小电阻后,系统上电时,CPU A端的Rx电平也为0。
所以,此处的根本原因在于串口线上缺少了两个小电阻。
关于小电阻在信号线的作用:
1、抑制信号反射(吸收反射的信号);
2、提高抗干扰能力;
3、防止GPIO被瞬间信号击坏;
4、阻抗匹配(串接和并接的目的是一致的,只是手段不一样)。
参考连接:
信号线时钟线地址线GPIO串联小电阻作用
系统框图如下:
在上电的时刻,CPU A(GPIO电平2.6V)会向串口发送启动日志数据,CPU A启动后,使能CPU B(GPIO电平 3.3V)模块的电源芯片,CPU B开始工作。
经分析,发现是上电时刻CPU A的Rx接收到数据,导致CPU A进入非正常启动状态。
猜想CPU A的Rx端接收到信号的原因可能为:
CPU A发送启动日志数据后 CPU B有回复,造成CPU A的Rx接收到数据;
考虑到CPU A启动后才使能CPU B的电源芯片,于是测试CPU A的控制CPU B电源芯片的引脚。发现在复位后的瞬间会出现一个50us左右的一个使能信号,可能在此时CPU B进入工作接收到CPU A的数据,并回复。
但是,
1、CPU B的启动初始化能否在50us内完成?
2、在115200 bps的波特率下,完整接收玩一个字节需要的时间为10*1/115200=86.8 us。所以,在50us的时间内CPU B还没有收到一个完整的字符。
这种假设不成立。
在使用示波器测量串口Rx上的电平时,发现在Rx出现了方波状带有杂波的波形,电平信号在1.8V左右。1.8V的电平信号,很可能造成Rx端接收异常的数据。
为了使CPU A端的电平确定,尝试在CPU A端添加了1K的强上拉电阻。发现系统确实可以正常工作。此时,测试CPU A端Rx,发现出现的方波状波形在2.4V左右。虽然,这样能够暂时解决问题,但是并没根本解决问题。
在比较新旧两块PCB的时候,发现旧的PCB上在CPU A端Tx Rx存在一个120欧姆左右的小电阻,如下:
旧的PCB在测量CPU A端Rx处的电平时,发现电平为0。
在新的PCB上CPU A端添加两个120欧姆的小电阻后,系统上电时,CPU A端的Rx电平也为0。
所以,此处的根本原因在于串口线上缺少了两个小电阻。
关于小电阻在信号线的作用:
1、抑制信号反射(吸收反射的信号);
2、提高抗干扰能力;
3、防止GPIO被瞬间信号击坏;
4、阻抗匹配(串接和并接的目的是一致的,只是手段不一样)。
参考连接:
信号线时钟线地址线GPIO串联小电阻作用
相关文章推荐
- 第九节:反序列化时重写程序集和类型
- 01背包问题--动态规划解法(2)(转载)
- Unity对象池的实现
- 第八节:序列化代理
- easyui中tree型控件不正常显示的处理方法
- 省队集训Day3 light
- Servlet - Java Web Core Component
- How to Copy and Paste in the Ubuntu Gnome Terminal
- JDK、JRE和JVM三者之间的关系
- Java EE发展史
- Linux下获取块设备大小
- 【C++】通用单链表
- String Transmission
- 【软件测试】5、单元测试
- 基于ACIS/HOOPS的3D应用开发简介 【转】
- Oracle ->> Oracle下生成序列的方法
- 协议设计中ACK机制的影响
- 《java课程设计》之猜猜看游戏(四)
- leetcode_219题——Contains Duplicate II(哈希表)
- 【CF】174 Div.1 B Cow Program