原创 深入讲解GPIO各种模式

2018-8-28 10:19 1079 1 1 分类: MCU/ 嵌入式

深入讲解MCU最基本外设GPIO的各种模式,希望大家对GPIO能有更深入的认识。

GPIO全称General Purpose Input Output,即通用输入/输出。从GPIO的名字我们很容易理解它的功能,而每种功能都对应相应的工作模式,主要有三种模式:高阻输入、推挽输出和开漏输出。

高阻输入

我们知道大部分MCU的I/O使用时都可以设置为高阻输入。高阻输入可以认为输入电阻是无穷大,认为I/O对前级影响极小。

如图1所示为GPIO在高阻输入模式下的等效结构示意图。输入模式主要由一个带有施密特触发输入的三态缓冲器(U1)组成,它能将缓慢变化或者畸变的输入脉冲信号整形成比较理想的脉冲信号。GPIO读操作时,在读脉冲(相当于打开开关)的作用下会把引脚当前的电平状态读到内部总线上,当GPIO不读时,引脚与内部总线之间是隔离的,相当于开关关闭。

图1  GPIO高阻输入结构示意图

推挽输出

推挽输出的工作原理是:在电路中用两只三极管构成一级放大电路,两只三极管分别放大输入信号的正半周和负半周,两只三极管输出的半周信号在放大器负载上合并后得到一个完整周期的输出信号。


图2  GPIO推挽输出结构示意图

如图2所示为GPIO推挽输出模式下的结构示意图。U1是输出锁存器,当执行GPIO写操作时,在写脉冲(Write pulse)的作用下,数据被锁存到Q和/Q。T1和T2构成CMOS反相器,T1导通或T2导通时都表现出低阻抗,但T1和T2不会同时导通或者关闭,最后形成的是推挽输出。在推挽输出模式下,GPIO还有回读功能,能实现回读功能的是三态缓冲器U2,而读到的是输出锁存器的状态,而不是引脚的外部状态。


开漏输出

开漏输出和推挽输出结构基本相同,只是开漏输出只有下拉晶体管T1而没有上拉晶体管T2。开漏输出的实际作用就是一个开关,输出“1”时断开,输出“0”时连接到内部的GND。

如图3所示为GPIO开漏输出模式结构示意图。输出结构没有内部上拉,因此在实际应用时通常都要外接合适的上拉电阻(通常为4.7KΩ~10KΩ)。开漏输出的功能能够方便的实现“线与”逻辑功能,即多个开漏的引脚可以直接并在一起使用,并统一外接一个合适的上拉电阻,就自然形成“逻辑与”的关系。开漏输出的另一种用途就是能够方便地实现不同逻辑电平之间的转换,如3.3V到5.5V之间,只需要外接一个上拉电阻,典型的应用例子就是基于开漏电气连接的I2C总线。


图3  GPIO开漏输出结构示意图

文章评论0条评论)

登录后参与讨论
相关推荐阅读
老树根家的胖豆豆 2018-10-31 14:32
【终于找齐】30多种磁芯优缺点对比!
功率型 EE、EEL、EF型功率磁芯 特点:引线空间大,绕制接线方便。适用范围广、工作频率高、工作电压范围宽、输出功率大、热稳定性能好。 用途:广泛应用于程控交换机电源、液晶显示屏电源、大功...
老树根家的胖豆豆 2018-08-28 14:40
总结:电源可靠性测试大全
反复短路测试 测试说明:在各种输入和输出状态下将模块输出短路,模块应能实现保护或回缩,反复多次短路,故障排除后,模块应该能自动恢复正常运行。测试方法a、空载到短路:在输入电压全范围内,将模块...
老树根家的胖豆豆 2018-08-28 13:54
单片机中三极管的应用
三极管在数字电路里的开关特性,最常见的应用有 2 个:一个是控制应用,一个是驱动应用。所谓的控制就是如图 3-7 里边介绍的,我们可以通过单片机控制三极管的基极来间接控制后边的小灯的亮灭,用法大家...
老树根家的胖豆豆 2018-06-08 09:26
运算放大器零点调整及 AC/DC 平均值转换电路
运算放大器的使用场合广泛,使用频率比较频繁。当应用在测量仪器仪表电路中的直流放大时,往往对其零信号输入时的输出零点有较高的要求。 这里出示的通用运放简易调零方法,可以方便达到输入信号为零时,输出零点...
广告
我要评论
0
1
广告
关闭 热点推荐上一条 /4 下一条