最近调试一颗 TI 的rs485 收发器芯片 :SN65HVD72DR ,遇到到点麻烦,既不能收,也不能发送。
先上图 :
PIN | TYPE | DESCRIPTION | |
NAME | NUMBER | ||
A | 6 | Bus I/O | Driver output or receiver input (complementary to B) |
B | 7 | Bus I/O | Driver output or receiver input (complementary to A) |
D | 4 | Digital input | Driver data input |
DE | 3 | Digital input | Active-high driver enable |
GND | 5 | Reference potential | Local device ground |
R | 1 | Digital output | Receive data output |
RE | 2 | Digital input | Active-low receiver enable |
VCC | 8 | Supply | 3-V to 3.6-V supply |
之前对它的 引脚 描述不是太清晰 ,如今从新理解一遍:
1,R 脚 ,原描述为:Receive data output ,我理解为:接收数据后的输出端,即接收来自485总线上的数据后,发送数据出来的引脚,此脚 要接MCU 的 RX ;
2, RE脚,低电平有效,接收器使能;
3,D 脚,原描述为:Driver data input ,字面意思是驱动数据输入,理解为要发送的数据从这个脚输入,此脚接MCU 的TX;
4,DE脚,高电平使能发送。
软件上看起来没有任何问题,但是RS485 工具就是收不到数据,用工具发送数据也不进接收中断,立马上示波器抓波形,结果 ,MCU 端 ,RX 无波形,TX 有波形;
所以看起来是 485 收发器的问题。
忽然发现,我在收发器的R 端抓到了MCU 的TX 数据 !
原来如此 ,是硬件的兄弟把RX ,TX 的两个根线画反了。
办法自然有了,很简单,软件上使能 RX 和TX 的swapping 功能即可解决。