To control on the GPIO pins:
The external GPIOs are available under the /sys/class/gpio folder in Linux.
To control on the GPIO pins you need to calculate the GPIO number XX (*) and run the commands below:
# Export GPIO XX echo XX > /sys/class/gpio/export # Set GPIO pin Direction echo "out" > /sys/class/gpio/gpioXX/direction or echo "in" > /sys/class/gpio/gpioXX/direction # Set the value of an output pin echo 1 > /sys/class/gpio/gpioXX/value or echo 0 > /sys/class/gpio/gpioXX/value # Get the value of an input pin cat > /sys/class/gpio/gpioXX/value # Unexport GPIO XX echo XX > /sys/class/gpio/unexport
You can calculate the GPIO number XX:
XX = linux gpio number = (gpio_bank - 1) * 32 + gpio_bit
Example: to calculate the GPIO number of pin header ####
Pad Name :
GPIO Bank = #######
GPIO bit = #######
XX = ##############
Attached here the header schematics
26 pin header
Header Pin | Pad Name | Linux GPIO number |
---|---|---|
J2 [pin 1] | 3.3V | # |
J2 [pin 2] | 5V | # |
J2 [pin 3] | I2C_SDA | # |
J2 [pin 4] | 5V | # |
J2 [pin 5] | I2C_SCL | # |
J2 [pin 6] | GND | # |
J2 [pin 7] | GPIO 1 | # |
J2 [pin 8] | UART TX | # |
J2 [pin 9] | GND | # |
J2 [pin 10] | UART RX | # |
J2 [pin 12] | GPIO 72 | # |
J2 [pin 13] | GPIO 71 | # |
J2 [pin 14] | GND | # |
J2 [pin 15] | GPIO 10 | # |
J2 [pin 16] | GPIO 194* | # |
J2 [pin 17] | 3.3V | # |
J2 [pin 18] | GPIO 195* | # |
J2 [pin 19] | SPI_MOSI | # |
J2 [pin 20] | GND | # |
J2 [pin 21] | SPI_MISO | # |
J2 [pin 22] | GPIO 67 | # |
J2 [pin 23] | SPI_SCLK | # |
J2 [pin 24] | ECSPI2_SS0 | # |
J2 [pin 25] | GND | # |
J2 [pin 26] | ECSPI2_SS1 | # |