This is an old revision of the document!
This document will introduce how to control the 40-Pin Header of Khadas SBC. You will know the number value of the available GPIO on the 40-Pin Header and the control and test methods.
Before controlling the GPIO, we first need to get to the number of the GPIO. Refer to the table below to find the number value of the GPIO you need to control.
GPIO | Name | Physical | Physical | Name | GPIO |
---|---|---|---|---|---|
5V | 1 | 21 | GND | ||
5V | 2 | 22 | PIN.DV25 | 474 | |
HUB_DM1 | 3 | 23 | PIN.DV24 | 473 | |
HUB_DP1 | 4 | 24 | GND | ||
GND | 5 | 25 | PIN.DV27 | 476 | |
5V | 6 | 26 | PIN.DV26 | 475 | |
HUB_DM2 | 7 | 27 | 3.3V | ||
HUB_DP2 | 8 | 28 | GND | ||
GND | 9 | 29 | PIN.H7 | 423 | |
ADC.CH0 | 10 | 30 | PIN.H6 | 422 | |
GND | 11 | 31 | PIN.H9 | 425 | |
ADC.CH2 | 12 | 32 | PIN.H8 | 424 | |
420 | PIN.H4 | 13 | 33 | PIN.AO6 | 507 |
GND | 14 | 34 | GND | ||
506 | PIN.AO5 | 15 | 35 | PIN.AO3 | 504 |
505 | PIN.AO4 | 16 | 36 | RTC_CLK | |
GND | 17 | 37 | PIN.H5 | 421 | |
502 | PIN.AO1 | 18 | 38 | PWR_EN | |
503 | PIN.AO2 | 19 | 39 | PWM_F | |
3.3V | 20 | 40 | GND |
GPIO | Name | Physical | Physical | Name | GPIO |
---|---|---|---|---|---|
5V | 1 | 21 | GND | ||
5v | 2 | 22 | PIN.DV25 | 474 | |
USB_DM | 3 | 23 | PIN.DV24 | 473 | |
USB_DP | 4 | 24 | GND | ||
GND | 5 | 25 | PIN.DV27 | 476 | |
470 | PIN.DV21 | 6 | 26 | PIN.DV26 | 475 |
471 | PIN.DV22 | 7 | 27 | 3.3V | |
472 | PIN.DV23 | 8 | 28 | GND | |
GND | 9 | 29 | PIN.H7 | 423 | |
ADC0 | 10 | 30 | PIN.H6 | 422 | |
1.8V | 11 | 31 | PIN.H9 | 425 | |
ADC1 | 12 | 32 | PIN.H8 | 424 | |
420 | PIN.H4 | 13 | 33 | PIN.AO6 | 507 |
GND | 14 | 34 | GND | ||
506 | PIN.AO5 | 15 | 35 | PIN.DV29 | 478 |
505 | PIN.AO4 | 16 | 36 | RTC_CLK | |
GND | 17 | 37 | PIN.H5 | 421 | |
502 | PIN.AO1 | 18 | 38 | EXP_INT | |
501 | PIN.AO0 | 19 | 39 | PIN.DV13 | 462 |
3.3v | 20 | 40 | GND |
GPIO | Name | Physical | Physical | Name | GPIO |
---|---|---|---|---|---|
5V | 1 | 21 | GND | ||
5V | 2 | 22 | PIN.A15 | 475 | |
USB_DM | 3 | 23 | PIN.A14 | 474 | |
USB_DP | 4 | 24 | GND | ||
GND | 5 | 25 | PIN.AO2 | 498 | |
MCU3V3 | 6 | 26 | PIN.AO3 | 499 | |
MCUNRST | 7 | 27 | 3V3 | ||
MCUSWIM | 8 | 28 | GND | ||
GND | 9 | 29 | PIN.A1 | 461 | |
ADC0 | 10 | 30 | PIN.A0 | 460 | |
1V8 | 11 | 31 | PIN.A3 | 463 | |
ADC1 | 12 | 32 | PIN.A2 | 462 | |
506 | PIN.AO10 | 13 | 33 | PIN.A4 | 464 |
GND3 | 14 | 34 | GND | ||
433 | PIN.H6 | 15 | 35 | PWM-F | 432 |
434 | PIN.H7 | 16 | 36 | RTC | |
GND | 17 | 37 | PIN.H4 | 431 | |
497 | PIN.AO1 | 18 | 38 | MCU-FA1 | |
496 | PIN.AO0 | 19 | 39 | PIN.Z15 | 426 |
3V3 | 20 | 40 | GND |
GPIO | Name | Pin | Pin | Name | GPIO num |
---|---|---|---|---|---|
5V | 1 | 21 | GND | ||
5V | 2 | 22 | PIN.Y17 | 501 | |
HUB_D4N | 3 | 23 | PIN.Y18 | 502 | |
HUB_D4P | 4 | 24 | GND | ||
GND | 5 | 25 | PIN.T20 | 466 | |
VCCMCU | 6 | 26 | PIN.T21 | 467 | |
MCUBOOT0 | 7 | 27 | 3V3 | ||
MCUSWDIO | 8 | 28 | GND | ||
GND | 9 | 29 | PIN.T1 | 447 | |
ADC_CH6 | 10 | 30 | PIN.T0 | 446 | |
VDD1V8 | 11 | 31 | PIN.T3 | 449 | |
ADC_CH3 | 12 | 32 | PIN.T2 | 448 | |
420 | SPDIFOUT | 13 | 33 | PIN.T4 | 450 |
GND | 14 | 34 | GND | ||
491 | PIN.Y7 | 15 | 35 | PIN.Y8 | 482 |
490 | PIN.Y6 | 16 | 36 | PIN.T18 | 464 |
GND | 17 | 37 | PIN.T19 | 465 | |
413 | PIN.D1 | 18 | 38 | PWR_EN1 | |
414 | PIN.D2 | 19 | 39 | PIN.D15 | 417 |
3V3 | 20 | 40 | GND |
GPIO | Name | Physical | Physical | Name | GPIO |
---|---|---|---|---|---|
5V | 1 | 21 | GND(0V) | ||
5V | 2 | 22 | SPI3_RXD/I2C0_SCK/GPIO1_C0 | 48 | |
HOST1_DM | 3 | 23 | SPI3_TXD/I2C0_SDA/GPIO1_B7 | 47 | |
HOST1_DP | 4 | 24 | GND(0V) | ||
GND(0V) | 5 | 25 | I2C2_SCL/GPIO2_A1 | 65 | |
MCU_TX | 6 | 26 | I2C2_SDA/GPIO2_A0 | 64 | |
MCU_NRST | 7 | 27 | 3.3V | ||
MCU_SWIM | 8 | 28 | GND(0V) | ||
GND(0V) | 9 | 29 | I2S0_SCLK/GPIO3_D0 | 120 | |
ADC_IN2 | 10 | 30 | I2S_CLK/GPIO4_A0 | 128 | |
1.8V | 11 | 31 | I2S0_SDO0/GPIO3_D7 | 127 | |
ADC_IN3 | 12 | 32 | 2S0_LRCK_TX/GPIO3_D2 | 122 | |
112 | SPDIF/GPIO3_C0 | 13 | 33 | I2S0_SDI0/GPIO3_D3 | 123 |
GND(0V | 14 | 34 | GND(0V) | ||
50 | SPI3_CS/GPIO1_C2 | 15 | 35 | I2S0_SDI3SDO1/GPIO3_D6 | 126 |
49 | SPI3_CLK/GPIO1_C1 | 16 | 36 | 2S0_SDI2SDO2/GPIO3_D5 | 125 |
GND(0V) | 17 | 37 | I2S0_SDI1SDO3/GPIO3_D4 | 124 | |
UART_RX | 18 | 38 | I2S0_LRCK_RX/GPIO3_D1 | 121 | |
UART_TX | 19 | 39 | MCU_PA1 | ||
3.3V | 20 | 40 | GND(0V) |
When you get the GPIO number, you can follow the steps below to control it. Here will take GPIO number 465
as a example.
Export GPIO:
$ echo 465 | sudo tee /sys/class/gpio/export
Set GPIO direction.
You can set the direction input or output.
$ echo out | sudo tee /sys/class/gpio/gpio465/direction # Set GPIO output $ echo in | sudo tee /sys/class/gpio/gpio465/direction # Set GPIO input
Set or get GPIO value:
$ echo 1 | sudo tee /sys/class/gpio/gpio465/value # Set GPIO output high $ echo 0 | sudo tee /sys/class/gpio/gpio465/value # Set GPIO output low $ cat /sys/class/gpio/gpio465/value # Get GPIO input value
Unexport GPIO:
$ echo 465 | sudo tee /sys/class/gpio/unexport