分简单,仅由3个电阻加一个MOS管构成,电路图如下:

此电路来自于飞利浦的一篇设计指导文档,是I2C总线官方推荐使用的电平转换电路。在实际使用过程中,需要尤其注意NMOS管的选型以及上拉电阻阻值的选取。由于该电路基于上拉电阻,NMOS管的电容特性可能会导致波形劣化。为了保证输出的上升速度,使得输出波形维持较好的形状以保证数据正确,通常选择Qg较小的NMOS管。

上图中,SDA1/SCL1,SDA2/SCL2为I2C的两个信号端,VDD1和VDD2为这两个信号的高电平电压。电路应用限制条件为:

1,VDD1 ≤ VDD2;

2,SDA1/SCL1的低电平门限大于0.7V左右(视NMOS内的二极管压降而定);

3,Vgs ≤ VDD1;

4,Vds ≤ VDD2 。

电路分析如下:

1、没有器件下拉总线线路。
        3.3V部分的总线线路通过上拉电阻Rp上拉至3.3V。 NMOS管的栅极和源极都是3.3V, 所以它的Vgs 低于阀值电压,NMOS管不导通。这就允许5V部分的总线线路通过它的上拉电阻Rp上拉到5V。此时两部分的总线线路都是高电平,只是电压电平不同。

2 、一个3.3V 器件下拉总线线路到低电平。
        NMOS管的源极也变成低电平,而栅极是3.3V,Vgs上升高于阀值,NMOS 管开始导通。然后5V部分的总线线路通过导通的NMOS管被3.3V 器件下拉到低电平。此时,两部分的总线线路都是低电平,而且电压电平相同。

3、一个5V 的器件下拉总线线路到低电平。
        NMOS管的漏极基底二极管导通,源极电压为基底二极管导通0.7V,3.3V部分被下拉直到Vgs 超过阀值,NMOS管开始导通。3.3V部分的总线线路通过导通的NMOS管被5V 的器件进一步下拉到低电平。此时,两部分的总线线路都是低电平,而且电压电平相同。

优点:
1、适用于低频信号电平转换,价格低廉。
2、导通后,压降比三极管小。
3、正反向双向导通,相当于机械开关。
4、电压型驱动,当然也需要一定的驱动电流,而且有的应用也许比三极管大。

从此看的出几个关键点:
1、MOS管一定要选内嵌DS反向二极管的,没有就要外加低导通压降的管子。
2、高端侧拉低的低电平一定要够低,因为电平转换电路已经有了上拉电阻,就 不要在重复增加上拉电阻了。尤其是对于存在若下拉状态的接口。
3、线路串联电阻不要随意放,很简单串联分压,串联电阻后,主控端拉低后,接收端的电平会不够低,尤其这种状态出在3.3V一侧你就Game over了

4、通常选择Qg较小的NMOS管。

3.3向5V转换测试:

对这个电路测试了下,MOS管采用的是2N7002小信号NMOS,输入电容很小的,大概几十pF。下面是电路及实物

  

115KHz波形,这个是频率是常用串口较高的波特率

分析:5V电路上升沿缓是因为依靠上拉电阻上升至5V,时间常数决定,上拉电阻越小上升时间越小;5V电路下降沿陡是因为NMOS导通,直接由3.3V电路驱动低电平。

400KHz,高速IIC通信的时钟频率

1MHz,波形上升太慢了

4MHz,已经不能输出5V的电平了

分析:5V电路还没来得及上升至5V就被拉下来了。

---------------------
作者:硬件菜鸟备忘录
来源:CSDN
原文:https://blog.csdn.net/impossible1224/article/details/80618703

转:3.3V和5V电平双向转换——NMOS管的更多相关文章

  1. 3.3V与5V电平双向转换

    http://www.amobbs.com/thread-5541344-1-2.html 3.3V转5V:S3输入为0V时,NMOS管导通,S5=S3=0V:S3输入为3.3V时,NMOS管截止,S ...

  2. FATFS外置UNICODE GBK双向转换码表(转)

    源:FATFS外置UNICODE GBK双向转换码表 将UtoG,GtoU双向码表放到存储卡里面实现长文件名,因为FATFS长文件名需要unicode支持, 首先将UtoG.sys,GtoU.sys两 ...

  3. 1.8V转5V电平转换芯片,1.8V转5V的电源芯片

    1.8V是一个比较低的电压,在电压供电电压中,1.8V电压的过于小了,在一些电子模块或者MCU中,无法达到供电电压,和稳压作用,PW5100就是可以在1.8V转5V的电平转换电路和芯片,最大可提供50 ...

  4. Java基础(36):String与基本数据类型之间的双向转换(Wrapper类)

    Java 中基本类型和字符串之间的转换 在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换. 其中,基本类型转换为字符串有三种方法: 1. 使用包装类的 toString() 方法 2. 使 ...

  5. 3.3v转5v开关电源芯片LM2731

    方案一 输入3.3(可为2.7~14v):输出5v,700ma.已经过实际验证. 其中:C1,C2为贴片陶瓷电容,Cf也为贴片陶瓷电容,L1为6.8uH 电感 输出值只和R1,R2的值有关,但手册中又 ...

  6. 3.3V转5V原理图

  7. BubbleGum96 开箱杂谈与软件资源

    前言 原创文章,转载引用务必注明链接. 拿到有一段时间了,一直在想写哪些内容.96boards发布以来,吸引了很多眼球.这里我就慢慢随便聊聊,希望能让大家对96boards有更多了解. 开箱 [开箱图 ...

  8. 5V与3.3V器件电平转换

    源:5V与3.3V器件电平转换 当你使用3.3V的单片机的时候,电平转换就在所难免了,经常会遇到3.3转5V或者5V转3.3V的情况,这里介绍一个简单的电路,他可以实现两个电平的相互转换(注意是相互哦 ...

  9. 5V系统和3.3V系统电平转换

    在设计一个带MCU或者ARM系统电路时候,经常遇见MCU的VCC是3.3V,但是外围电路需要5V.有时候是反过来.虽然现在MCU的IO都声称支持TTL电平,但是我们谁也不想将MCU的IO口直接接上5V ...

随机推荐

  1. JavaScript 笔记(3) -- JSON

    JavaScript JSON (JavaScript Object Notation): 是一种轻量级的数据交换格式 JSON 是用于存储和传输数据的格式 JSON 通常用于服务端向网页传递数据 J ...

  2. HTML 改变文字方向

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. 《手把手教你学C语言》学习笔记(2)---学习C语言的目标和方法

    一.学习C语言的目标主要是: 熟练掌握C语言的关键字,语法规则,程序控制等: 掌握基本的数据结构,数组.链表.栈和队列等: 掌握C语言中指针和内存.数组与指针.函数与指针.变量和指针.结构体和指针.硬 ...

  4. Python_代码练习_写一个判断是否为小数的函数

    这两天在学习函数,练习写一个判断是否为小数的函数,看起来蛮简单的,飞速写完很是得意,然后测了一下,发现差得好多呀,这个并不像想象那样简单,我得到的教训是,想要把一个需求哪怕再小的需求考虑周全,都不是件 ...

  5. AC日记——[SCOI2007]蜥蜴 bzoj 1066

    1066 思路: 网络流最大流: 拆点,每个点拆成两个,流量为这个点的高度: 注意,文中说的距离是曼哈顿距离(劳资以为开根号wa了不知道多少次): 每两个距离不大于d的点连边,流量inf: 如果距离能 ...

  6. Unix进程和线程管理及其异同

    Unix进程和线程管理及其异同 一,进程 1,什么是进程 在最初的单处理器系统中,系统中的多道程序按照一定规则切换而实现多任务处理,后来发现多个程序并发导致系统资源被共享,为了描述和管理程序对共享资源 ...

  7. 10.1综合强化刷题 Day4

    财富(treasure) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK有n个小伙伴.每个小伙伴有一个身高hi. 这个游戏是这样的,LYK生活的环境是以 ...

  8. poj1185 [NOI2001]炮兵阵地

    http://poj.org/problem?id=1185 三维装压dp,压缩上一行状态与本行状态,枚举上两行状态转移 第一维可以滚掉,实际复杂度只枚举符合情况的情况,每行状态不会超过60并非$2^ ...

  9. window环境下使用PHP OpenSSL扩展函数返回false的原因

    window环境下使用PHP OpenSSL扩展函数返回false的原因(openssl_pkey_new) 使用的开发环境是PHPstudy ,在使用OpenSSL的函数openssl_pkey_n ...

  10. linux运维(重点)

    linux 添加系统变量: export log="log-all-$(date +%Y-%m-%d).php" export log="log-all-$(date + ...