Работа с GPIO: различия между версиями

Нет описания правки
Строка 155: Строка 155:
Определим сигнал 6@UEXT2 (SDA) в качестве источника прерываний для драйвера mrf24j40. Согласно таблице [[Special:MyLanguage/Список GPIO|Список GPIO]], сигнал соответствует GPIO 53 процессора. 53 принадлежит второму банку gpio (от 32 до 63). Номер GPIO внутри банка 53-32=21 :
Определим сигнал 6@UEXT2 (SDA) в качестве источника прерываний для драйвера mrf24j40. Согласно таблице [[Special:MyLanguage/Список GPIO|Список GPIO]], сигнал соответствует GPIO 53 процессора. 53 принадлежит второму банку gpio (от 32 до 63). Номер GPIO внутри банка 53-32=21 :


<!--T:38-->
<pre>
<pre>
6lowpan@0 {
6lowpan@0 {
Строка 165: Строка 164:
};
};
</pre>
</pre>
==Пример работы в Linux== <!--T:11-->
<!--T:12-->
Смотрите [[GPIO|GPIO]].
<!--T:13-->
# Находим номер GPIO, соответсвующий нужному клеммнику в таблице [[Special:MyLanguage/Список GPIO|WB2.8]]/[[WB SH 3.5: Список GPIO|WB3.5]]/[[Wiren Board 4: Список GPIO|WB4]]/[[Wiren Board 5:Список GPIO|WB5]]. Для клеммника номер 2 в версии 2.8 это GPIO 32.
# Экспортируем GPIO в sysfs
#:<pre>root@wirenboard:~# echo 32 > /sys/class/gpio/export</pre>
# Устанавливаем GPIO в режим вывода для управления транзистором. Это обязательно, т.к. GPIO может находится в режиме ввода и иметь высокий импенданс, оставляя транзистор в неопределённом состоянии.
#:<pre>root@wirenboard:~# echo out > /sys/class/gpio/gpio32/direction</pre>
# Открываем транзистор, подавая логический высокий уровень на затвор:
#:<pre>root@wirenboard:~# echo 1 > /sys/class/gpio/gpio32/value</pre>
# Закрываем транзистор, подавая логический ноль на затвор:
#:<pre>root@wirenboard:~# echo 0 > /sys/class/gpio/gpio32/value</pre>
</translate>
</translate>