MCU技术分享
RS485的自收发电路测试出现了问题,问该如何解决,群友的电路图如下,问题在于可以正常接收信息,但是发送的数据有问题(下图中VCC为3.3V,单片机为3.3V系统):然后就问我电路图有没有问题,那么就按照发送低电平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:
修改意见:去掉R84上拉电阻,那么去掉上拉电阻后的自收发逻辑如下:UART_TX输出3.3V,三极管Q4截止,从而485芯片的使能管脚被R41下拉至低电平。从而芯片处于接收状态,又由于A、B管脚为高阻,所以此时A管脚电压约等于1.67V,B管脚约等于1.63V,此时A-B=0.04V。由于芯片A、B管脚均为高阻,所以说等效电路如下:
但是如果接收器用的485芯片是以±200mV为判断阈值的芯片,那这个自收发电路还是要出问题的。例如这个芯片MAX3485就是以±200mV为判断阈值的:
在去掉了上拉电阻R84后,RS485数据接收发送恢复正常。
无需外部方向控制电路。 在A/B总线间添加TVS二极管,防止静电或过压损坏芯片。 去除 上拉电阻的效果 使用支持自动方向控制的RS485芯片 120Ω 终端电阻会分压,降低 A-B 差分电压幅值。 替换为内置失效保护功能的 RS485 芯片 核心问题是接收状态下A/B管脚的电平异常 在A/B总线间添加偏置电阻 芯片始终处于发送状态,无法切换到接收状态。 增加 A、B 端上下拉电阻 替换三极管为逻辑门控制 RE/DE引脚在发送时为高电平,接收时为低电平,避免竞争。 120Ω负载电阻,实际差分电压被分压 在接收状态下,A和B管脚为高阻态 消除接收状态下A/B管脚的固定上拉电平,使A/B电平由总线负载决定 上拉电阻使得485芯片的使能端 保持高电平 总线两端120Ω终端电阻是否正确安装,减少反射干扰。 接收状态下,A/B管脚不再被R84上拉,而是由总线负载决定电平。 配置RS485总线终端匹配
页:
[1]
2