1、三极管或MOS管转换电平
这是一种比较常用的方案,我所使用的NB-IOT模块的datasheet上面就有推荐这种方案。如下图所示,当TXD端为高电平时,NPN三极管处于截止状态,RXD端被上拉到其电源电压;当TXD端为低电平时NPN三极管导通,RXD端被拉低到低电平,完成电平转换。三极管也可以使用MOS管替换。
布局简单,可以根据电路板的尺寸进行合理布局。这种方案的缺点也是很明显,就是速度有限制,上面提到的datasheet里面给出的数据是不适合波特率超过460800bps的应用。
2、使用电阻分压转换电平
这种方案应该是最便宜的一种了,只使用了电阻这一种器件,如下图所示。我们分析一下这个电路,当3.3V电平模块向右侧发送数据的时候只通过限流电阻,到达右侧时的电平在客户端的接收范围内。当5V电平客户端向左侧发送数据时通过两个电阻分压,左侧接收端电压5V*2K/(1K+2K)≈3.3V。
这种方案的优点不言而喻就是成本极低,只需三个小电阻,同时方便布局,在PCB板上也不占用空间。当然缺点也是大大的,为了降低功耗那么分压部分的电阻值不能选择太小,这就导致了驱动能力不强同时速度上也不能太快,因为有寄生电容的影响。再一个就是完全没有隔离会有电流串扰,左右相互影响。
3、二极管钳位法转换电平
二极管钳位法来转换电平也是一个很常用的方案,具体电路如下图所示。我们来分析一下这个电路。当左侧TXD低电平的时候,由于D2的钳位作用,使得右侧RXD会得到一个等于二极管Vd的低电压;当左侧TXD发出高电平的时候。由于D1的钳位作用,右侧RXD会得到一个3.3V+二极管Vd的高电平。下面一组就更好理解了,当右侧TXD发出5V高电平的时候,左侧RXD接收到3.3V+Vd的电平,选择一款低压降的肖特基二极管就可以使接收到的电平更接近3.3V。
这种方案的优点是成本低廉,好实现,还有就是漏电流很小。缺点通过我们上述的分析大家应该已经知道了,那就是电平存在误差,这个误差就是二极管的正向压降,存在超出芯片正常工作电平的危险;再一个就是速度,因为有上面那个限流电阻的存在是会影响速度的,所以速度只能在100K以内。