本文来自电子工程专辑。
上面是顽皮男孩一直在使用的485通信自动收发器电路。
不仅必须向您提供电路,而且还必须向您解释电路原理。
测得的9600波特率不会有问题,但是115200的波特率就存在问题。
首先让我们看一下普通的收发器电路。
普通的485电路,除了“将485芯片的RO引脚与RXD连接,而485芯片的DI引脚与TXD连接”之外,还将使用单片机的普通IO引脚连接至RE。
和DE引脚。
当单芯片计算机要发送数据时,它控制CTRL为高电平,并通过TXD发送数据。
当微控制器想要接收数据时,它控制CTRL为低电平,然后通过RXD接收回数据。
但是,自动发送和接收意味着不使用MCU引脚CTRL。
数据输入时,数据将自动通过RXD传递到MCU,而当需要发送数据时,它将自动通过TXD发送出去。
即,仅需要连接单片机的RXD和TXD引脚,而无需使用单片机引脚来连接485芯片的DE RE引脚。
本文的第一张图片是实现自动发送和接收的电路。
实际上,自动发送和接收电路有几种连接方法。
今天,我们只研究我经常使用的那个。
许多人会使用此电路,但不了解其原理。
(是的,我在谈论您!)因此,今天我将向您解释每个组件的工作原理。
电阻器R1的作用:RXD将电阻器R1连接到485芯片的RO,其中R1用于限制电流和保护引脚。
R1的大小可以从330欧姆,470欧姆,560欧姆和1K中选择。
电阻器R2,R3和晶体管Q1:电阻器R2,电阻器R3和NPN晶体管Q1构成典型的晶体管开关电路。
R3是限流电阻,最好为4.7K或10K。
R2是上拉电阻,可以选择4.7K或10K。
为什么R3是4.7K的最佳选择?我之前写过一篇文章,并详细提到了它。
主要原因是您需要了解在放大区,截止区和饱和区工作的晶体管的特性。
转到Ruisheng.com并搜索“晶体管”。
有标题为“当使用三极管作为开关时如何选择基本极限电流电阻”的文章。
NPN晶体管以高电平导通。
每个人都知道这一点。
当TXD为高电平时,晶体管导通,RE DE引脚接地,并进入接收模式。
当TXD为低电平时,晶体管截止,RE DE引脚连接至高电平,并进入发送模式。
电容器C1:C1是电源旁路电容器,用于为485芯片提供干净的电源并使其稳定工作。
在设计电路板时,如果芯片没有特殊要求,则需要在每个芯片旁边放置一个0.1微法拉的电容器。
当进行PCB布线时,电容器与电源引脚之间的距离应在2mm之内。
电阻器R4和R5:R4是连接到B的下拉电阻器。
R5是连接到A的上拉电阻器。
为什么要这样做,我将在下面讨论,现在不是时候,请继续往下看。
双向齐纳二极管D1,D2,D3:此处使用的双向齐纳二极管模型为SMAJ6.5CA。
它们的功能是将A和B引脚之间的电压接地,并将A和B引脚之间的电压限制在6.5V之内,以保护485芯片。
从SP3485芯片手册获得,AB的耐压值在正负15V之内。
有些人很好奇,为什么他们要看这两个参数?因为两个引脚AB是驱动器输出和接收器输入。
请参见下图:端子P1:用于连接需要与外部通信的A和B线。
(这似乎不必多说!)现在,每个组件的介绍已经完成,让我们讨论为什么可以实现自动发送和接收功能。
您最大的问题是:DI引脚最初连接到TXD,但是电路直接接地,那么发送的数据将始终为0?答案如下。
发送数据的过程:发送数据使用微控制器的TXD引脚,即数据显示在TXD引脚上。
例如,如果您要发送数据0x55,则将其以二进制格式写为0x01010101,TXD引脚将使用高电平和低电平依次反射1和0。
当TXD发送0时,晶体管未导通,DE连接到高电平,并进入传输模式,485芯片会将DI的电平反映到AB引脚并输出,因为DI接地,所以AB引脚将发送0。
您看,当TXD发送时