信号线小电阻的作用

在一块新的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串联小电阻

网友1:显然是CPUA电源还没有供电,IO却得到一个高电平,而这个高电平有不足以让CPUA工作其他(驱动能力不够),貌似加1K上拉后供电足够让CPUA工作了。在这种情况下,串120R电阻其实还是有风险的。我觉得正确的做法是,CPUB启动后,在给CPUA加电前,把CPUB的串口置于高阻态,然后给CPUA上电即可。

作者回复:这里的电源上电顺序是,CPU A->CPU B, A先上电,出问题的时候,B还没有上电。

网友2:这个分析不对。是用结果倒推原因,用假设的逻辑分析问题,并没有验证。

网友3:开机出现的杂波原因是什么?

永不止步步 发表于09-23 13:53 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:308417个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号