wb_editors
556
правок
Fizikdaos (обсуждение | вклад) |
Vdromanov (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
<languages/> | <languages/> | ||
<translate> | <translate> | ||
=Страница находится в процессе редактирования!!=<!--T:40--> | |||
<!--T:4--> | |||
<b> Все GPIO (как и остальные порты Wiren Board) работают с напряжением 3.3V. Ни в коем случае не подключайте к GPIO напрямую сигналы, напряжением больше 3.3V! В случае необходимости подключения устройств, работающих с более высоким напряжением, необходимо использовать схемы согласования или подключать (для 5V) через резистор в 20 кОм и более </b> | |||
<!--T:1--> | <!--T:1--> | ||
В Wiren Board часть GPIO выведена на клеммники, часть выведена на разъёмы расширения, часть используется для служебных целей. | В Wiren Board часть GPIO выведена на клеммники, часть выведена на разъёмы расширения, часть используется для служебных целей. | ||
Строка 8: | Строка 13: | ||
Соответствие между номерами GPIO в Linux и их местоположением и функцией можно найти в статье [[GPIO]]. | Соответствие между номерами GPIO в Linux и их местоположением и функцией можно найти в статье [[GPIO]]. | ||
<!--T: | ==Работа из userspace== <!--T:6--> | ||
===Интерфейс sysfs в Linux === <!--T:6--> | ===Интерфейс sysfs в Linux === <!--T:6--> | ||
Строка 92: | Строка 94: | ||
</pre> | </pre> | ||
<!--T:13--> | |||
Пример: | |||
# Находим номер GPIO, соответсвующий вашей версии контролера нужному клеммнику в таблице [[GPIO|WB2.8]]. Для клеммника номер 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> | |||
====Интерфейс sysfs и прерывания==== <!--T:22--> | ====Интерфейс sysfs и прерывания==== <!--T:22--> | ||
Строка 107: | Строка 119: | ||
<!--T:25--> | <!--T:25--> | ||
Пример: | Пример работы с прерываниями: | ||
<pre> | <pre> | ||
root@wirenboard:~# echo 3 > /sys/class/gpio/export # экспортируем GPIO номер 3 (TB10 на WB3.3) | root@wirenboard:~# echo 3 > /sys/class/gpio/export # экспортируем GPIO номер 3 (TB10 на WB3.3) | ||
Строка 140: | Строка 152: | ||
<!--T:32--> | <!--T:32--> | ||
См. [http://olimex.wordpress.com/2012/09/11/imx233-olinuxino-gpios-faster-and-faster/] , [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/iMX233/gpio-mmap.h] | См. [http://olimex.wordpress.com/2012/09/11/imx233-olinuxino-gpios-faster-and-faster/] , [https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/iMX233/gpio-mmap.h] | ||
==Работа из ядра==<!--T:44--> | |||
===GPIO и Device Tree=== <!--T:33--> | ===GPIO и Device Tree=== <!--T:33--> | ||
<!--T:5--> | |||
На некоторых GPIO можно программно установить 47к подтяжку к +3.3В. См. [[Special:MyLanguage/Pin_pull-up|Pin_pull-up]]. | |||
<!--T:34--> | <!--T:34--> | ||
Строка 164: | Строка 181: | ||
}; | }; | ||
</pre> | </pre> | ||
</translate> | </translate> |