文章目录

  • 目录
  • GPIO口定义
  • 电气特性
  • 启动状态
  • 总结


目录

树莓派相比成品化的电脑来说有很多独立的GPIO口可供开发使用,可以方便的实现很多实物相关的功能。本文将对树莓派开放给用户的GPIO口的针脚定义、电气特性、启动状态等基础内容做个说明。

GPIO口定义

目前主流的树莓派型号通常都有40针GPIO口可供使用,通常定义如下图:

树梅派GPIO python 树莓派4 gpio定义_树梅派GPIO python


从图上可以看到树莓派的GPIO主要分为5V、3.3V、接地以及通用GPIO口,其中通用的GPIO口大多又可以复用为其它外设使用(注意GPIO 0和1有特殊作用,一般不要操作)。对于有桌面环境的Raspbian系统还可以在终端中输入 pinout 来获取针脚定义:

树梅派GPIO python 树莓派4 gpio定义_GPIO_02


更多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,只不过输出电压会下降的比较厉害:

树梅派GPIO python 树莓派4 gpio定义_树莓派_03


上面是一方面的电流相关因素,另一方面树莓派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会尽经历好几个阶段:

  1. 芯片上电时GPIO口会处于带上下拉电阻的输入状态;
  2. 由bootrom控制;
  3. 由bootcode.bin控制;
  4. 由dt-blob.bin控制;
  5. 由config.txt文件中的GPIO command设置(根据需求自行编写);
  6. 特定功能针脚初始化(如UART);
  7. 内核/设备树;

对于大部分针脚而言在进入系统后的GPIO口状态其实就是芯片上电时的 带有上下拉电阻的输入状态 ,下面是树莓派4B的IO口功能复用表其中 Default Pull 列即为上电时默认的上下拉状态:

树梅派GPIO python 树莓派4 gpio定义_GPIO_04


目前其它的同为40Pin的树莓派默认状态基本都是一样的。

更多内容可以参考下面文档:
《Raspberry Pi 4 Model B Datasheet》

总结

树莓派GPIO口的基础说明主要就是上面那些内容了,更多内容可以参考官方说明:
https://www.raspberrypi.org/documentation/usage/gpio/README.md