一个项目要解决一个RS422相关的问题,具体来说,就是MCU输出的TTL电平UART信号,经过一个转接板,转换成RS422信号,再通过RS422转USB的转接线,接到笔记本电脑上,之后可以在电脑的串口终端里看到MCU对外输出的系统运行信息。这是一个看起来不复杂的转接问题,没想到花费了几个小时的时间,主要是连接线出了问题。
TTL转RS422的转接板,RS422输出的信号是ABYZ定义,不是常见的T+/T-,R+/R-,需要搞清楚这两者是如何对应的。
转接板是淘宝上买的,转换芯片是MAX490ESA。经查,ABYZ的信号定义为
RS422 针脚定义:
1.英式标识为 TDA(-) 、TDB(+) 、RDA(-) 、RDB(+)、GND
2.美式标识为 Y 、Z 、 A 、 B 、 GND
3.中式标识为 TXD(+) 、TXD(-) 、RXD(-) 、RXD(+)、GND
进一步查MAX490的数据手册,得到如下的表格
转接板上的封装是DIP,进一步查看连接示意图,如下
从表格里还没办法清楚理解ABYZ的定义,但是从框图里,可以看出,如果从MAX490芯片角度去看,YZ是MAX490对外输出信号,Y为正(T+),Z为负(T-),YZ对应的是MAX490输入信号DI(即RXD,应该与MCU的TX信号相连);同理,AB是MAX490从外部输入信号,A为正(R+),Z为负(R-),AB对应的是MAX490输出信号RO(即TXD,应该与MCU的RX信号相连),下表总结了相关的关系
信号名 | 对应信号(以MAX490观察) | To MCU | MCU连接 | RS422转接线连接 |
---|---|---|---|---|
Y | T+ | DI(RXD) | UART_TX | RXD+ |
Z | T- | DI(RXD) | UART_TX | RXD |
A | R+ | RO(TXD) | UART_RX | TXD+ |
B | R- | RO(TXD) | UART_RX | TXD- |
理清了连接关系,根据如下RS422转接线的DB9信号定义连线,发现无法联通。
仔细检查转接板的原理图,发现原理图的标识有错误,RO被连到了RXD上,实际应该是TXD,所以把MCU侧连线TX和RX的连线对调,就可以看到MCU的UART信息输出到了电脑的终端上。
至此,ABYZ与RS422 DB9接头就连接成功。