问题背景
在设计一个带MCU或者ARM系统电路时候,经常遇见MCU的VCC是3.3V,但是外围电路需要5V,有时候是反过来。虽然现在MCU的IO都声称支持TTL电平,但是我们谁也不想将MCU的IO口直接接上5V,即使IO口先串联一个电阻,然后再接上5V,这样总是不放心,担心烧掉MCU。再说了,MCU声称IO口支持TTL电平,但是并不是所有的IO都是这样,反正有隐患。解决方法就是电平转换。
具体的我只说我在实际项目中运用到的方法,而且在项目中运用比较方便的,其他的都不再说了。
法一:基于门电路
第一种:利用OC或者OD门电路,这样集电极或者漏极都可以通过一个电阻上拉到一个新的VCC,其基极或者栅极就可以连接另外一个VCC,这样也就实现了,3.3V控制5V,12V的电平信号输出。注意这里需要选择好上电阻阻值,还要考虑MCUIO的驱动能力。这类电路大部分运用在输出电路上的电平转换电路。
当 IO 口输出高电平 3.3V 时,三极管导通, OUT 输出低电平 0V,当 IO 口输出低电平时,三极管截止, OUT 则由于上拉电阻 R2 的作用而输出 5V 的高电平,这样就实现了低电压控制高电压的工作原理。
法二:基于芯片
第二种:利用特定的电平转换芯片,将3.3V和5V进行转换。例如74LVC4245A,74ALVC164245这两款芯片用的比较多。
上图是74LVC4245A芯片管脚图和具体电气含义,它存在5VVCCA和3.3VVCCB,2个电源管脚,这样就可以实现5V和3.3V的转换了,同时DIR控制数据方向,这样也实现了3.3V到5V,或5V到3.3V的两个方向转换,具体转换方向的控制如下图:
另外74LVC4245A还可以增加MCU IO的电流驱动能力。在设计中如果需要的话会首选这个芯片。
74ALVC164245是16Bit,功能和74LVC4245A差不多。
当然了,还有其他的电平转换方案,但是比较下来,经常使用的,还是这两种方法最实用。
附录
74LVC4245A 的A端IO口的持续输出最大电流可达 ±50mA
同样,74LVC4245A 的B端IO口的持续输出最大电流可达 ±50mA
SN74HC245 的IO口持续输出最大电流可达 ±35mA
转载:https://blog.csdn.net/ReCclay/article/details/115742257