|
|
(13 intermediate revisions by 5 users not shown) |
Line 1: |
Line 1: |
− | {{rockpi4_header}}
| + | #redirect [[Rock4/hardware/gpio]] |
− | {{Languages|rockpi4/hardware/gpio}}
| + | |
− | | + | |
− | [[rockpi4 | ROCK Pi 4]] > [[rockpi4/hardware | Hardware]] > [[rockpi4/hardware/gpio | GPIO]]
| + | |
− | | + | |
− | | + | |
− | === <span id="gpio">General purpose input-output (GPIO) connector</span> ===
| + | |
− | | + | |
− | ROCK Pi 4 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 || GPIO4_A3 || I2S1_SCLK || || 131
| + | |
− | |-
| + | |
− | | 150 || || PWM1 || GPIO4_C6 || 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 || SPI1_TXD || GPIO1_B0 || style="background:green; color:white"|19 || ||style="background:black; color:white"|20 || || GND || ||
| + | |
− | |-
| + | |
− | |39 || UART4_RXD || SPI1_RXD || GPIO1_A7 || style="background:green; color:white"|21 || || style="background:green; color:white"|22 || GPIO4_D5 || || || 157
| + | |
− | |-
| + | |
− | |41 || || SPI1_CLK || GPIO1_B1 || style="background:green; color:white"|23 || || style="background:green; color:white"|24 || GPIO1_B2 || 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 || GPIO4_A4 || I2S1_LRCK_RX || || 132
| + | |
− | |-
| + | |
− | | 158 || || || GPIO4_D6 || style="background:green; color:white"|37 || || style="background:green; color:white"|38 || GPIO4_A6 || I2S1_SDI || || 134
| + | |
− | |-
| + | |
− | | || || GND || || style="background:black; color:white"|39 || ||style="background:green; color:white"|40 || GPIO4_A7 || I2S1_SDO || || 135
| + | |
− | |}
| + | |
− | | + | |
− | === IO Voltage ===
| + | |
− | RK3399 have three IO voltages, 1.8V/3.0V/3.3V. For ROCK Pi 4, below is the default voltage:
| + | |
− | | + | |
− | <pre>
| + | |
− | | GPIO | Voltage Level | Tolerance |
| + | |
− | | ---------- | ------------- | --------- |
| + | |
− | | GPIO3_C0 | 3.3V | 3.465V |
| + | |
− | | ADC_IN0 | 1.8V | 1.98V |
| + | |
− | | Other GPIO | 3.0V | 3.14V |
| + | |
− | | + | |
− | | + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | === 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)
| + | |
− | | + | |
− | [[File:Screenshot_2020-04-12_01-06-09.png|800px]]
| + | |
− | | + | |
− | 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 [[Rockpi4/dev/libmraa | Libmraa]] ====
| + | |