wb_editors
556
правок
Vdromanov (обсуждение | вклад) |
Vdromanov (обсуждение | вклад) |
||
Строка 12: | Строка 12: | ||
<!--T:2--> | <!--T:2--> | ||
Соответствие между номерами GPIO в Linux и их местоположением и функцией можно найти в статье [[GPIO]]. | Соответствие между номерами GPIO в Linux и их местоположением и функцией можно найти в статье [[GPIO]]. | ||
=Именование gpio=<!--T:6--> | |||
К сожалению, четкого стандарта по именованию gpio не существует, и формирование номеров gpio зависит от производителей процессоров (а точнее - от разработчиков SDK для них). В контроллерах WirenBoard используются следующие правила: | |||
* выводы gpio сгруппированы по банкам (banks; эквивалентно gpiochips) | |||
* каждый банк содержит 32 gpio. Нумерация банков начинается с 0. | |||
==Вычисление номера gpio==<!--T:6--> | |||
Для управления ножкой gpio нужно знать её номер. В рассматриваемых примерах будем работать с gpio A1_IN контроллера WB6.7 (номер: 109; gpio3_io13): | |||
<!--T:7--> | |||
Вычислим банк gpio и offset, зная номер (109): | |||
<pre> | |||
# Поделим 109 на 32. Целая часть - номер банка, остаток - offset: | |||
109.0 / 32.0 = 3, остаток 13 | |||
</pre> | |||
=Работа из userspace=<!--T:6--> | =Работа из userspace=<!--T:6--> |