V2r gpio — различия между версиями

Материал из virt2real wiki
Перейти к: навигация, поиск
 
Строка 185: Строка 185:
  
  
 +
=== Установить состояние PWCTR (RTO) ===
 +
 +
 +
==== Текстовый формат ====
 +
set rto <num> <value>
 +
 +
{| class="wikitable"
 +
|-
 +
|Параметр||Возможные значения ||Назначение
 +
|-
 +
|num||0 - 3||Номер PWCTR (RTO)
 +
|-
 +
|value||0 - 1||значение 0 или 1
 +
|}
 +
 +
Например, установить PWCTR3 в состояние 1
 +
 +
echo "set rto 3 1" > /dev/v2r_gpio
 +
 +
==== Бинарный формат ====
 +
 +
Надо записать в файл /dev/v2r_gpio три байта
 +
 +
{| class="wikitable"
 +
|-
 +
|Байт||Возможные значения ||Назначение
 +
|-
 +
|0||6||id команды
 +
|-
 +
|1||0 - 3||номер PWCTR (RTO)
 +
|-
 +
|2||0-1|| значение
 +
|}
 +
 +
Например, установить PWCTR3 (RTO3) в состояние 1
 +
 +
echo -e "\x6\x3\x1" > /dev/v2r_gpio
  
  

Текущая версия на 07:46, 1 сентября 2014

Описание команд драйвера /dev/v2r_gpio

Содержание

Общая информация

Драйвер предназначен для управления GPIO Виртурилки. Установка режима вход/выход, запись значения.

Помимо GPIO, драйвер позволяет управлять вспомогательной системой вывода, называемые PWCTRL. Эта система недоступна на внешних пинах Виртурилки, её контакты разведены на плате и используются, в частности, для управления синим светодиодом.

Драйвер представляет собой файл устройства /dev/v2r_gpio. Так же драйвер создаёт файлы в PROC_FS, /proc/v2r_gpio/

Драйвер имеет два режима записи - текстовый и бинарный. Текстовый, в основном, используется для управления драйвером из консоли. Бинарный - из скриптов или программ на любом языке программирования.

Для чтения состояния GPIO можно использовать группу. Группа - это набор GPIO, состояние которых будет отображаться при чтении драйвера. По-умолчанию, в группу входят все имеющиеся GPIO.


Команды драйвера /dev/v2r_gpio

Установка режима вход/выход и запись значений

Текстовый формат

set gpio <num> <direction> <value>
Параметр Возможные значения Назначение
num 0 - 103 Номер GPIO
direction input, output направление, input - вход, output - выход
value 0 - 1 значение 0 или 1, используется только при direction=output

Например, установить GPIO91 как выход и записать туда 1

echo "set gpio 91 output 1" > /dev/v2r_gpio

Бинарный формат

Надо записать в файл /dev/v2r_gpio три байта

Байт Возможные значения Назначение
0 1 id команды
1 0 - 103 номер GPIO
2 0-3 бит 0 - направление (0 - input, 1 - output), бит 1 - состояние пина

Например, установить пин GPIO91 как выход и записать туда 1

echo -e "\x1\x5B\x3" > /dev/v2r_gpio

Например, установить пин GPIO91 как вход

echo -e "\x1\x5B\x0" > /dev/v2r_gpio


Очистка группы

Текстовый формат

group clear

Например, удалить все GPIO из группы

echo "group clear" > /dev/v2r_gpio

Бинарный формат

Байт Возможные значения Назначение
0 2 id команды

Например, удалить все GPIO из группы

echo -e "\x2" > /dev/v2r_gpio


Добавить все GPIO в группу

Текстовый формат

group init

Например, добавить все пины в группу

echo "group init" > /dev/v2r_gpio

Бинарный формат

Байт Возможные значения Назначение
0 4 id команды

Например, добавить все пины в группу

echo -e "\x4" > /dev/v2r_gpio


Добавить нужные GPIO в группу

Текстовый формат

group add gpio <num1> [<num2> <num3> ... ]
Параметр Возможные значения Назначение
num1 0 - 103 номер GPIO
num2 0 - 103 номер GPIO
num3 0 - 103 номер GPIO
num... 0 - 103 номер GPIO

Например, добавить GPIO 26, 27, 28 в группу

echo "group add gpio 26 27 28" > /dev/v2r_gpio

Бинарный формат

Байт Возможные значения Назначение
0 3 id команды
1 0 - 103 номер GPIO
... 0 - 103 номер GPIO

Например, добавить GPIO 26, 27 и 28 в группу

echo -e "\x3\x1a\x1b\x1c" > /dev/v2r_gpio


Установить режим вывода драйвера

Текстовый формат

output <mode>
Параметр Возможные значения Назначение
mode text, bin режим вывода, текстовый или бинарный

Например, установить бинарный режим вывода

echo "output bin" > /dev/v2r_gpio

Бинарный формат

Байт Возможные значения Назначение
0 5 id команды
1 0 - 1 режим вывода, 0 - текстовый, 1 - бинарный

Например, установить бинарный режим вывода

echo -e "\x5\x1" > /dev/v2r_gpio


Установить состояние PWCTR (RTO)

Текстовый формат

set rto <num> <value>
Параметр Возможные значения Назначение
num 0 - 3 Номер PWCTR (RTO)
value 0 - 1 значение 0 или 1

Например, установить PWCTR3 в состояние 1

echo "set rto 3 1" > /dev/v2r_gpio

Бинарный формат

Надо записать в файл /dev/v2r_gpio три байта

Байт Возможные значения Назначение
0 6 id команды
1 0 - 3 номер PWCTR (RTO)
2 0-1 значение

Например, установить PWCTR3 (RTO3) в состояние 1

echo -e "\x6\x3\x1" > /dev/v2r_gpio


Файлы драйвера в /proc/v2r_gpio

Драйвер создаёт файлы в PROC_FS, которые работают только в текстовом режиме и служат для упрощённой установки состояния GPUI и для мониторинга их текущего состояния.

# cd /proc/v2r_gpio
# ls
0    11  18  24  30  37  43  5   56  62  69  75  81  88  94   pwctr0
1    12  19  25  31  38  44  50  57  63  7   76  82  89  95   pwctr1
10   13  2   26  32  39  45  51  58  64  70  77  83  9   96   pwctr2
100  14  20  27  33  4   46  52  59  65  71  78  84  90  97   pwctr3
101  15  21  28  34  40  47  53  6   66  72  79  85  91  98
102  16  22  29  35  41  48  54  60  67  73  8   86  92  99
103  17  23  3   36  42  49  55  61  68  74  80  87  93  all


Файлы GPIO

Файлы 0 - 103 соответствуют GPIO. Внимание, GPIO влияют на функционирование оборудования. Изменение состояния GPIO не может привести к порче оборудования, но может вызвать непредвиденные результаты - потерю связи по Wi-Fi, некорректное функционирование сетевого интерфейса, отключение камеры, и т.д., так что использовать возможности драйвера надо чётко понимая что и для чего делаете!

Например, прочитать состояние GPIO91

# cat 91
0

Например, установить состояние GPIO91 в 1

# echo 1 > 91


Можно и в бинарном формате

# echo -e "\x1" > 91


Файл "all"

Файл "all" служит для чтения состояние всех GPIO, независимо от настроек режима вывода и содержимого группы GPIO драйвера. Вывод всегда только в текстовом формате и выводятся состояния всех GPIO. Запись в файл недоступна (т.е. read-only).

Например, получить состояния всех GPIO

# cat all
10000000000000010000000000000000000000000000000000000000000110000100000001110100000000000000000000010000


Файлы "pwctrX"

Всего имеется 4 линии PWCTRL (0 - 3), соответственно, за них отвечают файлы pwctr0, pwctr1, pwctr2, pwctr3

Для практического применения требуется только pwctr3, который отвечает за синий светодиод.

Например, зажечь синий светодиод

echo 1 > pwctr3

Например, потушить синий светодиод

echo 0 > pwctr3