Khadas Docs

Amazing Khadas, always amazes you!

User Tools

Site Tools


Sidebar

products:sbc:common:applications:gpio:40pin-header

This is an old revision of the document!


40-Pin Header

Introduction

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.

Preparation

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.

VIM1

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

VIM2

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

VIM3/3L

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

VIM4

GPIO Name Pin Pin Name GPIO
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

Edge1

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)

Control GPIO

When you get the GPIO number, you can follow the steps below to control it. Here will take GPIO number 465 as an 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
Last modified: 2022/07/06 05:45 by nick