上图是用 MOS 管实现的 I2C 总线电平转换电路,实现 3.3V 电压域与 5V 电压域间的双向通讯。挂在总线上的有 3.3V 的器件,也有 5V 的器件,通过这个电路,大家就可以愉快地玩耍谈天了。
实物对照图如下。实物的上拉电阻用了 4.7K 欧姆,可以供应更大的电流驱动能力。在知足电路性能的条件下,我喜好用阻值更大的电阻,由于功耗更低更省电。
事理剖析

简化来看,留下 I2C 的一根线来剖析就可以了,如下图。
分四种情形:
1、当 SDA1 输出高电平时:MOS 管 Q1 的 Vgs = 0,MOS 管关闭,SDA2 被电阻 R3 上拉到 5V。
2、当 SDA1 输出低电平时:MOS 管 Q1 的 Vgs = 3.3V,大于导通电压,MOS 管导通,SDA2 通过 MOS 管被拉到低电平。
3、当 SDA2 输出高电平时:MOS 管 Q1 的 Vgs 不变,MOS 坚持关闭状态,SDA1 被电阻 R2 上拉到 3.3V。
4、当 SDA2 输出低电平时:MOS 管不导通,但是它有体二极管!
MOS 管里的体二极管把 SDA1 拉低到低电平,此时 Vgs 约即是 3.3V,MOS 管导通,进一步拉低了 SDA1 的电压。
注:
低电平指即是或靠近 0V。
高电平指即是或靠近电源电压。以是 3.3V 电压域的器件,其高电平为即是或靠近 3.3V;5V 电压域的器件,其高电平为即是或靠近 5V。
详细哀求看芯片的数据手册是怎么解释这个限定范围的,常见的比如说 0.3 倍的“芯片供电电压”以下为低电平,0.7 倍的“芯片供电电压”以上为高电平。也便是说“芯片供电电压”为 5V 的时候,5 x 0.3 = 1.5V 以下为低电平,5 x 0.7 = 3.5V 以上为高电平。
某一个芯片数据手册里关于高低电平的阈值范围解释
把稳事变
以上是 3.3V 与 5V 之间的情形,如果换用其他电压域之间的转换,如 3.3V、2.5V、1.8V 等电压值的两两之间,须要把稳 MOS 管的 Vgs 开启导通电压。
给 MOS 管过高的 Vgs 会导致 MOS 管烧坏!
给过低的 Vgs 会导致 MOS 管打不开!
不同型号的 MOS 管这个参数值还不一样!
!
!
举例:个中一个厂家生产的 2N7002 的数据手册,Vgs 不能超过正负 20V
再来看一下,设计电路时 Vgs 可能设计过小的情形,下图是 2N7002 的数据手册:
举例:个中一个厂家生产的 2N7002 的数据手册,Vgs 的开启电压为 1V
实际利用时为担保完备开启、完备导通,设计上要多预留余量,比如实际电路中 Vgs 最少给到 1.8V。由于 1.8V 的设计参数靠近数据手册标注的 1V 临界值,尤其把稳用实验验证,确保万无一失。
总结
3.3V 跟 5V 互转的电路已经是一个经典电路,实在是硬件设计师居家旅行、护院看家,必备良药!
MOS 管型号就记住用 2N7002,这个型号便宜,性能久经磨练,不像有些 MOS 管外型看起来跟 2N7002 一样,但实际是大功率的,有部分性能规格摧残浪费蹂躏了,有部分性能规格又不一定能知足须要,紧张是还贼贵,详细其他 MOS 是若何的这里就不细究啦。