OpenWrt - GPIO
Obsługa GPIO w OpenWrtOstatnia zmiana: 2013-05-02 13:48
1. Włączenie obsługi GPIO
2. Linia wyjściowa
3. Linia wejściowa
4. Zwolnienie linii
GPIO (General Purpose Input/Output) są uniwersalnymi liniami wyprowadzonymi z procesora, które zwykle wykorzystywane są przez system operacyjny do sterowania innymi komponentami systemu. Może to być przełącznik, może to być realizacja magistrali np. i2c lub 1-wire, SDMOD albo od innych celów. Takie linie są zwykle programowalne i można jest ustawić jako wejście lub wyjście. Lini jest zwykle 8 do 22, część jest całkowicie wolna i można je wykorzystać do własnych celów.
Najważniejsze aby system miał wkompilowaną obsługę GPIO. Jeżeli istnieje katalog /sys/class/gpio to możemy programowo sterować liniami z wykorzystaniem mechanizmu tzw. "sysfs".
Włączenie obsługi GPIO
Aby sterować linią należy je najpierw udostępnić do przestrzeni użytkownika ("wyeksportować"). Robi się to podając odpowiedni numer GPIO do pliku export w w/w katalogu (w tym przykładzie gpio o numerze 2):
# echo "2" > /sys/class/gpio/export
Linia wyjściowa
Linię można zdefiniować jako wyjście poleceniem:
# echo out > /sys/class/gpio/gpio2/direction
# echo 1 > /sys/class/gpio/gpio2/value
# echo 0 > /sys/class/gpio/gpio2/value
Należy pamiętać że włączona linia ma napięcie zwykle 3.3V (takie jak router), oraz ma niewielką obciążalność prądową (rzędu kilku - kilkunastu mA).
Linia wejściowa
Linię można zdefiniować jako wejście poleceniem:
# echo in > /sys/class/gpio/gpio2/direction
# cat /sys/class/gpio/gpio2/value
Zwolnienie linii
Jeżeli nie używamy już linii można "oddać" ją systemowi poleceniem
# echo "2" > /sys/class/gpio/unexport
Patrz także GPIO w zastosowaniach
Zobacz także obsługę przycisków oraz LED - one także są sterowane przez GPIO!