Difference between revisions of "GPIO Pinout"

From HiveTool
Jump to: navigation, search
(GPIO ordered by Header Pins)
 
(11 intermediate revisions by the same user not shown)
Line 6: Line 6:
 
==Notes==
 
==Notes==
 
#GPIO pins are 3.3 volt logic levels and are not tolerant of 5V levels
 
#GPIO pins are 3.3 volt logic levels and are not tolerant of 5V levels
#THE GPIO PINS ARE NUMBERED TWO DIFFERENT WAYS, Broadcom and RPi.
+
#THE GPIO PINS ARE NUMBERED TWO DIFFERENT WAYS, Broadcom and RPi. Hivetool uses RPi numbers.
 
#These GPIO properties are set as a block, not per pin (GPIO pins 0-27 are in the same block).
 
#These GPIO properties are set as a block, not per pin (GPIO pins 0-27 are in the same block).
 
##Can interrupt based on high/low/rise/fall/change.
 
##Can interrupt based on high/low/rise/fall/change.
Line 31: Line 31:
 
</center>
 
</center>
 
<br>
 
<br>
Light green signals labeled "Unused" are available for development.    Other colors are being used or are reserved for sensor families.  A rain gauge and tilt sensor need to be implemented.
+
Light green signals labeled "Unused" are available for development.    Other colors are being used or are reserved for sensor families.  A tilt sensor needs to be implemented.
  
 
<br>
 
<br>
  
 
==GPIO ordered by Header Pins==
 
==GPIO ordered by Header Pins==
'''THE GPIO PINS ARE REFERRED TO BY TWO DIFFERENT NAMING CONVENTIONS, Broadcom and RPi'''
 
  
The first 26 pins on J8 (A+ and B+ models) are the same as H1 on the A and B models.
+
'''''Notes:'''''
 +
#'''Pins 7 and 11 were swapped''' between Hive Interface Board versions 0.3 and 1.0.  On version 1.0 the LED was moved from pin 7, the default 1-wire bus, to pin 11.
 +
#'''THE GPIO PINS ARE REFERRED TO BY TWO DIFFERENT NAMING CONVENTIONS''', Broadcom and RPi. Some drivers use the RPi numbers, some drivers use the Broadcom numbering
 +
#The first 26 pins on J8 (A+, B+ Pi2, PiZero, Pi 3 models) are the same as H1 on the A and B models.
 +
 
 +
 
 +
 
 
<center>  
 
<center>  
 
  <table>
 
  <table>
Line 48: Line 53:
 
       <tr><td bgcolor="Yellow">Reserved for I2C Sensors</td></tr>
 
       <tr><td bgcolor="Yellow">Reserved for I2C Sensors</td></tr>
 
       <tr><td bgcolor="Yellow">Reserved for I2C Sensors</td></tr>
 
       <tr><td bgcolor="Yellow">Reserved for I2C Sensors</td></tr>
       <tr><td bgcolor="#66aa66">Reserved for LED</td></tr>
+
       <tr><td bgcolor="#66aa66">Reserved for 1-Wire</td></tr>
 
       <tr><td bgcolor="555555">Ground</td></tr>
 
       <tr><td bgcolor="555555">Ground</td></tr>
       <tr><td bgcolor="#66aa66">Reserved for 1-Wire</td></tr>
+
       <tr><td bgcolor="#8888ff">Reserved for LED</td></tr>
 
       <tr><td bgcolor="#44ff44">Reserved DHT22</td></tr>
 
       <tr><td bgcolor="#44ff44">Reserved DHT22</td></tr>
 
       <tr><td bgcolor="#44ff44">Reserved DHT22</td></tr>
 
       <tr><td bgcolor="#44ff44">Reserved DHT22</td></tr>
Line 75: Line 80:
 
       <tr><td bgcolor="#66aa66">GPIO 7 GPCLK0</td></tr>
 
       <tr><td bgcolor="#66aa66">GPIO 7 GPCLK0</td></tr>
 
       <tr><td bgcolor="#555555">Ground</td></tr>
 
       <tr><td bgcolor="#555555">Ground</td></tr>
       <tr><td bgcolor="#cceecc">GPIO 0</td></tr>
+
       <tr><td bgcolor="#8888ff">GPIO 0</td></tr>
 
       <tr><td bgcolor="#44ff44">GPIO 2</td></tr>
 
       <tr><td bgcolor="#44ff44">GPIO 2</td></tr>
 
       <tr><td bgcolor="#44ff44">GPIO 3</td></tr>
 
       <tr><td bgcolor="#44ff44">GPIO 3</td></tr>
Line 100: Line 105:
 
       <tr><td bgcolor="#66aa66">GPIO 4 GPCLK0</td></tr>
 
       <tr><td bgcolor="#66aa66">GPIO 4 GPCLK0</td></tr>
 
       <tr><td bgcolor="#555555">Ground</td></tr>
 
       <tr><td bgcolor="#555555">Ground</td></tr>
       <tr><td bgcolor="#cceecc">GPIO 17</td></tr>
+
       <tr><td bgcolor="#8888ff">GPIO 17</td></tr>
 
       <tr><td bgcolor="#44ff44">GPIO 27</td></tr>
 
       <tr><td bgcolor="#44ff44">GPIO 27</td></tr>
 
       <tr><td bgcolor="#44ff44">GPIO 22</td></tr>
 
       <tr><td bgcolor="#44ff44">GPIO 22</td></tr>
Line 155: Line 160:
 
       <tr><td bgcolor="green">GPIO 24</td></tr>
 
       <tr><td bgcolor="green">GPIO 24</td></tr>
 
       <tr><td bgcolor="#555555">Ground</td></tr>
 
       <tr><td bgcolor="#555555">Ground</td></tr>
       <tr><td bgcolor="cceecc">GPIO 25</td></tr>
+
       <tr><td bgcolor="11bb11">GPIO 25</td></tr>
 
       <tr><td bgcolor="bb55bb">GPIO 8 SPI0_CE0</td></tr>
 
       <tr><td bgcolor="bb55bb">GPIO 8 SPI0_CE0</td></tr>
 
       <tr><td bgcolor="bb55bb">GPIO 7 SPI0_CE1</td></tr>
 
       <tr><td bgcolor="bb55bb">GPIO 7 SPI0_CE1</td></tr>
Line 180: Line 185:
 
       <tr><td bgcolor="green">GPIO 5</td></tr>
 
       <tr><td bgcolor="green">GPIO 5</td></tr>
 
       <tr><td bgcolor="#555555">Ground</td></tr>
 
       <tr><td bgcolor="#555555">Ground</td></tr>
       <tr><td bgcolor="cceecc">GPIO 6</td></tr>
+
       <tr><td bgcolor="11bb11">GPIO 6</td></tr>
 
       <tr><td bgcolor="bb55bb">GPIO 10 SPI0_CE0</td></tr>
 
       <tr><td bgcolor="bb55bb">GPIO 10 SPI0_CE0</td></tr>
 
       <tr><td bgcolor="bb55bb">GPIO 11 SPI0_CE1</td></tr>
 
       <tr><td bgcolor="bb55bb">GPIO 11 SPI0_CE1</td></tr>
Line 205: Line 210:
 
       <tr><td bgcolor="green">Reserved HX711</td></tr>
 
       <tr><td bgcolor="green">Reserved HX711</td></tr>
 
       <tr><td bgcolor="#555555">Ground</td></tr>
 
       <tr><td bgcolor="#555555">Ground</td></tr>
       <tr><td bgcolor="#cceecc">Reserved Rain Gauge</td></tr>
+
       <tr><td bgcolor="#11bb11">Reserved Rain Gauge</td></tr>
 
       <tr><td bgcolor="#bb55bb">Reserved SPI</td></tr>
 
       <tr><td bgcolor="#bb55bb">Reserved SPI</td></tr>
 
       <tr><td bgcolor="#bb55bb">Reserved SPI</td></tr>
 
       <tr><td bgcolor="#bb55bb">Reserved SPI</td></tr>

Latest revision as of 13:25, 19 August 2018

General Purpose Input Output (GPIO)

This page is to identify the alternate functions of the Raspberry Pi GPIO and to keep Hivetool developers from stepping on each other by reserving pins for Hivetool hardware.

Notes

  1. GPIO pins are 3.3 volt logic levels and are not tolerant of 5V levels
  2. THE GPIO PINS ARE NUMBERED TWO DIFFERENT WAYS, Broadcom and RPi. Hivetool uses RPi numbers.
  3. These GPIO properties are set as a block, not per pin (GPIO pins 0-27 are in the same block).
    1. Can interrupt based on high/low/rise/fall/change.
    2. Schmitt Trigger Input (hysteresis) can be on or off,
    3. Output slew rate can be fast or limited, and
    4. Source and sink currents are configurable from 2 mA up to 16 mA.
  4. ID_SD and ID_SC PINS are reserved for ID EEPROM.
    At boot time this I2C interface will be interrogated to look for an EEPROM that identifies the attached board and allows
    automagic setup of the GPIOs (and optionally, Linux drivers).
    DO NOT USE these pins for anything other than attaching an I2C ID EEPROM. Leave unconnected if ID EEPROM not required.

Color Legend

Color Legend
3.3 VDC PowerSerial Console/PowerI2C Sensors
5 VDC PowerHX711 ScaleI2S Audio
GroundDHT22 Temp/Hum.SPI
HAT ID ROMRain Gauge1-Wire
UnusedLEDSPI


Light green signals labeled "Unused" are available for development. Other colors are being used or are reserved for sensor families. A tilt sensor needs to be implemented.


GPIO ordered by Header Pins

Notes:

  1. Pins 7 and 11 were swapped between Hive Interface Board versions 0.3 and 1.0. On version 1.0 the LED was moved from pin 7, the default 1-wire bus, to pin 11.
  2. THE GPIO PINS ARE REFERRED TO BY TWO DIFFERENT NAMING CONVENTIONS, Broadcom and RPi. Some drivers use the RPi numbers, some drivers use the Broadcom numbering
  3. The first 26 pins on J8 (A+, B+ Pi2, PiZero, Pi 3 models) are the same as H1 on the A and B models.


Hivetool
3.3 VDC Power
Reserved for I2C Sensors
Reserved for I2C Sensors
Reserved for 1-Wire
Ground
Reserved for LED
Reserved DHT22
Reserved DHT22
3.3 VDC Power
Reserved SPI
Reserved SPI
Reserved SPI
Ground
Reserved ID EEPROM
Unused
Unused
Unused
Reserved I2S
Unused
Ground
R Pi
3.3 VDC Power
GPIO 8 I2C SDA
GPIO 9 I2C SCL
GPIO 7 GPCLK0
Ground
GPIO 0
GPIO 2
GPIO 3
3.3 VDC Power
GPIO 12 SPI0 MOSI
GPIO 13 SPI0 MISO
GPIO 14 SPI0 SCLK
Ground
GPIO 30 I2C0_SDA
GPIO 21 GPCLK1
GPIO 22 GPCLK2
GPIO 23 PWM1
GPIO 24 PCM_FS
GPIO 25
Ground
Broadcom
3.3 VDC Power
GPIO 2 I2C SDA
GPIO 3 I2C SCL
GPIO 4 GPCLK0
Ground
GPIO 17
GPIO 27
GPIO 22
3.3 VDC Power
GPIO 10 SPI0 MOSI
GPIO 09 SPI0 MISO
GPIO 11 SPI0 SCLK
Ground
GPIO 0 I2C0_SDA
GPIO 5 GPCLK1
GPIO 6 GPCLK2
GPIO 13 PWM1
GPIO 19 PCM_FS
GPIO 26
Ground
J8
12
34
56
78
910
1112
1314
1516
1718
1920
2122
2324
2526
2728
2930
3132
3334
3536
3738
3940
Broadcom
5 VDC Power
5 VDC Power
Ground
GPIO 14 TXD
GPIO 15 RXD
GPIO 18 PCM_CLK
Ground
GPIO 23
GPIO 24
Ground
GPIO 25
GPIO 8 SPI0_CE0
GPIO 7 SPI0_CE1
GPIO 1 I2C0_SCL
Ground
GPIO 12 PWM0
Ground
GPIO 16
GPIO 20 PCM_DIN
GPIO 21 PCM DOUT
R Pi
5 VDC Power
5 VDC Power
Ground
GPIO 15 TXD
GPIO 16 RXD
GPIO 1 PCM_CLK
Ground
GPIO 4
GPIO 5
Ground
GPIO 6
GPIO 10 SPI0_CE0
GPIO 11 SPI0_CE1
GPIO 31 I2C0_SCL
Ground
GPIO 26 PWM0
Ground
GPIO 27
GPIO 28 PCM_DIN
GPIO 29 PCM DOUT
Hivetool
5 VDC Power HX711
5 VDC Power
Ground
Reserved serial console
Reserved serial console
Reserved I2S
Ground
Reserved HX711
Reserved HX711
Ground
Reserved Rain Gauge
Reserved SPI
Reserved SPI
Reserved ID EEPROM
Ground
Unused
Ground
Unused
Reserved I2S
Reserved I2S



Output of wiringPi gpio command (sudo gpio readall):

 +-----+-----+---------+------+---+--B Plus--+---+------+---------+-----+-----+
| BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
|     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
|   2 |   8 |   SDA.1 | ALT0 | 1 |  3 || 4  |   |      | 5V      |     |     |
|   3 |   9 |   SCL.1 | ALT0 | 1 |  5 || 6  |   |      | 0v      |     |     |
|   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |
|     |     |      0v |      |   |  9 || 10 | 1 | ALT0 | RxD     | 16  | 15  |
|  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | OUT  | GPIO. 1 | 1   | 18  |
|  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |
|  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |
|     |     |    3.3v |      |   | 17 || 18 | 0 | OUT  | GPIO. 5 | 5   | 24  |
|  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |
|   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 1 | IN   | GPIO. 6 | 6   | 25  |
|  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |
|     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |
|   0 |  30 |   SDA.0 |   IN | 1 | 27 || 28 | 1 | IN   | SCL.0   | 31  | 1   |
|   5 |  21 | GPIO.21 |   IN | 1 | 29 || 30 |   |      | 0v      |     |     |
|   6 |  22 | GPIO.22 |   IN | 1 | 31 || 32 | 0 | IN   | GPIO.26 | 26  | 12  |
|  13 |  23 | GPIO.23 |   IN | 0 | 33 || 34 |   |      | 0v      |     |     |
|  19 |  24 | GPIO.24 |   IN | 0 | 35 || 36 | 0 | IN   | GPIO.27 | 27  | 16  |
|  26 |  25 | GPIO.25 |   IN | 0 | 37 || 38 | 0 | IN   | GPIO.28 | 28  | 20  |
|     |     |      0v |      |   | 39 || 40 | 0 | IN   | GPIO.29 | 29  | 21  |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
| BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
+-----+-----+---------+------+---+--B Plus--+---+------+---------+-----+-----+



GPIO ordered by Signal Name

BroadcomAlt FunctionJ8H1H5
3.3 VDC Power113
3.3 VDC Power1717
5 VDC Power221
5 VDC Power44
GPIO 0I2C0_SDA27
GPIO 1I2C0_SCL28
GPIO 2I2C1 SDA33
GPIO 3I2C1 SCL55
GPIO 4GPCLK077
GPIO 5GPCLK129
GPIO 6GPCLK231
GPIO 7SPI0 CE12626
GPIO 8SPI0 CE02424
GPIO 9 SPI0 MISO2121
GPIO 10SPI0 MOSI1919
GPIO 11SPI0 SCLK2323
GPIO 12PWM032
GPIO 13PWM133
GPIO 14UART0 TXD88
GPIO 15UART0 RXD1010
GPIO 1636
GPIO 171111
GPIO 18PCM_CLK1212
GPIO 19PCM_FS35
GPIO 20PCM_DIN38
GPIO 21PCM DOUT40
GPIO 221515
GPIO 231616
GPIO 241818
GPIO 252222
GPIO 2637
GPIO 271313
GPIO 28I2C0_SDA3
GPIO 29I2C0_SCL4
GPIO 305
GPIO 316
Ground667
Ground998
Ground1414
Ground2020
Ground2525
Ground30
Ground34
Ground39

Resources

  1. eLinux.org RPi Low-level peripherals
  2. Raspberry Pi B+ Reduced Schematic
  3. eLinux.org BCM2835 GPIO functions
  4. BCM2835 Data Sheet (Manual)
  5. eLinux.org BCM2835 datasheet errata
  6. Hardware attached on Top
  7. WiringPi Alternate GPIO Assignments
  8. WiringPi Special Pin Functions