MAX3232 每次只有在上电后,再连接串口线正常——保护电阻

转载:http://m.newsmth.net/article/Circuit/298517?p=1

原问题:

做了块电路板,结果发现,要先对开发板上电, 再打开串口超级终端, 串口通信才可成功。
但是另外一块开发板却没有这个问题。
这一般是什么原因造成的?

自己遇到问题:

刚焊接好的板子,发现串口有问题,结果串口每次只有在断电上电后需要在上电后重新连接串口线

才能正常通信

原因简述:

缺少保护电阻,

解决办法:每次断电时拔掉串口线

下面所提到的问题,和上面链接中的问题(热插拔才可通信),其实是同一个问题,
可能的原因是
  1. 232收发器芯片产生电压的那些小电容的数值是和数据手册上不太一致
  2. 232收发器芯片和232插座之间缺少串联保护电阻,或保护电阻数值太小。
  3. 原来的232收发器芯片可能部分失效了

如果1和2都已经做到了,将232收发器芯片的RXD输入管脚和插座RXD之间的串联保护
电阻加大,比如换成1K或10K的,应该就可以了。如果还不成,就换个232芯片吧。

多说几句原因吧(以前碰到过该问题所以就研究过):

在不通信的时候,PC串口的TXD管脚会输出-5V左右的电压,于是在开发板上的232收
发器芯片的RXD对应的输入管脚(R1IN或R2IN)上维持着-5V左右的电压。当开发板断电
时,232收发器芯片的电源管脚没有电压,V+/V-管脚也没有电压,唯独RXD输入管脚
(R1IN或R2IN)上维持这一个-5V左右的电平,不用多说就能明白这意味着什么。假如
习惯上每次给开发板断电后却让串口依旧和 PC保持连接,这意味这232收发器芯片
长期承受着RXD输入管脚-5V但同时又让电源管脚和V+/V-为零电平,特别当PC的TXD
输出维持这超过-5V甚至超过-6V的时候,久而久之,这颗芯片就会渐渐部分失效或
全部失效,于是通信就失败了。所以换一个芯片往往就可以解决这个问题。

每次先打开串口程序而没有通信的时候,-5V或以下的电压就加在TXD管脚上了,如果
此时开发板断电但是却接着串口,就相当于初始状态是先让232收发器芯片处于上述
异常的工作条件,然后再给开发板上电的时候,就可能出现通信不成功的状况。

这个时候当带电拔插一下串口,相当于让232收发器芯片的RXD输入管脚去掉-5V电压,
而保持其电源管脚、V+、V-管脚的电压,这是232芯片回复到正常的工作条件。如果
232收发器芯片的失效程度还不深(不会深度“抱死”),这个时候通信就可能恢复正常。

而如果重新启动一下串口程序,初始化过程会改变PC串口TXD的输出电压,让232收发
器芯片的RXD管脚有一个恢复0电平的过程,这和上面拔插串口以便在RXD管脚上临时
去掉一下-5V的电平,是一个效果。

另外,将那个RXD的串联电阻改大,起的作用就是在232收发器芯片的电源管脚掉电
的时候,从RXD输入管脚(R1IN和R2IN)的输入电压被限流了,于是对芯片的损坏就不
那么大,或者说进入故障异常的程度不会那么深,当开发板上电(也就是232收发器
芯片上电)的时候,就比较容易恢复正常状态。

通过实验的方法也可以验证上述分析。当开发板断电但是串口依然接着PC的时候,测
量232收发器芯片对应于RXD输出到MCU的那个管脚,会发现该管脚的电压为显著的-0.x
伏(被MCU的管脚给限制了所以不会很低,但是往往会有个-0.3或-0.5V)。当给开发板
上电后出现了上述故障时,测量一下232收发器芯片对应RXD输出到MCU的那个管脚的
电平,你会发现该管脚一直维持为0电平,而不是期望的+3.3V/5V(取决于232收发器
芯片的电源大小),这就是RXD输出管脚好像被“抱死”了。而一旦热插拔或重新初始
化PC的串口后,会看到那个管脚的电平就回复到+3.3/5V,可以正常通信了。

所以,两个建议:

1. 当开发板断电后,应该也拔掉串口线,否则232收发器芯片就可能长期处于异常的
   电平条件。

2. 从串口插座输入进来的信号,到232收发器芯片管脚之间应该串联较大的电阻,而
   不是类似于TXD信号那样接个5.1或22欧的小电阻。我比较习惯于用1K或470欧。

当然,这个串联电阻也不能太大,也要兼顾考虑串口线上的压降(比如线比较细或长)。

时间: 2024-10-03 23:06:34

MAX3232 每次只有在上电后,再连接串口线正常——保护电阻的相关文章

SQLyog通过ssh验证成功后再连接数据库

问题描述: 今日用SQLyog连接一台服务器的数据库时弹出"错误号码2003"的报错 解决办法: 先通过SSH验证连接后,再连接MYSQL. 1.新建连接后切换到SSH选项卡,输入相应的SSH登录信息 2.切换到MYSQL选项,输入数据库权限的相应信息即可成功连接.

[Elixir002]节点启动后自动连接其它节点

问题: 如何指定一个节点在启动后自动连接到别的节点上? 这个我们要使用到sys.config,这是erlang的配置文件,这个文件一般都是$ROOT/releases/Vsn下 1. 首先我们要先启动一个master节点,Node.list可以看到当前节点并没有连接到任何节点 iex --cookie secret --name [email protected] Erlang/OTP 18 [erts-7.2.1] [source] [64-bit] [smp:4:4] [async-thre

修改远程桌面连接端口及修改端口号后如何连接!

很多人都知道Windows系统自带了一个远程桌面连接,也非常好用,但时常遇到端口被占用的问题(比如局域网内有很多电脑要从外被连接,都使用远程桌面连接是不能可以实现的(因为路由没法映射同一端口到多台电脑) 远程桌面连接终端服务默认端口为“3389”,为防止他人进行恶意连接或是需要多个连接时,就需要对默认端口进行更改.对此可打开注册表编辑器,依次展开“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdp

Web安全--使用Salt + Hash将密码加密后再存储进数据库

转载原地址 http://www.bozhiyue.com/mianshiti/_net/2016/0728/314239.html (一) 为什么要用哈希函数来加密密码 如果你需要保存密码(比如网站用户的密码),你要考虑如何保护这些密码数据,象下面那样直接将密码写入数据库中是极不安全的,因为任何可以打开数据库的人,都将可以直接看到这些密码. 解决的办法是将密码加密后再存储进数据库,比较常用的加密方法是使用哈希函数(Hash Function).哈希函数的具体定义,大家可以在网上或者相关书籍中查

android6.0 adbd深入分析(四)adbd usb线拔掉再连接的过程

这篇博客我们主要分析下adbd在usb线拔掉,然后再连接的代码流程. 一.log打印流程 我们先来看下自己调试的代码打印: 由于显示的问题,我把log的时间去除了,只显示了pid 和tid //拔去usb线 185 188 I adbd : output_thread:(null): remote read failed for transport 185 188 I adbd : output_thread:(null) SYNC offline for transport 185 185 I

CentOS 6.2最小化安装后再安装图形界面

在安装CentOS 6.2时发现它没有提示我要怎么安装,而是"自作主张"地给我选择了最小化安装,结果装完之后只有终端界面,因为有时候不得不用图形界面,所以如果没有图形界面也是很麻烦的. 后来通过百度才知道为什么它不让我选了,因为我用的是虚拟机,由于物理机本身配置就不高,所以我就没给虚拟机分配太多内存,而CentOS 6.2会根据你分配的内存大小决定安装方式,具体的界定我也忘记了,好像是512M还是1G,不过没关系,我们可以自己来安装图形界面,下面来说一下怎么安装. 1.yum -y g

ubuntu16.04 无法wifi链接一段时间掉线且无法再连接

ubuntu16.04 无法wifi链接一段时间掉线且无法再连接,从网上搜索的确认这个一个bug. 解决方法: 1.Get details of your PCI wireless card by running sudo lshw -class network 显示信息如下: *-network description: Wireless interface product: RTL8723BE PCIe Wireless Network Adapter vendor: Realtek Sem

使用Vmnet网卡把ENSP与GNS3对接,电脑睡眠后无法连接问题的解决方法

使用Vmnet网卡把ENSP与GNS3对接,电脑睡眠后无法连接,重启ENSP就可以解决.

MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult

MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult 导出EXCEL方法总结:MVC导出数据到EXCEL的方法有很多种,常见的是: 1.采用EXCEL COM组件来动态生成XLS文件并保存到服务器上,然后转到该文件存放路径即可:优点:可设置丰富的EXCEL格式,缺点:需要依赖EXCEL组件,且EXCEL进程在服务器中无法及时关闭,以及服务器上会存留大量的不必要的XLS文件: 2.设置输出头为:application/ms-excel,再输出拼接的HTM