[综合信息] MCU技术分享

[复制链接]
239|5
wangdezhi 发表于 2025-9-30 08:21 | 显示全部楼层 |阅读模式
RS485的自收发电路测试出现了问题,问该如何解决,群友的电路图如下,问题在于可以正常接收信息,但是发送的数据有问题(下图中VCC为3.3V,单片机为3.3V系统):

cb703d4c18b7b9b39990117a477c3779443608838.png@1192w.webp

然后就问我电路图有没有问题,那么就按照发送低电平0和发送高电平1分别进行分析。首先是串口发送0低电平,UART_TX为0V,三极管Q4导通,三极管饱和电压VCE约等于0.2V左右,三极管的集电极电压等于VCC-VCE≈3V左右,此时485的使能端判断为高电平,MAX3485处于发送状态,A和B管脚均为推挽输出,A和B根据DI管脚数据输入低电平,芯片发送A低B高,此时A-B≈-2.5V,由于120Ω负载电阻,所以|A-B|会小于3.3V:

7fcd68e5ad37596ba32522df342cd770443608838.png@1192w.webp

修改意见:去掉R84上拉电阻,那么去掉上拉电阻后的自收发逻辑如下:UART_TX输出3.3V,三极管Q4截止,从而485芯片的使能管脚被R41下拉至低电平。从而芯片处于接收状态,又由于A、B管脚为高阻,所以此时A管脚电压约等于1.67V,B管脚约等于1.63V,此时A-B=0.04V。由于芯片A、B管脚均为高阻,所以说等效电路如下:

2b177ad5d64c47ebc1aaf41334689516443608838.png@1192w.webp

但是如果接收器用的485芯片是以±200mV为判断阈值的芯片,那这个自收发电路还是要出问题的。例如这个芯片MAX3485就是以±200mV为判断阈值的:

121bd10ef5a4c94d2c3ab342257907d6443608838.png@1192w.webp
在去掉了上拉电阻R84后,RS485数据接收发送恢复正常。

kkzz 发表于 2025-10-4 08:51 | 显示全部楼层
无需外部方向控制电路。              
51xlf 发表于 2025-10-4 16:03 | 显示全部楼层
在A/B总线间添加TVS二极管,防止静电或过压损坏芯片。
averyleigh 发表于 2025-10-4 18:55 | 显示全部楼层
去除 上拉电阻的效果              
wilhelmina2 发表于 2025-10-4 21:10 | 显示全部楼层
使用支持自动方向控制的RS485芯片
rosemoore 发表于 2025-10-4 22:36 | 显示全部楼层
120Ω 终端电阻会分压,降低 A-B 差分电压幅值。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

208

主题

7576

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部