传统常用的485自动切换电路如下:
自动原理简述:
1.TX=1(串口停止位),此时Q1导通,485芯片处于接收态,接收高(R4上拉为高,A,B线上下拉为A>B)总线处于高被接收端接收;;
2.TX=0(串口起始位),此时Q1截止,485芯片处于发送态,将DI处的电平(固定为低)发送出去,此时A<B,RO高阻,RX=1;
3.R4还是有必要的,为什么呢,看下芯片手册真值表:
芯片的 RO脚只在RE为0时才有意义,当RE为1时,RO为高阻态,R4电阻的作用时强制使RO为高电平,对MCU来说,即停止位。
如果R4不是上拉到VCC,而是下拉到GND,会怎样呢?
继续分析一下:
对于TX状态,与上图无异 ;对于RX,差异就来了;
1.TX=1的,485接收态,RX=1(由A,B上拉所致);
2.TX=0的,485发送态,RX=0(由R4下拉所致);
这就导致TX发什么,RX就收什么,即使485对外接口悬空,MCU也会收到从TX发出数据,形成串口回环。