Khadas Docs

Amazing Khadas, always amazes you!

User Tools

Site Tools


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

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
products:sbc:common:applications:gpio:40pin-header [2022/07/08 02:30]
hyphop [Control GPIO]
products:sbc:common:applications:gpio:40pin-header [2026/02/23 21:18] (current)
gray old revision restored (2024/08/12 03:08)
Line 1: Line 1:
 {{indexmenu_n>1}} {{indexmenu_n>1}}
  
 +====== GPIO Header ======
  
-====== 40-Pin Header ======+====== GPIO usage examples ======
  
-===== Introduction =====+<WRAP important > 
 +Please make sure that the GPIOs you want to use are not configured as other functions, if they are, you can follow [[products:sbc:common:configurations:device-tree-overlay|Device Tree Overlay]] to configure them as normal GPIOs. 
 +</WRAP>
  
-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.+When you get the GPIO number, you can follow the steps below to control it. Here we take GPIO number ''465'' as an example.
  
-===== Preparation ===== +===== Export GPIO =====
- +
-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. +
- +
-<tabbox 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       |       | +
- +
-<tabbox 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       |        | +
- +
-<tabbox 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      |       | +
- +
-<tabbox VIM4>  +
-{{ :products:sbc:vim4:hardware:vim4-gpio.png?300|}} +
-^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      |       | +
- +
-<tabbox 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)                    |        | +
- +
-</tabbox> +
- +
-===== 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:**+
  
 ```shell ```shell
 $ echo 465 | sudo tee /sys/class/gpio/export $ echo 465 | sudo tee /sys/class/gpio/export
 ``` ```
-**Set GPIO direction:**\\ + 
-You can set the direction input or output.+===== Set-up GPIO direction ===== 
 + 
 +We can configure direction as input or output.
  
 ```shell ```shell
 $ echo out | sudo tee /sys/class/gpio/gpio465/direction # Set GPIO 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+$ echo in  | sudo tee /sys/class/gpio/gpio465/direction # Set GPIO input
 ``` ```
  
-**Set or get GPIO value:**+===== Set GPIO value ===== 
 ```shell ```shell
 $ echo 1 | sudo tee /sys/class/gpio/gpio465/value # Set GPIO output high $ 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 $ echo 0 | sudo tee /sys/class/gpio/gpio465/value # Set GPIO output low
 +```
 +
 +===== Get GPIO value =====
 +
 +```shell
 $ cat /sys/class/gpio/gpio465/value # Get GPIO input value $ cat /sys/class/gpio/gpio465/value # Get GPIO input value
 ``` ```
  
-**Unexport GPIO:**+===== Unexport GPIO =====  
 ```shell ```shell
 $ echo 465 | sudo tee /sys/class/gpio/unexport $ echo 465 | sudo tee /sys/class/gpio/unexport
 ``` ```
 +
 +===== Troubleshooting =====
 +
 +If you got the similar error below, it means that the PIN you try to export is used for another function, you need to edit [[products:sbc:common:configurations:device-tree-overlay|Device Tree Overlay]] configuration file to set the PIN as normal GPIO.
 +
 +```shell
 +$ echo 465 | sudo tee /sys/class/gpio/export 
 +tee: /sys/class/gpio/export: Invalid argument
 +```
 +
Last modified: 2022/07/08 02:30 by hyphop