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

Difference between revisions of "Rock3/hardware/rock3a-gpio"

< Rock3‎ | hardwareRedirect page
(More details about 40-pin Header In V1.3)
(Redirected page to Rock3/hardware/3a/gpio)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
{{rock3_header}}
+
#REDIRECT [[rock3/hardware/3a/gpio | ROCK 3A GPIO]]
{{Languages|rock3/hardware/gpio}}
+
 
+
    [[rock3 | ROCK 3]] > [[rock3/hardware | Hardware]] > [[rock3/hardware/rock3a-gpio | ROCK 3 A GPIO]]
+
 
+
== <span id="gpio">General purpose input-output (GPIO) connector</span> ==
+
 
+
ROCK 3 A has a 40-pin expansion header. Each pin is distinguished by color.
+
 
+
<div class="col-md-12 ">
+
    <div class="panel panel-midnight-white">
+
        <div class="panel-heading"><h3>Hardware V1.2</h3></div>
+
        <div class="panel-body">
+
 
+
{| class="wikitable" style="vertical-align:middle;"
+
|- style="font-weight:bold; text-align:center;"
+
! GPIO number
+
! Function4
+
! Function3
+
! Function2
+
! Function1
+
! Pin#
+
!
+
! Pin#
+
! Function1
+
! Function2
+
! Function3
+
! Function4
+
! GPIO number
+
|-
+
|
+
|
+
|
+
|
+
| +3.3V
+
| style="background-color:#FF0;" | 1
+
|
+
| style="background-color:#F00;" | 2
+
| +5.0V
+
|
+
|
+
|
+
|
+
|-
+
| 32
+
| CAN1_RX_M0
+
| UART3_RX_M0
+
| I2C3_SDA_M0
+
| GPIO1_A0
+
| style="background-color:#008000; color:#FFF;" | 3
+
|
+
| style="background-color:#F00;" | 4
+
| +5.0V
+
|
+
|
+
|
+
|
+
|-
+
| 33
+
| CAN1_TX_M0
+
| UART3_TX_M0
+
| I2C3_SCL_M0
+
| GPIO1_A1
+
| style="background-color:#008000; color:#FFF;" | 5
+
|
+
| style="background-color:#000; color:#FFF" | 6
+
| GND
+
|
+
|
+
|
+
|
+
|-
+
| 111
+
|
+
| UART3_TX_M1
+
| PWM12_M0
+
| GPIO3_B7
+
| style="background-color:#008000; color:#FFF;" | 7
+
|
+
| style="background-color:#008000; color:#FFF;" | 8
+
| GPIO0_D1
+
| style="background-color:#FFA500;" | UART2_TXD
+
|
+
|
+
| 25
+
|-
+
|
+
|
+
|
+
|
+
| GND
+
| style="background-color:#000; color:#FFF" | 9
+
|
+
| style="background-color:#008000; color:#FFF;" | 10
+
| GPIO0_D0
+
| style="background-color:#FFA500;" | UART2_RXD
+
|
+
|
+
| 24
+
|-
+
| 116
+
|
+
| UART7_TX_M1
+
| PWM14_M0
+
| GPIO3_C4
+
| style="background-color:#008000; color:#FFF;" | 11
+
|
+
| style="background-color:#008000; color:#FFF;" | 12
+
| GPIO3_A3
+
|
+
|
+
|
+
| 99
+
|-
+
| 117
+
|
+
| UART7_RX_M1
+
| PWM15_IR_M0
+
| GPIO3_C5
+
| style="background-color:#008000; color:#FFF;" | 13
+
|
+
| style="background-color:#000; color:#FFF" | 14
+
| GND
+
|
+
|
+
|
+
|
+
|-
+
| 16
+
|
+
| UART0_RX
+
| PWM1_M0
+
| GPIO0_C0
+
| style="background-color:#008000; color:#FFF;" | 15
+
|
+
| style="background-color:#008000; color:#FFF;" | 16
+
| GPIO3_A1
+
| SPI1_CS0_M1
+
|
+
|
+
| 97
+
|-
+
| 17
+
|
+
| UART0_TX
+
| PWM2_M0
+
| GPIO0_C1
+
| style="background-color:#FF0;" | 17
+
|
+
| style="background-color:#008000; color:#FFF;" | 18
+
| GPIO3_B2
+
| UART4_TX_M1
+
| PWM9_M0
+
|
+
| 106
+
|-
+
| 147
+
| CAN1_TX_M1
+
| SPI3_MOSI_M1
+
| PWM15_IR_M1
+
| GPIO4_C3
+
| style="background-color:#008000; color:#FFF;" | 19
+
|
+
| style="background-color:#000; color:#FFF" | 20
+
| GND
+
|
+
|
+
|
+
|
+
|-
+
| 149
+
| UART9_TX_M1
+
| SPI3_MISO_M1
+
| PWM12_M1
+
| GPIO4_C5
+
| style="background-color:#008000; color:#FFF;" | 21
+
|
+
| style="background-color:#008000; color:#FFF;" | 22
+
| ADC_IN5
+
|
+
|
+
|
+
|
+
|-
+
| 146
+
| CAN1_RX_M1
+
| SPI3_CLK_M1
+
| PWM14_M1
+
| GPIO4_C2
+
| style="background-color:#008000; color:#FFF;" | 23
+
|
+
| style="background-color:#008000; color:#FFF;" | 24
+
| GPIO4_C6
+
| PWM13_M1
+
| SPI3_CS0_M1
+
| UART9_RX_M1
+
| 150
+
|-
+
|
+
|
+
|
+
|
+
| GND
+
| style="background-color:#000; color:#FFF" | 25
+
|
+
| style="background-color:#008000; color:#FFF;" | 26
+
| GPIO4_D1
+
| SPI3_CS1_M1
+
|
+
|
+
| 153
+
|-
+
| 14
+
| PWM2_M1
+
| SPI0_MOSI_M0
+
| I2C2_SDA_M0
+
| GPIO0_B6
+
| style="background-color:#00F; color:#FFF;" | 27
+
|
+
| style="background-color:#00F; color:#FFF;" | 28
+
| GPIO0_B5
+
| I2C2_SCL_M0
+
| SPI0_CLK_M0
+
| PWM1_M1
+
| 13
+
|-
+
| 95
+
|
+
| UART8_TX_M1
+
| SPI2_MISO_M1
+
| GPIO2_D7
+
| style="background-color:#008000; color:#FFF;" | 29
+
|
+
| style="background-color:#000; color:#FFF" | 30
+
| GND
+
|
+
|
+
|
+
|
+
|-
+
| 96
+
|
+
| UART8_RX_M1
+
| SPI2_CLK_M1
+
| GPIO3_A0
+
| style="background-color:#008000; color:#FFF;" | 31
+
|
+
| style="background-color:#008000; color:#FFF;" | 32
+
| GPIO3_C2
+
| SPI1_MISO_M1
+
| UART5_TX_M1
+
|
+
| 114
+
|-
+
| 115
+
|
+
| UART5_RX_M1
+
| SPI1_CLK_M1
+
| GPIO3_C3
+
| style="background-color:#008000; color:#FFF;" | 33
+
|
+
| style="background-color:#000; color:#FFF" | 34
+
| GND
+
|
+
|
+
|
+
|
+
|-
+
| 100
+
|
+
|
+
|
+
| GPIO3_A4
+
| style="background-color:#008000; color:#FFF;" | 35
+
|
+
| style="background-color:#008000; color:#FFF;" | 36
+
| GPIO3_A2
+
|
+
|
+
|
+
| 98
+
|-
+
| 112
+
|
+
| UART3_RX_M1
+
| PWM13_M0
+
| GPIO3_C0
+
| style="background-color:#008000; color:#FFF;" | 37
+
|
+
| style="background-color:#008000; color:#FFF;" | 38
+
| GPIO3_A6
+
|
+
|
+
|
+
| 102
+
|-
+
|
+
|
+
|
+
|
+
| GND
+
| style="background-color:#000; color:#FFF" | 39
+
|
+
| style="background-color:#008000; color:#FFF;" | 40
+
| GPIO3_A5
+
|
+
|
+
|
+
| 101
+
|}
+
 
+
        </div>
+
    </div>
+
</div>
+
 
+
<div class="clearfix"></div>
+
 
+
==== More details about 40-pin Header In V1.2 ====
+
 
+
* Pins marked with color orange are designed for debug console.
+
* PWM; x7, PWM1/PWM2/PWM9/PWM12/PWM13/PWM14/PWM15
+
* SPI: x1, SPI3
+
* I2C: x2, I2C2/I2C3
+
* UART: x6, UART0/UART3/UART5/UART7/UART8/UART9
+
* ADC: x1, ADC_IN5
+
* CAN: x1, CAN1
+
* USB: x1, PIN#27 and PIN#28
+
** When we select this USB function, you need to modify the hardware like this.
+
*** Remove R90526 R90527
+
*** Add R90536 R90537
+
 
+
<div class="col-md-12 ">
+
    <div class="panel panel-midnight-white">
+
        <div class="panel-heading"><h3>Hardware V1.3</h3></div>
+
        <div class="panel-body">
+
{| class="wikitable" style="vertical-align:middle; background-color:#F9F9F9;"
+
|- style="font-weight:bold; text-align:center; background-color:#F2F2F2;"
+
! GPIO number
+
! Function4
+
! Function3
+
! Function2
+
! Function1
+
! Pin#
+
!
+
! Pin#
+
! Function1
+
! Function2
+
! Function3
+
! Function4
+
! GPIO number
+
|-
+
|
+
|
+
|
+
|
+
| +3.3V
+
| style="background-color:#FF0;" | 1
+
|
+
| style="background-color:#F00;" | 2
+
| +5.0V
+
|
+
|
+
|
+
|
+
|-
+
| 32
+
| CAN1_RX_M0
+
| UART3_RX_M0
+
| I2C3_SDA_M0
+
| GPIO1_A0
+
| style="background-color:#008000; color:#FFF;" | 3
+
|
+
| style="background-color:#F00;" | 4
+
| +5.0V
+
|
+
|
+
|
+
|
+
|-
+
| 33
+
| CAN1_TX_M0
+
| UART3_TX_M0
+
| I2C3_SCL_M0
+
| GPIO1_A1
+
| style="background-color:#008000; color:#FFF;" | 5
+
|
+
| style="background-color:#000; color:#FFF;" | 6
+
| GND
+
|
+
|
+
|
+
|
+
|-
+
| 13
+
| PWM1_M1
+
| SPI0_CLK_M0
+
| I2C2_SCL_M0
+
| GPIO0_B5
+
| style="background-color:#008000; color:#FFF;" | 7
+
|
+
| style="background-color:#008000; color:#FFF;" | 8
+
| GPIO0_D1
+
| style="background-color:#FFA500;" | UART2_TXD
+
|
+
|
+
| 25
+
|-
+
|
+
|
+
|
+
|
+
| GND
+
| style="background-color:#000; color:#FFF;" | 9
+
|
+
| style="background-color:#008000; color:#FFF;" | 10
+
| GPIO0_D0
+
| style="background-color:#FFA500;" | UART2_RXD
+
|
+
|
+
| 24
+
|-
+
| 116
+
|
+
| UART7_TX_M1
+
| PWM14_M0
+
| GPIO3_C4
+
| style="background-color:#008000; color:#FFF;" | 11
+
|
+
| style="background-color:#008000; color:#FFF;" | 12
+
| GPIO3_A3
+
|
+
|
+
|
+
| 99
+
|-
+
| 117
+
|
+
| UART7_RX_M1
+
| PWM15_IR_M0
+
| GPIO3_C5
+
| style="background-color:#008000; color:#FFF;" | 13
+
|
+
| style="background-color:#000; color:#FFF;" | 14
+
| GND
+
|
+
|
+
|
+
|
+
|-
+
| 16
+
|
+
| UART0_RX
+
| PWM1_M0
+
| GPIO0_C0
+
| style="background-color:#008000; color:#FFF;" | 15
+
|
+
| style="background-color:#008000; color:#FFF;" | 16
+
| GPIO0_B6
+
| I2C2_SDA_M0
+
| SPI0_MOSI_M0
+
| PWM2_M1
+
| 14
+
|-
+
|
+
|
+
|
+
|
+
| +3.3V
+
| style="background-color:#FF0;" | 17
+
|
+
| style="background-color:#008000; color:#FFF;" | 18
+
| GPIO3_B2
+
| UART4_TX_M1
+
| PWM9_M0
+
|
+
| 106
+
|-
+
| 147
+
| CAN1_TX_M1
+
| SPI3_MOSI_M1
+
| PWM15_IR_M1
+
| GPIO4_C3
+
| style="background-color:#008000; color:#FFF;" | 19
+
|
+
| style="background-color:#000; color:#FFF;" | 20
+
| GND
+
|
+
|
+
|
+
|
+
|-
+
| 149
+
| UART9_TX_M1
+
| SPI3_MISO_M1
+
| PWM12_M1
+
| GPIO4_C5
+
| style="background-color:#008000; color:#FFF;" | 21
+
|
+
| style="background-color:#008000; color:#FFF;" | 22
+
| GPIO0_C1
+
| PWM2_M0
+
| UART0_TX
+
|
+
| 17
+
|-
+
| 146
+
| CAN1_RX_M1
+
| SPI3_CLK_M1
+
| PWM14_M1
+
| GPIO4_C2
+
| style="background-color:#008000; color:#FFF;" | 23
+
|
+
| style="background-color:#008000; color:#FFF;" | 24
+
| GPIO4_C6
+
| PWM13_M1
+
| SPI3_CS0_M1
+
| UART9_RX_M1
+
| 150
+
|-
+
|
+
|
+
|
+
|
+
| GND
+
| style="background-color:#000; color:#FFF;" | 25
+
|
+
| style="background-color:#008000; color:#FFF;" | 26
+
| GPIO4_D1
+
| SPI3_CS1_M1
+
|
+
|
+
| 153
+
|-
+
| 12
+
|
+
| CAN0_RX_M0
+
| I2C1_SDA
+
| GPIO0_B4
+
| style="background-color:#00F; color:#FFF;" | 27
+
|
+
| style="background-color:#00F; color:#FFF;" | 28
+
| GPIO0_B3
+
| I2C1_SCL
+
| CAN0_TX_M0
+
|
+
| 11
+
|-
+
| 95
+
|
+
| UART8_TX_M1
+
| SPI2_MISO_M1
+
| GPIO2_D7
+
| style="background-color:#008000; color:#FFF;" | 29
+
|
+
| style="background-color:#000; color:#FFF;" | 30
+
| GND
+
|
+
|
+
|
+
|
+
|-
+
| 96
+
|
+
| UART8_RX_M1
+
| SPI2_CLK_M1
+
| GPIO3_A0
+
| style="background-color:#008000; color:#FFF;" | 31
+
|
+
| style="background-color:#008000; color:#FFF;" | 32
+
| GPIO3_C2
+
| SPI1_MISO_M1
+
| UART5_TX_M1
+
|
+
| 114
+
|-
+
| 115
+
|
+
| UART5_RX_M1
+
| SPI1_CLK_M1
+
| GPIO3_C3
+
| style="background-color:#008000; color:#FFF;" | 33
+
|
+
| style="background-color:#000; color:#FFF;" | 34
+
| GND
+
|
+
|
+
|
+
|
+
|-
+
| 100
+
|
+
|
+
|
+
| GPIO3_A4
+
| style="background-color:#008000; color:#FFF;" | 35
+
|
+
| style="background-color:#008000; color:#FFF;" | 36
+
| GPIO3_A2
+
|
+
|
+
|
+
| 98
+
|-
+
|
+
|
+
|
+
|
+
| SARADC_VIN5
+
| style="background-color:#008000; color:#FFF;" | 37
+
|
+
| style="background-color:#008000; color:#FFF;" | 38
+
| GPIO3_A6
+
|
+
|
+
|
+
| 102
+
|-
+
|
+
|
+
|
+
|
+
| GND
+
| style="background-color:#000; color:#FFF;" | 39
+
|
+
| style="background-color:#008000; color:#FFF;" | 40
+
| GPIO3_A5
+
|
+
|
+
|
+
| 101
+
|}
+
        </div>
+
    </div>
+
</div>
+
 
+
<div class="clearfix"></div>
+
 
+
==== More details about 40-pin Header In V1.3 ====
+
 
+
* Pins marked with color orange are designed for debug console.
+
* PWM; x7, PWM1/PWM2/PWM9/PWM12/PWM13/PWM14/PWM15
+
* SPI: x1, SPI3
+
* I2C: x3, I2C1/I2C2/I2C3
+
* UART: x6, UART0/UART3/UART5/UART7/UART8/UART9
+
* ADC: x1, SARADC_VIN5
+
* CAN: x2, CAN0/CAN1
+
* USB: x1, PIN#27 and PIN#28
+
** When we select this USB function, you need to modify the hardware like this.
+
*** Remove R90526 R90527
+
*** Add R90536 R90537
+
 
+
=== IO Voltage ===
+
 
+
RK3568 have three IO voltages, 1.8V/3.3V. For ROCK 3, the high level voltage of GPIO pin on 40-PIN HEADER is 3.3V.
+
 
+
<pre>
+
| GPIO      | Voltage Level | Tolerance |
+
| ---------- | ------------- | --------- |
+
| GPIO3_C0  | 3.3V          | 3.63V    |
+
| ADC_IN5    | 1.8V          | 1.98V    |
+
</pre>
+
 
+
=== GPIO number ===
+
 
+
Rockchip RK3568 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.19 kernel, the GPIO number can be calculated as below, take GPIO4_D1 (PIN26 on 4-0PIN HEADER) as an example:
+
 
+
GPIO4_D1 = 4*32 + 3*8 + 1 = 153
+
(A=0, B=1, C=2, D=3)
+
 
+
To set GPIO4_D1 output
+
 
+
cd /sys/class/gpio
+
echo 153 > export
+
cd gpio153
+
echo out > direction
+
echo 1 > value    # output high
+
echo 0 > value    # output low
+

Latest revision as of 06:56, 12 February 2022