前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MOS管电平转换电路学习

MOS管电平转换电路学习

作者头像
全栈程序员站长
发布2022-11-03 10:33:06
4570
发布2022-11-03 10:33:06
举报
文章被收录于专栏:全栈程序员必看

最近在设计中遇到一个简单,但是稍不注意就出错的问题,在此分享一下。

在电路开发过程中,我们经常遇到两个系统电平不一致的情况,比如IIC和UART通信等。使用MOSFET搭建双向电平转换电路,是比较常见的做法,电路如图1中虚线框所示,MOS管的部分参数如图2所示。

在这里插入图片描述
在这里插入图片描述

图1

在这里插入图片描述
在这里插入图片描述

图2 电路原理很简单,分两种情况:

1.从A到B

A为高电平时,MOS管关断,B端通过上拉,输出高电平;

A为低电平时,MOS管内的体二极管导通,使MOS管的S极被拉低,从而使Vgs=3.3V>Vgs(th)=1.6V,MOS管导通,B端被拉低,输出低电平;

A为高阻态时,MOS管关断,B端通过上拉,输出高电平。

2.从B到A

B为高电平时,MOS管关断,A端通过上拉,输出高电平;

B为低电平时,MOS管不导通,但是它有体二极管!MOS管里的体二极管把A端拉低到低电平,此时Vgs约等于3.3V>Vgs(th)=1.6V,MOS管导通,A端被彻底拉低,输出低电平;

B为高阻态时,MOS管关断,A端通过上拉,输出高电平。

一直以来使用这个电路没有出现过问题,所以这次也是不假思索的照搬过来,但结果是上电后,模块B无法正常启动工作。

出现该问题的原因也很简单,就是模块B的通信引脚除了通信之外,还有其他作用,如图1所示,其在上电时需要通过10K电阻R3下拉到GND实现低电平,并维持一段时间,以确保模块B能正常启动。但如果直接使用该转换电路,示波器测量到的模块B引脚电平,在上电瞬间的波形如图3所示,可以看到幅值在2.3V左右,已经达到了模块B的高电平标准,因此,模块B启动失败,之后该引脚一直输出为低电平。

在这里插入图片描述
在这里插入图片描述

图3 分析下工作过程,上电瞬间,B点电压是3.3V通过R2和R3分压后得到,理论值等于2.2V,与实测波形接近。在该电路中,信号流是从B到A单向传输的,因此想到可以去掉电阻R2,那样B点在上电瞬间就不会有上拉电压,但是实际去掉R2后,模块B依旧无法启动。进一步分析,在上电瞬间B点电压确实为0,但是也因此导致Vgs=3.3V,MOS管导通,R3又和上拉电阻R1形成了分压关系,导致B点无法拉到低电平。

因此,如果想要继续使用该电平转换电路的话,必须加大上拉电阻R1和R2的值,使分压后的B点电位达到低电平标准,但是上拉电阻改的太大的话,A端高电平可能会有问题,所以最终选择使用两个三极管组成的电平转换电路,如图4所示,问题解决。

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
                                     图4

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/180077.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档