GPIO

  • GPIO
    • GPIO 模式
    • 详解
    • 应用场景
    • 资料

GPIO

GPIO 模式

  • 模拟输入
  • 浮空输入
  • 下拉输入
  • 上拉输入
  • 开漏输出
    • 只能输出低电平,类似于三极管的集电极,要输出高电平需要上拉电阻才能输出
    • 开漏电路就是指以MOSFET的漏极为输出的电路。指内部输出和地之间有个N沟道的MOSFET(Q1),这些器件可以用于电平转换的应用。输出电压由Vcc’决定。Vcc’可以大于输入高电平电压VCC(up-translate)也可以低于输入高电平电压VCC(down-translate)。
    • Open-drain输出,则是比push-pull少了个top transistor,只有那个bottom transistor。(就像push-pull中的那样)当bottom transistor关闭,则输出为高电平。此处没法输出高电平,想要输出高电平,必须外部再接一个上拉电阻(pull-up resistor)。Open-drain只能够漏电流(sink current),如果想要集电流(source current),则需要加一个上拉电阻。
  • 推挽输出
    • 既可以输出低电平,也可以输出高电平,其优点是可以直接驱动功耗不大的数字器件
    • 输出的器件是指输出脚内部集成有一对互补的MOSFET,当Q1导通、Q2截止时输出高电平;而当Q1截止导通、Q2导通时输出低电平。
    • Push-pull输出,实际上内部是用了两个晶体管(transistor),此处分别称为top transistor和bottom transistor。通过开关对应的晶体管,输出对应的电平。top transistor打开(bottom transistor关闭),输出为高电平;bottom transistor打开(top transistor关闭),输出低电平。Push-pull即能够漏电流(sink current),又可以集电流(source current)。其也许有,也许没有另外一个状态:高阻抗(high impedance)状态。除非Push-pull需要支持额外的高阻抗状态,否则不需要额外的上拉电阻。
  • 复用开漏输出
  • 复用推挽输出

详解

  • 上拉

    • 上拉就是将不确定的信号通过一个电阻嵌位在高电平,电阻同时起限流作用。
    • 上拉电阻是用来解决总线驱动能力不足时提供电流的,一般说法是拉电流。提升电流和电压的能力是有限的,且弱强只是上拉电阻的阻值不同。
  • 下拉
    • 下拉就是将不确定的信号通过一个电阻嵌位在低电平,电阻同时起限流作用。
    • 下拉电阻是用来吸收电流的,也就是我们通常所说的灌电流
  • 高阻态
    • 高阻态,指的是电路的一种输出状态,既不是高电平也不是低电平,当 GPIO 引脚处于高阻态时,它的电平状态由上/下拉电阻确定。高阻态只有电容效应,没有电阻效应;阻抗很高很高,相当于断开。如果高阻态再输入下一级电路的话,对下级电路无任何影响,和没接一样,如果用万用表测的话有可能是高电平也有可能是低电平,随它后面接的东西定。
    • 如果你的设备端口要挂在一个总线上,“必须通过三态缓冲器”。因为在一个总线上同时只能有一个端口作输出,这时其他端口必须在高阻态,同时“可以输入这个输出端口的数据”。所以你还需要有总线控制管理, 访问到哪端口,那个端口的三态缓冲器才可以转入输出状态,这是典型的三态门应用。 如果在线上没有两个以上的输出设备, 当然用不到三态门。
  • 悬空和高阻态的区别
    • 悬空(浮空,floating):就是逻辑器件的输入引脚即不接高电平,也不接低电平。由于逻辑器件的内部结构,当它输入引脚悬空时,相当于该引脚接了高电平。一般实际运用时,引脚不建议悬空,易受干扰。
    • 高阻态:从逻辑器件内部电路结构来说,就是其输出电阻很大,该状态即不是高电平,也不是低电平。当三态门处于高阻态时,无论该门的输入如何变化,都不会对其输出有贡献。
  • 吸电流、拉电流输出、灌电流输出
    • 拉即泄,主动输出电流,从输出口输出电流;
    • 灌即充,被动输入电流,从输出端口流入;
    • 吸则是主动吸入电流,从输入端口流入。
    • 吸电流和灌电流就是从芯片外电路通过引脚流入芯片内的电流;区别在于吸收电流是主动的,从芯片输入端流入的叫吸收电流。灌入电流是被动的,从输出端流入的叫灌入电流;拉电流是数字电路输出高电平给负载提供的输出电流,灌电流时输出低电平是外部给数字电路的输入电流。这些实际就是输入、输出电流能力。

应用场景

  1. 上拉输入、下拉输入可以用来检测外部信号;例如,按键等;
  2. 浮空输入模式,由于输入阻抗较大,一般把这种模式用于标准通信协议的I2C、USART的接收端;
  3. 普通推挽输出模式一般应用在输出电平为0和3.3V的场合。而普通开漏输出模式一般应用在电平不匹配的场合,如需要输出5V的高电平,就需要在外部一个上拉电阻,电源为5V,把GPIO设置为开漏模式,当输出高阻态时,由上拉电阻和电源向外输出5V电平。
  4. 对于相应的复用模式(复用输出来源片上外设),则是根据GPIO的复用功能来选择,如GPIO的引脚用作串口的输出(USART/SPI/CAN),则使用复用推挽输出模式。如果用在I2C、SMBUS这些需要线与功能的复用场合,就使用复用开漏模式。
  5. 在使用任何一种开漏模式时,都需要接上拉电阻。

资料

  • GPIO 详解
  • 开漏输出、推挽输出
  • GPIO 输出三态
  • 吸电流、拉电流、灌电流、上下拉电阻、高阻态
  • 上拉电阻&下拉电阻&高阻态
  • 从硬件分析推挽输出和开漏输出详细区别

嵌入式接口技术(一)GPIO相关推荐

  1. 嵌入式接口技术基础(粤嵌教学)

    首先需要准备的一些工具(后续带有专门的工具链接) 1 串口驱动 - CH341SER -> 用RS232串口线连接开发板和电脑传输数据 2 Notepad++ - 编辑代码工具 -> li ...

  2. 史上最详细!嵌入式系统知识和接口技术总结

    1 什么是嵌入式 IEEE(Institute of Electrical and Electronics Engineers,美国电气和电子工程师协会)对嵌入式系统的定义:"用于控制.监视 ...

  3. 嵌入式系统知识和接口技术总结

    什么是嵌入式 IEEE(Institute of Electrical and Electronics Engineers,美国电气和电子工程师协会)对嵌入式系统的定义:"用于控制.监视或者 ...

  4. 硬件开发:嵌入式系统知识和接口技术(值得收藏)

    1.什么是嵌入式 IEEE(Institute of Electrical and Electronics Engineers,美国电气和电子工程师协会)对嵌入式系统的定义:"用于控制.监视 ...

  5. 嵌入式四级等级考试(微机原理与接口技术计算机操作系统)

    嵌入式四级考试主要内容包括:微机原理与接口技术,计算机操作系统等基本知识,这里只是一些容易出错的地方以及一些基本知识点.我用一下午的时间做了一个简单的总结(嵌入式四级试题第一套).有错误还希望大家指出 ...

  6. 《嵌入式系统原理与接口技术》——嵌入式系统接口应用基础

    本文为我负责编写的电子工业出版社出版的<嵌入式系统原理与接口技术>一书第七章部分,这里整理的仍然是修改稿,供需要的同学参考,本书为普通高等教育"十二五"规划教材,电子信 ...

  7. 嵌入式系统原理与接口技术

    <嵌入式系统原理与接口技术>--嵌入式系统接口应用基础 本文为我负责编写的电子工业出版社出版的<嵌入式系统原理与接口技术>一书第七章部分,这里整理的仍然是修改稿,供需要的同学参 ...

  8. 计算机组成原理+左冬红,计算机组成原理与接口技术--基于MIPS架构(第2版高等学校电子信息类专业系列教材)...

    导语 内容提要 华中科技大学电子信息与通信学院基于FPGA平台的"微机原理与接口技术"课程教学改革已进行数载,作者在总结教学经验基础上,对<计算机组成原理与接口技术>进 ...

  9. 嵌入式BootLoader技术内幕

    嵌入式BootLoader技术内幕(一) 本文详细地介绍了基于嵌入式系统中的 OS 启动加载程序 ―― Boot Loader 的概念.软 件设计的主要任务以及结构框架等内容. 一.引言 在专用的嵌入 ...

最新文章

  1. 编程中python怎么读-python之文件读写
  2. ubuntu mysql 更新_数据库应用(三): Ubuntu 下 MySQL添加、更新与删除数据
  3. JMeter的PUT请求,响应结果中文出现乱码的解决方法
  4. 如何排查 StackOverflow 异常
  5. tensorflow 保存训练loss_tensorflow2.0保存和加载模型 (tensorflow2.0官方教程翻译)
  6. c语言实验题水仙花数5359,《C语言程序设计》实验报告(实验1-12).doc
  7. wireshark之不显示ip问题(五)
  8. ubuntu 强制关闭某个程序
  9. 并发编程 CAS算法
  10. 【上班摸鱼系列】文字选择类游戏:《职员默示录 - 启》末日丧尸爆发,你,是什么下场!?...
  11. 开发一个商城需要多少钱 做一个电商网站大概多少钱
  12. HTML及CSS常用知识点复习
  13. 硬件学习_差模与共模
  14. rfc4309规范原文和机翻——aead ccm
  15. STM32标准库、HAL库特点与应用
  16. 如何从多个角度筛选和搭建量化股票池?
  17. 5.22 阿博茨科技 面试总结
  18. 美团基于跨平台 Flutter 的动态化平台建设
  19. 金山打字通刷打字速度脚本
  20. cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit O

热门文章

  1. 学会这几招,做一个“会说话”的程序员
  2. 用BOOTICE工具创建U盘隐藏分区制作PE启动盘(
  3. 概念系列1:标准差标准误
  4. python如何赚外快 淘宝_业余时间怎么赚外快?用Python赚钱的5个方法!
  5. 【GDKOI】2021普及Day2
  6. 李铁:中国的药品行业,说穿了就是骗子企业
  7. 条件自动添加taint
  8. 狂暴者 pat basic 练习二十九 旧键盘
  9. 影片剪辑动起来-雅酷互动flash简易教程第2篇
  10. 计算机组成原理---浮点数的表示方法