• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

利用N-MOS管进行电平转换-I2C应用

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

两个设备在不同电压工作时,出来的信号电平也不一样,若两个设备需要通信,那么信号之间就得进行电平转换,电平转换一般都采取:

1、电平转换芯片,如SN74AVC1T45等系列。

2、可以用N-MOS管搭建,MOS价格比专用的电平转换芯片便宜,应用也比较广泛。如下图是一个5V~3.3V之间的I2C电平转换电路, SCL 是单向,主机发送的; SDA是双向,主机和设备都要驱动,用N-MOS管的工作原理:

只能是MCU 驱动SCL:

当I2C_SCL = 1(MCU_VCC) 时,Q1的Vgs=0V,小于MOS管的开启电压, Q1 截止,ADC_SCL = 1(VREF);

当I2C_SCL = 0时, Q1的Vgs = MCU_VCC 大于MOS管的开启电压,Q1 导通,ADC_SCL = 0。

 

MCU 驱动SDA时:

当I2C_SDA = 1(MCU_VCC), Q2的Vgs=0V,小于MOS管的开启电压Q2 截止,ADC_SDA = 1 (VREF);

当I2C_SDA = 0, Q2的Vgs = MCU_VCC 大于MOS管的开启电压,Q2导通,ADC_SCL = 0

 

Slave 驱动SDA时:

当ADC_SDA = 1(VREF),此时主机端要释放I2C1_SCL,通过外部的电阻默认被拉高,Q2的Vgs = 0, Q2 截止,Q2内部的二极管处于反向截止,故I2C_SDA = 1(MUC_VCC)

当ADC_SDA = 0,此时主机端要释放I2C1_SCL,通过外部的电阻默认被拉高,此时Q2的Vgs = 0, Q2 截止,但是Q2内部的二极管处于正向偏置

S极电位被二极管钳位到低电平(0.7V~1.2V),导致Vgs = MCU_VCC - 内部二极管的导通电压 = (3.3-0.76)>0.45V或(3.3-1.2) >0.45V ,Vgs还是大于MOS的开启电压,进一步促进I2C1_SDA = 0

 

接下来看下MOS的参数。这里选用的UT2302 NMOS管,开启电压Vgs = 0.45V,开启电压是非常低的了,为什么选一个这么低的开启电压呢?

答案是:

(1)、开启电压越低,NMOS管从关闭到导通的时间就越快,能及时的响应,这样I2C速率也能更好的满足。

(2)、开启电压越低,能适配更多的电平之间的转换,比如5~2.8V,5~1.8V,3.3~1.8V等。要关注内部二极管导通压降,大部分都是0.7V左右。

巧妙记法:

(1)、当两边都是高电平时(I2C不工作时也就是空闲时,SCL和SDA默认都是高电平),一定要将MOS管内部的二极管处于反向偏置,让二极管处于截止状态,所以D极接高电压端,S极接低电压端

(2)、NOMS管导通与否都是看Vgs电压,所以G极也接低压端。

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ 类 构造函数 constructor发布时间:2022-07-13
下一篇:
C++:运算符重载发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap