|
|
(9 intermediate revisions by 2 users 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 3A GPIO]]
| + | |
− | | + | |
− | == <span id="gpio">General purpose input-output (GPIO) connector</span> ==
| + | |
− | | + | |
− | ROCK 3 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_CLK_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 ====
| + | |
− | | + | |
− | * Pins marked with color orange are designed for debug console.
| + | |
− | * PWM; x6, PWM1/PWM2/PWM12/PWM13/PWM14/PWM15
| + | |
− | * SPI: x1, SPI3
| + | |
− | * I2C: x2, I2C2/I2C3
| + | |
− | * UART: x5, UART0/UART3/UART5/UART7/UART9
| + | |
− | * ADC: x1, ADC_IN5
| + | |
− | * CAN: x1, CAN1
| + | |
− | * USB: x1, PIN#25 and PIN#27
| + | |
− | ** 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
| + | |