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
Next revision Both sides next revision
products:sbc:common:applications:gpio:40pin-header [2022/07/12 00:46]
hyphop [40-Pin Header]
products:sbc:common:applications:gpio:40pin-header [2023/08/16 06:30]
jacobe [Set-up GPIO direction]
Line 1: Line 1:
 {{indexmenu_n>1}} {{indexmenu_n>1}}
  
 +====== GPIO Header ======
  
-====== 40-Pin Header ====== +===== GPIO usage examples =====
- +
- +
- +
-===== Introduction ===== +
- +
-This document will introduce the 40-Pin GPIO Header of Khadas SBC. You can find the GPIO number of the available GPIOs on the 40-Pin Header and will show you how the usage+
- +
-===== Preparation ===== +
- +
-First of all, you need to get the correct GPIO numbers of the GPIOs you want to use. You can get them from the table below. +
- +
-<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  |    |  21  |  GND              | +
-|              5v  |    |  22  |  PIN.DV25  |   474 +
-|          USB_DM  |    |  23  |  PIN.DV24  |   473 +
-|          USB_DP  |    |  24  |  GND              | +
-|             GND  |    |  25  |  PIN.DV27  |   476 +
-|  470  |  PIN.DV21  |    |  26  |  PIN.DV26  |   475 +
-|  471  |  PIN.DV22  |    |  27  |  3.3V      |        | +
-|  472  |  PIN.DV23  |    |  28  |  GND              | +
-|             GND  |    |  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      |  21  |  GND      |       | +
-|              5V  |    |  22  |  PIN.A15  |  475  | +
-|          USB_DM  |    |  23  |  PIN.A14  |  474  | +
-|          USB_DP  |    |  24  |  GND      |       | +
-|             GND  |    |  25  |  PIN.AO2  |  498  | +
-|          MCU3V3  |    |  26  |  PIN.AO3  |  499  | +
-|         MCUNRST  |    |  27  |  3V3      |       | +
-|         MCUSWIM  |    |  28  |  GND      |       | +
-|             GND  |    |  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>  +
-^GPIO ^Name  ^Pin  ^Pin  ^Name  ^GPIO  ^ +
-|              5V  |    |  21  |  GND      |       | +
-|              5V  |    |  22  |  PIN.Y17  |  501  | +
-|         HUB_D4N  |    |  23  |  PIN.Y18  |  502  | +
-|         HUB_D4P  |    |  24  |  GND      |       | +
-|             GND  |    |  25  |  PIN.T20  |  466  | +
-|          VCCMCU  |    |  26  |  PIN.T21  |  467  | +
-|        MCUBOOT0  |    |  27  |  3V3      |       | +
-|        MCUSWDIO  |    |  28  |  GND      |       | +
-|             GND  |    |  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  |    |  21  |  GND(0V)                    |        | +
-|                       5V  |    |  22  |  SPI3_RXD/I2C0_SCK/GPIO1_C0 |   48   | +
-|                 HOST1_DM  |    |  23  |  SPI3_TXD/I2C0_SDA/GPIO1_B7 |   47   | +
-|                 HOST1_DP  |    |  24  |  GND(0V)                    |        | +
-|                  GND(0V)  |    |  25  |  I2C2_SCL/GPIO2_A1          |   65   | +
-|                   MCU_TX  |    |  26  |  I2C2_SDA/GPIO2_A0          |   64   | +
-|                 MCU_NRST  |    |  27  |  3.3V                              | +
-|                 MCU_SWIM  |    |  28  |  GND(0V)                    |        | +
-|                  GND(0V)  |    |  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 =====+
  
 <WRAP important > <WRAP important >
-Please make sure that the GPIOs you want to use are not configured as other functions, if they are configured as other function, you can follow [[products:sbc:common:configurations:device-tree-overlay|Device Tree Overlay]] to configure them as GPIOs.+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> </WRAP>
  
 +When you get the GPIO number, you can follow the steps below to control it. Here we take GPIO number ''465'' as an example.
  
 +==== Export 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.+```shell 
 +$ echo 111 | sudo tee /sys/class/gpio/export 
 +```
  
-**Export GPIO:**+==== Set-up GPIO direction ==== 
 + 
 +We can configure direction as input or output.
  
 ```shell ```shell
-$ echo 465 | sudo tee /sys/class/gpio/export+$ echo out | sudo tee /sys/class/gpio/gpio111/direction # Set GPIO output 
 +$ echo in  | sudo tee /sys/class/gpio/gpio111/direction # Set GPIO input
 ``` ```
-**Set GPIO direction:**\\ + 
-You can set the direction input or output.+==== Set GPIO value ====
  
 ```shell ```shell
-$ echo out | sudo tee /sys/class/gpio/gpio465/direction # Set GPIO output +$ echo | sudo tee /sys/class/gpio/gpio465/value # Set GPIO output high 
-$ echo in | sudo tee /sys/class/gpio/gpio465/direction # Set GPIO input+$ echo | sudo tee /sys/class/gpio/gpio465/value # Set GPIO output low
 ``` ```
  
-**Set or get GPIO value:**+==== Get GPIO value ==== 
 ```shell ```shell
-$ 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 $ 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
 +khadas@Khadas:~$ echo 465 | sudo tee /sys/class/gpio/export 
 +tee: /sys/class/gpio/export: Invalid argument
 +```
 +
Last modified: 2023/08/16 06:33 by jacobe