Конфигурирование пинов ввода-вывода (не только GPIO)
Содержание |
Общая информация
Виртурилка имеет 86 контактов на гребёнке с пинами.
Часть пинов задействована под конкретное назначение (+3.3V, +5V, GND, TV_OUT, и т.д.), но большинство остальных является GPIO - General Purpouse Input/Output, пинами ввода/вывода общего назначения.
Помимо функций GPIO, многие из контактов имеют несколько переключаемых функций (от одной до четырёх).
В один момент времени пин может быть сконфигурирован только под одну конкретную функцию.
Отличия GPIO от CON
Так как не все физические пины Виртурилки являются GPIO, а не любой GPIO выведен на физический пин, было введено понятие CON (коннектор).
На Виртурилке все пины выполнены в виде двух двурядных гребёнок. Если смотреть с лицевой стороны (где пины торчат) в положении "microSD слот внизу", левая гребёнка это J2, правая гребёнка - J14.
Схему можно посмотреть в разделе Схема компонентов virt2real 1.1
Чтобы можно было точно указать на требуемый пин была введена сквозная нумерация пинов, от CON1 до CON86.
Подробное описание команд изложено на странице http://wiki.virt2real.ru/wiki/V2r_pins
Установка пинов CON с использованием драйвера /dev/v2r_pins
echo "set con <номер_CON> <direction> <value>" > /dev/v2r_pins
Например, назначить CON44 как выход и установить значение 1
echo "set con 44 output 1" > /dev/v2r_pins
Чтение состояния пинов CON
Аналогично драйверу v2r_gpio, только считываются состояния не по номерам GPIO, а по номерам CON
cat /dev/v2r_pins
Практическое применение
Драйвер v2r_pins отличается от драйвера v2r_gpio именно тем что работает именно с CON, тогда как v2r_gpio оперирует номерами GPIO.
Для примера можно посмотреть раздел Управление сервомотором или PWM