初識樹莓派 GPIO

在一般單片機平臺上,控制 GPIO 口是非常容易的。在代碼中配置相應的 GPIO 寄存器,即可全權控制 GPIO。

在片上資源較少的情況下,這種 GPIO 控制方式是合理的。但是,當人們需要處理更加複雜的業務時,通常會選用運行嵌入式操作系統的硬件,如 Linux、WinCE 等。操作系統大大簡化了複雜應用(程序)開發的成本,但它也在硬件和應用之間插入了所謂的系統調用,避免了應用中的代碼直接訪問硬件。也就是說,操作系統把硬件和應用分離開了,應用必須通過相應的系統調用才能控制硬件。硬件資源由操作系統統一管理,統一分配,看似操作更復雜了,實則維護了系統的穩定性和安全性。

讀者可以藉助這一系列文章循序漸進解開樹莓派 GPIO 驅動的神秘面紗。

我們假定讀者具備一定的 C 語言基礎和單片機基礎,因為這裡不準備討論 C 語言和單片機的基礎知識。

樹莓派 GPIO

樹莓派從第一代開始,就板載了豐富的 GPIO 接口,包括普通可編程 IO、UART、SPI、IIC 等。

不同版本的樹莓派採用的 CPU 型號不一樣,一代採用 BCM2835,二代採用 BCM2836,三代採用 BCM2837,而四代則採用了 BCM2711。雖然型號不同,但調用 GPIO 的方式都大同小異,初學者大部分情況下都可以忽略型號差異。

以最新的樹莓派 4B 為例,板卡正面有 2x20 P1 接口,管腳編號和功能分佈如下:

初識樹莓派 GPIO

初識樹莓派 GPIO

樹莓派官方 Raspbian 系統還內置了 pinout 指令打印當前樹莓派的管腳信息,方便在沒有參考手冊的情況下,快速對照管腳號。

初識樹莓派 GPIO

以前的樹莓派硬件版本還有 P2、P3 等接口,但隨著硬件迭代更新,最新的樹莓派 4B 已經沒有這些接口了

電源接口

P1 接口有兩個 5V 供電口和兩個 3.3V 供電口,位置固定,不可編程配置。其餘接口都是 3.3V 電壓,不可接 5V,否則會燒壞樹莓派。

可配置功能

樹莓派的許多特定管腳可以設置成第二功能,比如

  • GPIO12, GPIO13, GPIO18, GPIO19 可以設置成 PWM
  • GPIO14, GPIO15 可設置成串口
  • GPIO7-10 可設置成 SPI0,GPIO16-21 可設置成 SPI1
  • GPIO2, GPIO3 可配置成 IIC

當然,實際使用中,如果功能管腳不夠用,也完全可以在其他通用管腳上軟件模擬這些接口。

所有管腳的配置項可以查閱官方提供的功能表:https://elinux.org/RPi_BCM2711_GPIOs

初識樹莓派 GPIO

  • RPi Hardware - eLinux.org
  • RPi Low-level peripherals - eLinux.org
  • RPi BCM2711 GPIOs - eLinux.org
  • RPi GPIO Code Samples - eLinux.org
  • RPi Serial Connection - eLinux.org
  • RPi GPIO Interface Circuits - eLinux.org
  • RPi HardwareHistory - eLinux.org
  • Raspberry Pi 4 on sale now from $35 - Raspberry Pi
  • Raspberry Pi 3 Model B+ on sale now at $35 - Raspberry Pi
  • Raspberry Pi 3 on sale now at $35 - Raspberry Pi
  • GPIO - Raspberry Pi Documentation
  • Raspberry Pi GPIO Pinout


分享到:


相關文章: