我们经常使用电平转换芯片来转换IO口电压实现不同电压等级芯片之间电平转换,比如两个处理器使用串口通讯,其中一个处理器的串口为1.8V电平,另外一个为3.3V,两个处理器串口直接相连不太合适(有时候自己玩玩还是可以的),需要电平转换芯片。这里介绍一种单MOS管的双向电平转换电路,简单易用,用在对速率要求不高的场合。以下为单MOS管电平转换电路,左侧为1.8V电平逻辑,右侧为3.3V电平逻辑,下面详细介绍一下。
1)右侧开关闭合直接接地,模拟输入低电平,当开关闭合后,可以理解为有两个过程出现。
第一个过程,开关闭合后MOS管漏极接地为0V,左侧的1.8V电源电流经过R1和MOS管内的体二极管,最后流入GND,此时MOS管源极电压只有一个二极管的管压降(这里假设为0.6v),那么MOS管的栅极和源极之间的Vgs = 1.2V。
第二个过程,栅极和源极之间的电压约为1.2V,MOS管开始导通,最终会使源极电压为0V,实现0v输出。
2)右侧开关断开,漏极被电阻拉高,为3.3V,模拟高电平输入。此时Vgs=0V,MOS管截止,源极电压被1.8V电压拉高,实现从3.3V至1.8V电平转换。
2、从低压侧向高压侧转换
左侧低压部分使用一个开关模拟高低电平输入。
1)左侧开关闭合直接接地,模拟输入低电平,此时MOS管的Vgs = 1.8V,MOS管开始导通,拉低漏极电压至0V,实现低电平转换。
2)左侧开关断开,此时Vgs=0V,MOS管截止,漏极电压被3.3V电压拉高,实现从1.8V至3.3V电平转换。
3、小疑惑
开始笔者使用2N7002P这个器件仿真,发现高电平侧输入0V时,低电平侧电平不能到底,0.6V左右,这是什么原因呢?刚开始以为是内部二极管的管压降,其实不是。
带着疑惑,下载了这两款MOS管的手册,如下图MOS管的转移特性曲线,左侧是SI2302DS,右侧是2N7002P,从图中可以看出SI2302DS从1V开始逐渐导通,而2N7002P从2V左右开始导通,2N7002P的导通电压高一些,因此在以上电路中使用2N7002P导通程度比使用SI2302DS要小,2N7002P管导通压降较大,再加上左侧1.8V电压较低,Vgs较小,所以出现低电平不能到底的问题。
其实这个问题好解决:
1、增大VCC1的电压,使Vgs增大,增大MOS导通程度,当然这样就不能用在1.8V和3.3V互转,可以用在3.3V和5.0V互转。
2、增大R4也可以,R4增大后,R4压降就大,源极电压减小。如下图,R4增大为100K的仿真结果,源极电压降为15.3mV,基本就是0了。注意一点左侧一般接入单片机的IO管脚,要注意单片机的IO内部上拉电阻会和R4并联,需要根据实际情况打开或者关闭上拉电阻。