Настройка портов I/O (GPIO)
В роутерах LT70, LT71 каждая из 9 линий ввода-вывода I/O может быть запрограммирована на вход или на выход с возможностью работы в одном из следующих режимов:
- режим измерения напряжения (АЦП, по умолчанию для всех GPIO)
- режим определения состояния входной линии типа "сухой контакт"
- режим управления нагрузкой (выход "открытый коллектор").
Настройка портов I/O производится как через веб-интерфейс, так и с помощью командной строки.
Настройка портов I/O через веб-интерфейс
Чтобы настроить режим работы линий ввода-вывода через веб-интерфейс:
- Откройте меню Службы → I/O Lines.
- В колонке Режим выберите требуемый режим из выпадающего списка:
- АЦП – режим измерения напряжения
- Сухой контакт – режим определения состояния входной линии
- Открытый коллектор – режим управления нагрузкой
- Нажмите Применить.
ВАЖНО!
- Чтобы измененные через веб-настройки сохранились при следующем включении роутера, активируйте чекбокс в столбце Сохранять настройки при загрузке.
- Текущие значения считываются с роутера автоматически и отображаются в столбце Измеренное напряжение, mV после применения настроек.
Управление линиями I/O через командную строку
Линии I/O имеют для каждого направления свою символическую ссылку (Symlink) в ОС Linux (см. Карту портов).
При управлении каждой линией I/O могут быть использованы два сигнала:
- PULLDOWN – "нижний ключ", притягивающий линии I/O к земле. Может принимать следующие состояния:
- 1 – PULLDOWN включен
- 0 – PULLDOWN выключен.
- PULLUP # – "верхний ключ", включает источник тока в линии I/O. Обратите внимание: сигнал инвертирован, поэтому команды подаются следующим образом:
- 1 – PULLUP # выключен
- 0 – PULLUP # включен.
ВНИМАНИЕ!
- Если вы работаете с PULLDOWN, PULLUP# должен быть выключен!
- Если вы работаете с PULLUP#, PULLDOWN должен быть выключен!
Узнать состояние сигналов PULLUP и PULLDOWN на каждом входе можно с помощью команд, где N+1 – номер входа I/O (например, для входа IO1 в команде используется 0 – см. Карту портов):
cat /dev/puN/value– состояние сигнала PULLUPcat /dev/pdN/value– состояние сигнала PULLDOWN.
Переключение линий I/O в режим "АЦП"
Чтобы переключить вход (например, вход IO1) в режим АЦП, подайте следующую команду:
echo high > /dev/pu0/direction – настройка порта на вход (отключить "верхний ключ")echo low > /dev/pd0/direction – отключить "нижний ключ".
Переключение линий I/O в режим "Сухой контакт"
Чтобы переключить вход (например, вход IO1) в режим "Сухой контакт", подайте следующую команду:
echo low > /dev/pd0/direction – отключить "нижний ключ".
Вы можете продолжить работу с "верхним ключом":
echo low > /dev/pu0/direction – включить "верхний ключ".echo high > /dev/pu0/direction – отключить "верхний ключ".
Переключение линий I/O в режим "Открытый коллектор"
Чтобы переключить вход (например, вход IO1) в режим "Открытый коллектор", подайте следующую команду:
echo high > /dev/pu0/direction – отключить "верхний ключ".
Вы можете продолжить работу с "нижним ключом":
echo high > /dev/pd0/direction – включить "нижний ключ".echo low > /dev/pd0/direction – отключить "нижний ключ".
Для остальных портов настройка режима работы осуществляется аналогичным образом.
Считывание значений с линий I/O
Считать преобразованные значения с каждого входа АЦП можно с помощью команды, где N+1 – номер входа I/O (например, для входа IO1 в команде используется 0 – см. Карту портов):
getinfo adcNПолучить преобразованные значения напряжения со входа АЦП (в мВ) можно с помощью системного сервиса ubus.