文章目录
- 目录
- GPIO口定义
- 电气特性
- 启动状态
- 总结
目录
树莓派相比成品化的电脑来说有很多独立的GPIO口可供开发使用,可以方便的实现很多实物相关的功能。本文将对树莓派开放给用户的GPIO口的针脚定义、电气特性、启动状态等基础内容做个说明。
GPIO口定义
目前主流的树莓派型号通常都有40针GPIO口可供使用,通常定义如下图:
从图上可以看到树莓派的GPIO主要分为5V、3.3V、接地以及通用GPIO口,其中通用的GPIO口大多又可以复用为其它外设使用(注意GPIO 0和1有特殊作用,一般不要操作)。对于有桌面环境的Raspbian系统还可以在终端中输入 pinout
来获取针脚定义:
更多IO口定义查询可以参考下面链接:
https://pinout.xyzhttps://github.com/splitbrain/rpibplusleaf
电气特性
树莓派上可供编程使用的GPIO口的电气特性基础的如下:
Symbol | Parameter | Conditions | Min | Typical | Max | Unit |
VIL | Input Low Voltage | VDD IO = 3.3V | – | – | 0.9 | V |
VIH | Input high voltage | VDD IO = 3.3V | 1.6 | – | – | V |
IIL | Input leakage current | TA = +85◦C | – | – | 5 | µA |
CIN | Input capacitance | TA = +85◦C | – | 5 | – | pF |
VOL | Output low voltage | VDD IO = 3.3V, IOL = -2mA | – | – | 0.14 | V |
VOH | Output high voltage | VDD IO = 3.3V, IOH = 2mA | 3.0 | – | – | V |
IOL | Output low current | – | – | – | – | mA |
IOH | Output high current | – | – | – | – | mA |
RPU | Pullup resistor | – | 50 | – | 65 | kΩ |
RPD | Pulldown resistor | – | 50 | – | 65 | kΩ |
上面表格中我没有填写输出电流参数,树莓派主控芯片的GPIO口输出电流强度是可以配置的(最小2mA,最大16mA,默认为8mA)。这里强度并不是指只能输出设定值的电流,而是能力,比如设定为8mA时也可以输出到16mA,只不过输出电压会下降的比较厉害:
上面是一方面的电流相关因素,另一方面树莓派17个用户IO口总共可以输出实际电流为51mA,即如果各个IO口同时输出的话平均每个IO口输出电流为3mA。
总之输出电流这一项还是需要综合来考虑。
更多内容可以参考下面链接:
https://www.raspberrypi.org/documentation/hardware/raspberrypi/gpio/README.mdhttps://www.raspberrypi.org/documentation/hardware/raspberrypi/gpio/gpio_pads_control.md
启动状态
树莓派在上电运行进入系统前GPIO会尽经历好几个阶段:
- 芯片上电时GPIO口会处于带上下拉电阻的输入状态;
- 由bootrom控制;
- 由bootcode.bin控制;
- 由dt-blob.bin控制;
- 由config.txt文件中的GPIO command设置(根据需求自行编写);
- 特定功能针脚初始化(如UART);
- 内核/设备树;
对于大部分针脚而言在进入系统后的GPIO口状态其实就是芯片上电时的 带有上下拉电阻的输入状态
,下面是树莓派4B的IO口功能复用表其中 Default Pull
列即为上电时默认的上下拉状态:
目前其它的同为40Pin的树莓派默认状态基本都是一样的。
更多内容可以参考下面文档:
《Raspberry Pi 4 Model B Datasheet》
总结
树莓派GPIO口的基础说明主要就是上面那些内容了,更多内容可以参考官方说明:
https://www.raspberrypi.org/documentation/usage/gpio/README.md