分享

你真的了解GPIO嘛?

 Ricky_图书馆 2021-01-27
GPIO全称为General Purpose Input Output,即通用的输入输出,有时候简称“IO口”,每一个GPIO通常都可以实现不同的功能,有点万金油的意思,可以作为数字输出,可以作为数字输入,亦或是复用端口,这些完全由设计者来定。但是对于GPIO的各种参数,你真的了解嘛?
为什么要先配置时钟再配置GPIO?
因为寄存器是由D触发器组成的,只有有了时钟信号,触发器才能被改写值。这么做的目的是为了省电,低功耗,使用了所谓时钟门控的技术。
GPIO作为输入口
GPIO作为输入口时,有四种模式,分别为:
1、上拉输入,在该模式下,GPIO 引脚无输入时, 引脚为高电平,因此其只能检测外部输入的低电平。
2、下拉输入,与上拉相反,在该模式下,GPIO 引脚无输入时, 引脚为低电平,因此其只能检测外部输入的高电平。
3、高阻态,在该模式下,GPIO引脚无输入时,输入电平不确定,除非有外部信号来驱动电路。
4、复用输入,例如将该接口连接至ADC模块,作为模拟输入口,或者是连接至SPI模块,作为SPI的数据输入口。
GPIO作为输出口

常见的有开漏输出、推挽输出与开集输出,其特点及对比如下所示。

推挽输出的结构是由两个三极管或者MOS管受到互补信号的控制,两个管子始终保持一个处于截止,另一个处于导通的状态。推挽输出的最大特点是可以真正能真正的输出高电平和低电平,在两种电平下都具有驱动能力。
但推挽输出的一个缺点是,如果当两个推挽输出结构相连在一起,一个输出高电平,即上面的MOS导通,下面的MOS闭合时;同时另一个输出低电平,即上面的MOS闭合,下面的MOS导通时。电流会从第一个引脚的VCC通过上端MOS再经过第二个引脚的下端MOS直接流向GND。整个通路上电阻很小,会发生短路,进而可能造成端口的损害。这也是为什么推挽输出不能实现' 线与'的原因。

开漏输出和开集输出,这两种输出的原理和特性基本是类似的,区别在于一个是使用MOS管,其中的'漏'指的就是MOS管的漏极;另一个使用三极管,其中的'集'指的就是三极管的集电极。这两者其实都是和推挽输出相对应的输出模式,由于使用MOS管的情况较多,很多时候就用'开漏输出'这个词代替了开漏输出和开集输出。

开漏输出就是从MOSFET的漏极输出的电路,要得到高电平状态需要加上拉电阻才行。适合做电流型的驱动,其吸收电流的能力比较强,其最主要的特性就是高电平没有驱动能力,需要借助外部上拉电阻才能真正输出高电平。

开漏输出的优势在于可以很方便的调节输出电平,因为输出电平完全由上拉电阻连接的电源决定。另外其可以实现'线与'功能,适合做通信接口。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多