最近在测试stc15w4与25q16的通信,没有注意到25q16引脚信号是3.3v的,51单片机的信号电平是5v的,怎么都通讯不上。其实早该注意到的,51的例程里面注释就写了:“连接25q16的4个脚2.1 2.2 2.3 2.4要配置成开漏模式,进行电平匹配”。因为以前也没遇见过这种情况,也不知道啥是电平匹配。
所谓开漏,即引脚内部的pmos一直截至,nmos导通时引脚低电平,截止时,引脚呈现高阻态,由外部上拉电压决定输出,由此可以实现电平匹配。

那啥是电平匹配呢,就是让引脚电平5v的单片机能和引脚电平3.3的25q16通信。
逻辑电路中电平匹配的意思是逻辑电路前后两级输入输出的电平相同或相近,假设前级输出高电平为3.8v,后级要求的输入高电平电压也为3.8v或者3.8v左右相差不超过0.7v。
电平匹配的作用:电平匹配的前后级电路可以直接用导线连接,省去了电平转换电路,节省成本;常见的逻辑电路电平有TTL电平,CMOS电平等,TTL电平一般为单片机I/O口直接输入输出,分3.3v和5v两种电平,CMOS电平一般为12v供电,产生+15v到-15v的逻辑电压,若想TTL和CMOS之间通讯,必须增加电平转换电路,否则会烧坏单片机。
对于51单片机来说,将需要进行电平匹配的引脚配置成开漏模式之后,通过电阻上拉到3.3v就可以和3.3v器件正常通讯啦。

这里也分享一些网上的方案:


只需在3.3V的TXD端加一个电阻和肖特基隔开即可。3.3V的IC发送端TXD发送高低电平,5.0V的IC接收端肯定是可以识别到的,大家可以看一下TTL和CMOS单片机的电平差别。重点说一下电阻和二极管的电路。因为3.3V的IC是接收端,5.0V是发送端。当发送的是“1”时,因为二极管的缘故,电流不能通过,3.3V有上拉电阻,所以接受到的肯定是“1”,当发送的是“0”,又因为使用的是肖特基二极管,压降0.2~0.3V的原因,所以,3.3V的IC接受到的电平就是在0.2~0.3V区间,参考一些3.3V供电的单片机,低电平都是这样描述的:VIL=0.4VDD,所以,就是表示当引脚处的电平低于0.4*3.3=1.3V的时候就认为是“0”,这样0.2~0.3V的电平那也肯定就是“0”了。
浙公网安备 33010602011771号