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

Строка 13: Строка 13:


=Именование gpio=
=Именование gpio=
К сожалению, четкого стандарта по именованию gpio не существует, но при работе с контроллерами WirenBoard стоит придерживаться следующих правил:
К сожалению, четкого стандарта по именованию gpio не существует. Номера, смещения и названия gpiochip стоит брать в таблицах: [[GPIO | Таблицы GPIO разных версий контроллера]].
* выводы gpio сгруппированы по банкам (''banks''; эквивалентно ''gpiochips'')
* каждый банк содержит 32 gpio. Нумерация банков начинается с 0.
 
==Вычисление номера gpio==
Для управления ножкой gpio нужно знать её номер. В рассматриваемых примерах будем работать с gpio ''A1_IN'' контроллера WB6.7 (''номер: 109; gpiochip 3, offset 13''):
Вычислим банк gpio и offset, зная номер (109):
<syntaxhighlight lang="bash">
# Поделим 109 на 32. Целая часть — номер банка, остаток - offset:
109.0 / 32.0 = 3, остаток 13
</syntaxhighlight>
 
То же самое справедливо и наоборот. Зная банк и offset (3 и 13, соответственно), можно вычислить номер gpio:
<syntaxhighlight lang="bash">
# Умножим номер банка на 32 и прибавим offset:
3 * 32 + 13 = 109
</syntaxhighlight>


=Работа из userspace=
=Работа из userspace=