关于I2C的电平转换电路的讨论。
时间:10-02
整理:3721RD
点击:
原因是最近公司电路评审,看到有各种各样的电平转换电路,包括这个转换用的MOS管,有人甚至在用3904替代,说是降低成本等等奇葩,我就奇怪了,能这样用么?
最终在网上找了这个电路的出处,并附带了解释,特此发不出来供大家学习讨论。
粗略翻译如下:
电平转化的操作过程
以下是电平转换电路工作过程的三种状态:
1、没有设备拉低数据线(如此翻译就不限于I2C了)
---由于场效应管的G极连接3.3V、S极被上拉电阻Rp拉到3.3V,所以Vgs电压小于场效应管的开启电压,产效应管关闭状态,允许“高电平端”通过电阻上拉到5V。此时,数据线两端都是高电平,但是保持不同的高电平等级。
2、当3.3V端设备拉低数据线到低电平时。
---场效应管的S极被拉低,此时G极保持3.3V,此时Vgs超过场效应管开启电压,管子导通;3.3V一侧设备拉低和场效应管的导通导致“高电平端”也变成了低电平。
3、当5V端设备拉低数据线到低电平时。
---因为在场效应管的D极和S极有一个内置“反向”二极管的存在。所以5V端拉低后,二极管导通导致S极变为二极管正向电压与“高电平端”低电平电压的叠加。此时,场效应管G极是3.3V,Vgs依然产生了电压差,当大于开启电压后,场效应管导通,则3.3V一侧也被进一步拉低至低电平
从此看的出几个关键点:
1、MOS管一定要选内嵌DS反向二极管的,没有就要外加低导通压降的管子。
2、高端侧拉低的低电平一定要够低,因为电平转换电路已经有了上拉电阻,就 不要在重复增加上拉电阻了。尤其是对于存在若下拉状态的接口。
3、线路串联电阻不要随意放,很简单串联分压,串联电阻后,主控端拉低后,接收端的电平会不够低,尤其这种状态出在3.3V一侧你就Game over了。
最终在网上找了这个电路的出处,并附带了解释,特此发不出来供大家学习讨论。
粗略翻译如下:
电平转化的操作过程
以下是电平转换电路工作过程的三种状态:
1、没有设备拉低数据线(如此翻译就不限于I2C了)
---由于场效应管的G极连接3.3V、S极被上拉电阻Rp拉到3.3V,所以Vgs电压小于场效应管的开启电压,产效应管关闭状态,允许“高电平端”通过电阻上拉到5V。此时,数据线两端都是高电平,但是保持不同的高电平等级。
2、当3.3V端设备拉低数据线到低电平时。
---场效应管的S极被拉低,此时G极保持3.3V,此时Vgs超过场效应管开启电压,管子导通;3.3V一侧设备拉低和场效应管的导通导致“高电平端”也变成了低电平。
3、当5V端设备拉低数据线到低电平时。
---因为在场效应管的D极和S极有一个内置“反向”二极管的存在。所以5V端拉低后,二极管导通导致S极变为二极管正向电压与“高电平端”低电平电压的叠加。此时,场效应管G极是3.3V,Vgs依然产生了电压差,当大于开启电压后,场效应管导通,则3.3V一侧也被进一步拉低至低电平
从此看的出几个关键点:
1、MOS管一定要选内嵌DS反向二极管的,没有就要外加低导通压降的管子。
2、高端侧拉低的低电平一定要够低,因为电平转换电路已经有了上拉电阻,就 不要在重复增加上拉电阻了。尤其是对于存在若下拉状态的接口。
3、线路串联电阻不要随意放,很简单串联分压,串联电阻后,主控端拉低后,接收端的电平会不够低,尤其这种状态出在3.3V一侧你就Game over了。
学习了!受益匪浅!
我们公司就用过这个电路,印象中是有的MOS管开得太快好像会有问题。具体记不太清了。
很好的资料
现在才看到,为时不晚啊, @Yisuan,感谢你的顶帖。
也可以用用三极管,两边是3.3V与5V。
嗯,不过对于三极管(mos管),是不是只要是N管就可以呢?有其他参数限制吗? 懂的话,烦请告知。
因为I2C 最快也就400kHz。一般N管开关速度都是满足的。
最最最最关键的就是管子要有体二极管!
传输端和接收端用的不是同一时间段的电平,即使都是3.3或者5V也是需要中间加个MOS进行隔离
非常感谢您的分享,不错的帖子。
谢谢小编分享
谢lz
用的很巧妙,学习了
好东西,感谢小编!
降成本方案确实用过这个电路
降成本方案都是直接电阻串联分压的,哈哈
學習