date: 2013-03-22
layout: post
title: Raspberry Pi GPIO的編號規(guī)范
description: Raspberry Pi GPIO numbering
categories:
- Blog
tags: - Raspberry Pi
{:toc}
樹莓派和普通電腦不一樣的地方在于它還帶了17個可編程的GPIO(General Purpose Input/Output),可以用來驅動各種外設(如傳感器,步進電機等)。但GPIO的編號方法有些混亂,不同的API(如wiringPi,RPi.GPIO等)對GPIO的端口號編號并不一樣,下面則用圖表標明了對應的叫法,這樣在看程序例子的時候可以確定物理是哪個接口。
GPIO庫
- wiringPi C,有Perl, PHP, Ruby, Node.JS和Golang的擴展,支持wiringPi Pin和BCM GPIO兩種編號
- RPi.GPIO Python,支持Board Pin和BCM GPIO兩種編號
- Webiopi,Python, 使用BCM GPIO編號
- WiringPi-Go, Go語言,支持以上三種編號
編號規(guī)范
- 第一列是wiringPi API中的缺省編號,
wiringPiSetup()采用這列編號 - 第二列(Name)往往是轉接板的編號
- 第三列是樹莓派板子上的自然編號(左邊引腳為1-15,右邊引腳為2-26),
RPi.GPIO.setmode(GPIO.BOARD)采用這列編號 - 樹莓派主芯片提供商Broadcom的編號方法,相當于調用了
WiringPiSetupGpio()或RPi.GPIO.setmode(GPIO.BCM)采用這列編號
| wiringPi Pin | Name | Board Pin | BCM GPIO |
|---|---|---|---|
| 0 | GPIO 0 | 11 | 17 |
| 1 | GPIO 1 | 12 | 18 |
| 2 | GPIO 2 | 13 | 21 |
| 3 | GPIO 3 | 15 | 22 |
| 4 | GPIO 4 | 16 | 23 |
| 5 | GPIO 5 | 18 | 24 |
| 6 | GPIO 6 | 22 | 25 |
| 7 | GPIO 7 | 7 | 4 |
| 8 | SDA | 3 | 0 |
| 9 | SCL | 5 | 1 |
| 10 | CE0 | 24 | 8 |
| 11 | CE1 | 26 | 7 |
| 12 | MOSI | 19 | 10 |
| 13 | MISO | 21 | 9 |
| 14 | SCLK | 23 | 11 |
| 15 | TXD | 8 | 14 |
| 16 | RXD | 10 | 15 |
Rev.2 新增的引腳:
| wiringPi Pin | Name | Board Pin | BCM GPIO |
|---|---|---|---|
| 17 | GPIO 8 | 28 | |
| 18 | GPIO 9 | 29 | |
| 19 | GPIO10 | 30 | |
| 20 | GPIO11 | 31 |
<img src="https://pbs.twimg.com/media/BGBhJ4LCAAA50eS.jpg:large" width="600"/>
GPIO轉接板
GPIO轉接板通過彩虹排線可將樹莓派的GPIO引腳轉接到面包板上,方便試驗,下圖是一個相應的產品,可以看到每個引腳標都已標注好了名稱,查上表就知道代碼里該用哪個編號做參數(shù)了。
<img src="http://img03.taobaocdn.com/imgextra/i3/21288305/T23BjrXfJaXXXXXXXX_!!21288305.jpg"/>
物理左排針腳說明
| Pin | Raspberry Pi | Broadcom names |
|---|---|---|
| 1 | 3.3V | 3.3V |
| 3 | SDA0 | I2C0 SDA |
| 5 | SCL0 | I2C0 SCL |
| 7 | GPIO 7 | GPIO 4 |
| 9 | DNC | DNC |
| 11 | GPIO 0 | GPIO 17 |
| 13 | GPIO 2 | GPIO 21 (rev2) / GPIO 27 (rev1) |
| 15 | GPIO 3 | GPIO 22 |
| 17 | DNC | DNC |
| 19 | SPI MOSI | SPI MOSI |
| 21 | SPI MOSO | SPI MOSO |
| 23 | SPI SCLK | SPI SCLK |
| 25 | DNC | DNC |
物理左排針腳說明
| Pin | Raspberry Pi | Broadcom names |
|---|---|---|
| 2 | 5V | 5V |
| 4 | DNC | DNC |
| 6 | GND | GND |
| 8 | TX | UART TxD |
| 10 | RX | UART RxD |
| 12 | GPIO 1 | GPIO 18 |
| 14 | DNC | DNC |
| 16 | GPIO 4 | GPIO 23 |
| 18 | GPIO 5 | GPIO 24 |
| 20 | DNC | DNC |
| 22 | GPIO 6 | GPIO 25 |
| 24 | SP10 CEO N | SP10 CEO N |
| 26 | SP10 CE1 N | SP10 CE1 N |
Notes:
- all the UART, SPI and I2C pins can be reconfigured as GPIO if needed.