不同器件之间的GPIO连接为什么需要电平一致呢?

接口/总线/驱动

1139人已加入

描述

一、问题:不同器件之间的GPIO连接为什么需要电平一致呢?

        如果连接不同电平信号的I/O,驱动IC的输出电压电平可能不满足接收器的输入电压规格,从而导致接收器故障或损坏。  

SoC芯片

图一、电平转换

   1.2、 如果各个器件之间的电压不匹配,可能会出现何种异常现象:

    将某个信号从高电压电平输入至低电压电平的器件,如<图一>右上图所示。低压侧的器件输入电路的耐压通常较低,如果输入高于芯片耐压值的电压,该器件可能会遭损毁。

    将某个信号从低电压电平输入至高电压电平的器件,如<图一>左下图所示。如果在高压侧的器件上施加接近输入阈值的电压,则无法识别高电平信号,从而导致故障。 

  二、问题:既然GPIO允许被配置为开漏输出。那么是否可以直接使用开漏功能实现不同电平之间转换呢?比如:3V-1.8V  

2.1、实现开漏输入、输出功能的引脚大至分为两大类:

输入、输出引脚内部电路是真正的MOS开漏、三极管开集电极输出形式:比如电平转换的专用缓存器、使用MOS管搭建的开漏输入、输出电路。此类功能的芯片、电路使用较简单。

普通的GPIO引脚通过配置控制寄存器,实现开漏极输出功能。注意:此类GPIO使用较为复杂,不能简单的认为利用“开漏电路实现线与”实现电平转换。  

  2.2、通过GPIO控制寄存器配置的开漏输出为什么不能直接“线与”?     

从前文GPIO简介可以知道:GPIO口内部由输入、输出2部分组成;当GPIO口的OUTPUT被使能,不管OUTPUT是否使能开漏输出或推挽输出,GPIO的输入INPUT<输入施密特触发器>始终开启。

SoC芯片

  如图下图所示,当外部输入1.8V时,由于IO_VCC 3.3V,1.8V处于中间电平,导致IO输入部分漏电。具体原因如下:  

当GPI0口电平与供电电压VCC相等时,处于input状态的内部电路等效为一个PMOS连接到VCC和一个NMOS连接到地;当输入电压为VCC时,只导通下管NMOS,不导通上管PMOS,故功耗可以忽略不计。同理,当输入电平为低电平时,只导通上管PMOS,不导通下管NMOS,功耗也可以忽略不计。

但当GPIO输入电压为1.8V时,IO_VCC电压为3.3V,上管和下管同时微导通,因此通过PMOS、NMOS产生漏电。

SoC芯片

三、常用的电平转换方法、电路:    

3.1、 二极管转换电平(单向转换)

SoC芯片

左侧为 5V 电压域,右侧为 3.3V 电压域:

当左侧电压输出高电平(5V)时,二极管 D1 截止。右侧被上拉到一个 3.3V 的高电平;

当左侧电压输出低电平(0V)时,二极管 D1 导通,右侧被拉到为二极管导通电压的低电平;

(注:该电路在低电平转换时存在转换误差,该误差主要来源于二极管正向导通压降,二极管在选型时,5V 端输出的 VOL + 二极管正向压降 VF不能超过 VIL的最大值,MCU 在 3.3V 供电时,VIL电压最大值为 0.8V,MCU 在 1.8V 供电时,VIL电压最大值为 0.3*1.8V=0.54V)。

3.2、MOS 管转换电平(双向转换)

SoC芯片

左侧为 3.3V 电压域,右侧为 5V 电压域:

当左侧电压输出低电平(0V)时,MOS 管导通,右侧电压通过 MOS 管被拉低;

当左侧电压输出高电平(3.3V)时,MOS 管不导通。右侧电压被电阻 R1 上拉到 5V;

当右侧电压输出低电平(0V)时,MOS 管不导通,MOS 管先经过体二极管把左侧电压拉到低电平,此时,Vgs 大于 MOS 管阈值电压从而使 MOS 管导通,进一步左侧电压通过 MOS 管被拉低;

当右侧电压输出高电平(5V)时,MOS 管不导通。左侧电压被电阻 R2 上拉到 3.3V。

3.3、使用专用电平转换总线开关或总线缓冲器

当向输出使能信号(OE)的输入端施加等于或高于VIH的电压时,总线开关将输入信号(高或低)传输至输出端:

0V≤输入电压

输入电压≥VOHU:内部开关关断。VCCB侧的外部上拉电阻将输入电压上拉至VCCB电平。

SoC芯片







审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分