晕……TXD加三极管反相,控制原理是:平时串口空闲时TXD为高(包括了发送'1'),反相后使RS485处于接收状态,所以接收是完全没问题的……
发送数据时:
发送'0',TXD==0,反相后为高,485芯片切换为发送状态,把'0'发送出去——也没问题
发送'1',TXD==1,反相后为低,485芯片切换为接收状态……那如何把'1'发送出去呢?只能靠上拉下拉电阻给AB线的偏置了——问题的根源就在这里。电阻的驱动能力很有限,如果近距离、低波特率、只有一个负载,可能还能正常工作。远距离、高波特率、多负载时就抓瞎了。
我已经给客户解决过很多次这种问题……一开始都说我的传输不行,最终却都是这个问题:lol
|