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/3a/gpio"

< Rock3‎ | hardware‎ | 3a
m (Using OpenOCD via GPIO Port)
 
(2 intermediate revisions by the same user not shown)
Line 689: Line 689:
 
  echo 1 > value    # output high
 
  echo 1 > value    # output high
 
  echo 0 > value    # output low
 
  echo 0 > value    # output low
 +
 +
=== Using OpenOCD  via GPIO Port ===
 +
Example: if using GPIO1_A0 as swdio pin, GPIO1_A1 as swclk pin and GPIO0_B5 as nrst pin, specify:
 +
adapter driver linuxgpiod
 +
transport select swd
 +
 +
adapter gpio swdio 0 -chip 1
 +
adapter gpio swclk 1 -chip 1
 +
adapter gpio srst 13 -chip 0
 +
 +
(GPIO0_B5: 13 = B*8 + 5)

Latest revision as of 18:28, 1 June 2024


    ROCK 3 >  Hardware >  ROCK 3 Model A Main Board >  ROCK 3A GPIO

General purpose input-output (GPIO) connector

ROCK 3A has one 40-pin expansion header. Each pin is distinguished by color.

Hardware V1.2

GPIO number Function4 Function3 Function2 Function1 Pin# Pin# Function1 Function2 Function3 Function4 GPIO number
+3.3V 1 2 +5.0V
32 CAN1_RX_M0 UART3_RX_M0 I2C3_SDA_M0 GPIO1_A0 3 4 +5.0V
33 CAN1_TX_M0 UART3_TX_M0 I2C3_SCL_M0 GPIO1_A1 5 6 GND
111 UART3_TX_M1 PWM12_M0 GPIO3_B7 7 8 GPIO0_D1 UART2_TXD 25
GND 9 10 GPIO0_D0 UART2_RXD 24
116 UART7_TX_M1 PWM14_M0 GPIO3_C4 11 12 GPIO3_A3 99
117 UART7_RX_M1 PWM15_IR_M0 GPIO3_C5 13 14 GND
16 UART0_RX PWM1_M0 GPIO0_C0 15 16 GPIO3_A1 97
17 UART0_TX PWM2_M0 GPIO0_C1 17 18 GPIO3_B2 UART4_TX_M1 PWM9_M0 106
147 CAN1_TX_M1 SPI3_MOSI_M1 PWM15_IR_M1 GPIO4_C3 19 20 GND
149 UART9_TX_M1 SPI3_MISO_M1 PWM12_M1 GPIO4_C5 21 22 ADC_IN5
146 CAN1_RX_M1 SPI3_CLK_M1 PWM14_M1 GPIO4_C2 23 24 GPIO4_C6 PWM13_M1 SPI3_CS0_M1 UART9_RX_M1 150
GND 25 26 GPIO4_D1 SPI3_CS1_M1 153
14 USB_DP PWM2_M1 I2C2_SDA_M0 GPIO0_B6 27 28 GPIO0_B5 I2C2_SCL_M0 PWM1_M1 USB_DM 13
95 UART8_TX_M1 GPIO2_D7 29 30 GND
96 UART8_RX_M1 SPI2_CLK_M1 GPIO3_A0 31 32 GPIO3_C2 UART5_TX_M1 114
115 UART5_RX_M1 GPIO3_C3 33 34 GND
100 GPIO3_A4 35 36 GPIO3_A2 98
112 UART3_RX_M1 PWM13_M0 GPIO3_C0 37 38 GPIO3_A6 102
GND 39 40 GPIO3_A5 101

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 2.0: x1, USB_DP(PIN#27) + USB_DM(PIN#28)
    • When we select this USB function, you need to modify the hardware like this.
      • Remove R90526 R90527
      • Add R90536 R90537

Hardware V1.3/V1.31

GPIO number Function4 Function3 Function2 Function1 Pin# Pin# Function1 Function2 Function3 Function4 GPIO number
+3.3V 1 2 +5.0V
32 CAN1_RX_M0 UART3_RX_M0 I2C3_SDA_M0 GPIO1_A0 3 4 +5.0V
33 CAN1_TX_M0 UART3_TX_M0 I2C3_SCL_M0 GPIO1_A1 5 6 GND
13 PWM1_M1 I2C2_SCL_M0 GPIO0_B5 7 8 GPIO0_D1 UART2_TXD 25
GND 9 10 GPIO0_D0 UART2_RXD 24
116 UART7_TX_M1 PWM14_M0 GPIO3_C4 11 12 GPIO3_A3 99
117 UART7_RX_M1 PWM15_IR_M0 GPIO3_C5 13 14 GND
16 UART0_RX PWM1_M0 GPIO0_C0 15 16 GPIO0_B6 I2C2_SDA_M0 PWM2_M1 14
+3.3V 17 18 GPIO3_B2 UART4_TX_M1 PWM9_M0 106
147 CAN1_TX_M1 SPI3_MOSI_M1 PWM15_IR_M1 GPIO4_C3 19 20 GND
149 UART9_TX_M1 SPI3_MISO_M1 PWM12_M1 GPIO4_C5 21 22 GPIO0_C1 PWM2_M0 UART0_TX 17
146 CAN1_RX_M1 SPI3_CLK_M1 PWM14_M1 GPIO4_C2 23 24 GPIO4_C6 PWM13_M1 SPI3_CS0_M1 UART9_RX_M1 150
GND 25 26 GPIO4_D1 SPI3_CS1_M1 153
12 USB_DP CAN0_RX_M0 I2C1_SDA GPIO0_B4 27 28 GPIO0_B3 I2C1_SCL CAN0_TX_M0 USB_DM 11
95 UART8_TX_M1 GPIO2_D7 29 30 GND
96 UART8_RX_M1 GPIO3_A0 31 32 GPIO3_C2 UART5_TX_M1 114
115 UART5_RX_M1 SPI1_CLK_M1 GPIO3_C3 33 34 GND
100 GPIO3_A4 35 36 GPIO3_A2 98
SARADC_VIN5 37 38 GPIO3_A6 102
GND 39 40 GPIO3_A5 101

More details about 40-pin Header In V1.3/V1.31

  • 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 2.0: x1, USB_DP(PIN#27) + USB_DM(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.

| GPIO       | Voltage Level | Tolerance |
| ---------- | ------------- | --------- |
| GPIO3_C0   | 3.3V          | 3.63V     |
| ADC_IN5    | 1.8V          | 1.98V     |

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

Using OpenOCD via GPIO Port

Example: if using GPIO1_A0 as swdio pin, GPIO1_A1 as swclk pin and GPIO0_B5 as nrst pin, specify:

adapter driver linuxgpiod
transport select swd

adapter gpio swdio 0 -chip 1
adapter gpio swclk 1 -chip 1
adapter gpio srst 13 -chip 0 

(GPIO0_B5: 13 = B*8 + 5)