Please enable javascript, or click here to visit my ecommerce web site powered by Shopify.
Jump to: navigation, search

Difference between revisions of "Rockpi4/hardware/gpio"

Line 4: Line 4:
 
     [[rockpi4 | ROCK Pi 4]] > [[rockpi4/hardware | Hardware]] > [[rockpi4/hardware/gpio | GPIO]]
 
     [[rockpi4 | ROCK Pi 4]] > [[rockpi4/hardware | Hardware]] > [[rockpi4/hardware/gpio | GPIO]]
  
 
+
<div class="col-md-12 ">
=== <span id="gpio">General purpose input-output (GPIO) connector</span> ===
+
    <div class="panel panel-midnight-white">
 +
        <div class="panel-heading"><h3>Hardware Rock Pi 4 A/B/C</h3></div>
 +
        <div class="panel-body">
 +
=== <span id="gpio">'''Rock Pi 4''' general purpose input-output (GPIO) connector</span> ===
  
 
ROCK Pi 4 has a 40-pin expansion header. Each pin is distinguished by color.
 
ROCK Pi 4 has a 40-pin expansion header. Each pin is distinguished by color.
Line 65: Line 68:
 
** We have do the test using the i2c device e2prom. We  need to open the i2c device file, and then do the read or write operation.
 
** We have do the test using the i2c device e2prom. We  need to open the i2c device file, and then do the read or write operation.
  
 +
<div class="col-md-12 ">
 +
    <div class="panel panel-midnight-white">
 +
        <div class="panel-heading"><h3>Hardware Rock Pi C+</h3></div>
 +
        <div class="panel-body">
 +
=== <span id="gpio">'''Rock Pi 4c+''' general purpose input-output (GPIO) connector</span> ===
 +
 +
ROCK Pi 4c+ has a 40-pin expansion header. Each pin is distinguished by color.
 +
{| class="wikitable"
 +
! GPIO number || Function2 || Function1 ||  GPIO ||  Pin# || || Pin# || GPIO || Function1 || Function2 || GPIO number
 +
|-
 +
| || || +3.3V ||  || style="background:yellow"| 1 ||  ||style="background:red"| 2 ||  || +5.0V ||  ||
 +
|-
 +
| 71 || || I2C7_SDA || GPIO2_A7 || style="background:green; color:white"| 3 || ||  style="background:red"| 4 || || +5.0V ||  ||
 +
|-
 +
| 72 || || I2C7_SCL || GPIO2_B0 || style="background:green; color:white"| 5 || || style="background:black; color:white"| 6 ||  || GND ||  ||
 +
|-
 +
| 75 || || SPI2_CLK || GPIO2_B3 || style="background:green; color:white"| 7 || || style="background:green; color:white"| 8 || GPIO4_C4 || style="background:orange"|UART2_TXD ||  || 148
 +
|-
 +
| || ||  GND ||  || style="background:black; color:white"| 9 || || style="background:green; color:white"|10 || GPIO4_C3 || style="background:orange"|UART2_RXD ||  || 147
 +
|-
 +
|146  || ||  PWM0 || GPIO4_C2 || style="background:green; color:white"|11 || || style="background:green; color:white"|12 || GPIO2-D3 ||  ||  || 91
 +
|-
 +
| 33 || || PWM1 || GPIO1_A1 || style="background:green; color:white"|13 ||  || style="background:black; color:white"|14 || || GND ||  ||
 +
|-
 +
| 149 || || SPDIF_TX ||  GPIO4_C5 || style="background:green; color:white"|15 || || style="background:green; color:white"|16 || GPIO4_D2 || ||  || 154
 +
|-
 +
| || ||  +3.3V || || style="background:yellow"|17 || || style="background:green; color:white"|18 || GPIO4_D4 || ||  || 156
 +
|-
 +
|40 || UART4_TXD ||  style="background:orange"|SPI1_TXD || GPIO1_B0 || style="background:green; color:white"|19 ||  ||style="background:black; color:white"|20 || || GND ||  ||
 +
|-
 +
|39 || UART4_RXD || style="background:orange"|SPI1_RXD || GPIO1_A7  || style="background:green; color:white"|21  ||  || style="background:green; color:white"|22  || GPIO4_D5  ||  || || 157
 +
|-
 +
|41 || ||  style="background:orange"|SPI1_CLK || GPIO1_B1 || style="background:green; color:white"|23 ||  || style="background:green; color:white"|24 || GPIO1_B2  || style="background:orange"|SPI1_CSn  ||  || 42
 +
|-
 +
| || ||  GND  ||  || style="background:black; color:white"|25  ||  || style="background:green; color:white"|26 ||  || ADC_IN0 ||  ||
 +
|-
 +
| 64 || ||  I2C2_SDA  || GPIO2_A0 || style="background:blue; color:white"|27  ||  || style="background:blue; color:white"|28 || GPIO2_A1 || I2C2_CLK ||  || 65
 +
|-
 +
| 74 || I2C6_SCL ||  SPI2_TXD  || GPIO2_B2 || style="background:green; color:white"|29  ||  || style="background:black; color:white"|30 ||  || GND ||  ||
 +
|-
 +
| 73 || I2C6_SDA ||  SPI2_RXD  || GPIO2_B1 || style="background:green; color:white"|31  ||  || style="background:green; color:white"|32 || GPIO3_C0 || SPDIF_TX || UART3_CTSn || 112
 +
|-
 +
| 76 || ||  SPI2_CSn || GPIO2_B4 || style="background:green; color:white"|33  ||  || style="background:black; color:white"|34 ||  || GND ||  ||
 +
|-
 +
| 133 || ||  I2S1_LRCK_TX || GPIO4_A5 || style="background:green; color:white"|35  ||  || style="background:green; color:white"|36 || GPIO2-D4 ||  ||  || 92
 +
|-
 +
| 158 || ||  || GPIO4_D6 || style="background:green; color:white"|37  ||  || style="background:green; color:white"|38 || GPIO1_A4 ||  ||  || 36
 +
|-
 +
| || ||  GND ||  || style="background:black; color:white"|39  ||  ||style="background:green; color:white"|40  || GPIO1_C4 ||  ||  || 52
 +
|}
  
  

Revision as of 03:22, 22 December 2021

    ROCK Pi 4 >  Hardware >  GPIO

Rock Pi 4 general purpose input-output (GPIO) connector

ROCK Pi 4 has a 40-pin expansion header. Each pin is distinguished by color.

GPIO number Function2 Function1 GPIO Pin# Pin# GPIO Function1 Function2 GPIO number
+3.3V 1 2 +5.0V
71 I2C7_SDA GPIO2_A7 3 4 +5.0V
72 I2C7_SCL GPIO2_B0 5 6 GND
75 SPI2_CLK GPIO2_B3 7 8 GPIO4_C4 UART2_TXD 148
GND 9 10 GPIO4_C3 UART2_RXD 147
146 PWM0 GPIO4_C2 11 12 GPIO4_A3 I2S1_SCLK 131
150 PWM1 GPIO4_C6 13 14 GND
149 SPDIF_TX GPIO4_C5 15 16 GPIO4_D2 154
+3.3V 17 18 GPIO4_D4 156
40 UART4_TXD SPI1_TXD GPIO1_B0 19 20 GND
39 UART4_RXD SPI1_RXD GPIO1_A7 21 22 GPIO4_D5 157
41 SPI1_CLK GPIO1_B1 23 24 GPIO1_B2 SPI1_CSn 42
GND 25 26 ADC_IN0
64 I2C2_SDA GPIO2_A0 27 28 GPIO2_A1 I2C2_CLK 65
74 I2C6_SCL SPI2_TXD GPIO2_B2 29 30 GND
73 I2C6_SDA SPI2_RXD GPIO2_B1 31 32 GPIO3_C0 SPDIF_TX UART3_CTSn 112
76 SPI2_CSn GPIO2_B4 33 34 GND
133 I2S1_LRCK_TX GPIO4_A5 35 36 GPIO4_A4 I2S1_LRCK_RX 132
158 GPIO4_D6 37 38 GPIO4_A6 I2S1_SDI 134
GND 39 40 GPIO4_A7 I2S1_SDO 135

More details about 40-pin Header

  • Function marked with color orange is the default function of this pin.
  • Except Pins for power supply, all pins are laid out directly to Soc RK3399.
  • For pin 3, 5, 27, 28, 29 and 31, each pin is connected to the 3.0V supply through a 4.7K pull-up resistor.
  • Pin 19, 21, 23, 24 are laid out directly to the pins of SPI device on board.
  • Pin 7 is laid out directly to the pin of MIPI CSI on board.
  • UART
    • UART2 is enabled as U-boot and Linux serial console by default. Check Rockpi4/dev/serial-console to use. Check Rockpi4/hardware/devtree_overlays to disable serial console on UART2.
    • UART2 & UART4 support a wide range of baud rate. It includes but not is not limited to the following baud rates. For instance, 115200bps. 500000bps, 1500000bps and so on.
    • For v1.4 and later hardware, on board SPI flash is soldered, UART4 PINs are used as SPI function.
  • For I2C-2 and I2C-7
    • We have do the test using the i2c device e2prom. We need to open the i2c device file, and then do the read or write operation.

Hardware Rock Pi C+

Rock Pi 4c+ general purpose input-output (GPIO) connector

ROCK Pi 4c+ has a 40-pin expansion header. Each pin is distinguished by color.

GPIO number Function2 Function1 GPIO Pin# Pin# GPIO Function1 Function2 GPIO number
+3.3V 1 2 +5.0V
71 I2C7_SDA GPIO2_A7 3 4 +5.0V
72 I2C7_SCL GPIO2_B0 5 6 GND
75 SPI2_CLK GPIO2_B3 7 8 GPIO4_C4 UART2_TXD 148
GND 9 10 GPIO4_C3 UART2_RXD 147
146 PWM0 GPIO4_C2 11 12 GPIO2-D3 91
33 PWM1 GPIO1_A1 13 14 GND
149 SPDIF_TX GPIO4_C5 15 16 GPIO4_D2 154
+3.3V 17 18 GPIO4_D4 156
40 UART4_TXD SPI1_TXD GPIO1_B0 19 20 GND
39 UART4_RXD SPI1_RXD GPIO1_A7 21 22 GPIO4_D5 157
41 SPI1_CLK GPIO1_B1 23 24 GPIO1_B2 SPI1_CSn 42
GND 25 26 ADC_IN0
64 I2C2_SDA GPIO2_A0 27 28 GPIO2_A1 I2C2_CLK 65
74 I2C6_SCL SPI2_TXD GPIO2_B2 29 30 GND
73 I2C6_SDA SPI2_RXD GPIO2_B1 31 32 GPIO3_C0 SPDIF_TX UART3_CTSn 112
76 SPI2_CSn GPIO2_B4 33 34 GND
133 I2S1_LRCK_TX GPIO4_A5 35 36 GPIO2-D4 92
158 GPIO4_D6 37 38 GPIO1_A4 36
GND 39 40 GPIO1_C4 52


IO Voltage

RK3399 have three IO voltages, 1.8V/3.0V/3.3V. For ROCK Pi 4, below is the default voltage:

| GPIO       | Voltage Level | Tolerance |
| ---------- | ------------- | --------- |
| GPIO3_C0   | 3.3V          | 3.465V    |
| ADC_IN0    | 1.8V          | 1.98V     |
| Other GPIO | 3.0V          | 3.14V     |



GPIO number

Rockchip RK3399 GPIO has 5 banks, GPIO0 to GPIO4, each bank has 32pins, naming as below:

   GPIO0_A0 ~ A7 
   GPIO0_B0 ~ B7
   GPIO0_C0 ~ C7
   GPIO0_D0 ~ D7
   
   GPIO1_A0 ~ A7
   ....
   GPIO1_D0 ~ D7

For Rockchip 4.4 kernel, the GPIO number can be calculated as below, take GPIO4_D5 (PIN22 on 40PIN GPIO) as an example:

   GPIO4_D5 = 4*32 + 3*8 + 5 = 157
   (A=0, B=1, C=2, D=3)

Gpio number.png

To set GPIO4_D5 output

   cd /sys/class/gpio
   echo 157 > export
   cd gpio157
   echo out > direction
   echo 1 > value     # output high
   echo 0 > value     # output low

GPIO Libraries/API

====Install Libmraa ====