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

Нет описания правки
Строка 12: Строка 12:


=Именование gpio=<!--T:6-->
=Именование gpio=<!--T:6-->
К сожалению, четкого стандарта по именованию gpio не существует, и формирование номеров gpio зависит от производителей процессоров (а точнее - от разработчиков SDK для них). В контроллерах WirenBoard используются следующие правила:
К сожалению, четкого стандарта по именованию gpio не существует, но при работе с контроллерами WirenBoard стоит придерживаться следующих правил:
* выводы gpio сгруппированы по банкам (banks; эквивалентно gpiochips)
* выводы gpio сгруппированы по банкам (''banks''; эквивалентно ''gpiochips'')
* каждый банк содержит 32 gpio. Нумерация банков начинается с 0.
* каждый банк содержит 32 gpio. Нумерация банков начинается с 0.


==Вычисление номера gpio==<!--T:6-->
==Вычисление номера gpio==<!--T:6-->
Для управления ножкой gpio нужно знать её номер. В рассматриваемых примерах будем работать с gpio A1_IN контроллера WB6.7 (номер: 109; gpio3_io13):
Для управления ножкой gpio нужно знать её номер. В рассматриваемых примерах будем работать с gpio ''A1_IN'' контроллера WB6.7 (номер: 109; gpiochip 3, offset 13):


<!--T:7-->
<!--T:7-->
Строка 23: Строка 23:
<pre>
<pre>
# Поделим 109 на 32. Целая часть - номер банка, остаток - offset:
# Поделим 109 на 32. Целая часть - номер банка, остаток - offset:
109.0 / 32.0 = 3, остаток 13
109.0 / 32.0 = '''3''', остаток '''13'''
</pre>
</pre>


wb_editors
556

правок