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

Difference between revisions of "Rock4/hardware/gpio"

 
(One intermediate revision by one other user not shown)
Line 13: Line 13:
 
=== <span id="gpio"> general purpose input-output (GPIO) connector</span> ===
 
=== <span id="gpio"> general purpose input-output (GPIO) connector</span> ===
 
ROCK 4 series has a 40-pin expansion header. Each pin is distinguished by color.
 
ROCK 4 series has a 40-pin expansion header. Each pin is distinguished by color.
 +
For ROCK 4C+, the following pin-out is applicable for version 1.2 and later.
 
{| class="wikitable"
 
{| class="wikitable"
 
! GPIO number || Function2 || Function1 ||  GPIO ||  Pin# || || Pin# || GPIO || Function1 || Function2 || GPIO number
 
! GPIO number || Function2 || Function1 ||  GPIO ||  Pin# || || Pin# || GPIO || Function1 || Function2 || GPIO number
Line 59: Line 60:
 
<div class="toccolours mw-collapsible mw-collapsed" style="overflow:auto;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="overflow:auto;">
  
=== <span id="rockpi4c+gpio">'''ROCK Pi 4C Plus V1.0/V1.1''' general purpose input-output (GPIO) connector</span> ===
+
=== <span id="rockpi4c+gpio">'''ROCK 4C+ v1.0/1.1''' general purpose input-output (GPIO) connector</span> ===
 +
 
 +
ROCK 4C+ v1.0/1.1 are pre-production version. Mass production began from v1.2. '''The following pinout is only for early adapters.'''
  
ROCK Pi 4C Plus has a 40-pin expansion header. Each pin is distinguished by color.
 
 
{| class="wikitable"
 
{| class="wikitable"
 
! GPIO number || Function2 || Function1 ||  GPIO ||  Pin# || || Pin# || GPIO || Function1 || Function2 || GPIO number
 
! GPIO number || Function2 || Function1 ||  GPIO ||  Pin# || || Pin# || GPIO || Function1 || Function2 || GPIO number

Latest revision as of 08:37, 22 February 2023


    ROCK 4 >  Hardware >  GPIO

GPIO

wiringX GPIO mapping

general purpose input-output (GPIO) connector

ROCK 4 series has a 40-pin expansion header. Each pin is distinguished by color. For ROCK 4C+, the following pin-out is applicable for version 1.2 and later.

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

ROCK 4C+ v1.0/1.1 general purpose input-output (GPIO) connector

ROCK 4C+ v1.0/1.1 are pre-production version. Mass production began from v1.2. The following pinout is only for early adapters.

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 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

Notes about 40-pin Header

  • Function marked with color orange is the default function of this pin.
  • Except Pins for power supply, all pins are routed 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 7 is routed directly to the pin of MIPI CSI on board.
  • SPI
    • Pin 19, 21, 23, 24 also route to the pins of SPI flash on board. If the ROCK 4 model has SPI flash soldered on board, the SPI function is not available on GPIO header.
  • 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.

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