|
|
### GPIO
|
|
|
|
|
|
> Интерфейс ввода/вывода общего назначения (англ. general-purpose input/output)
|
|
|
|
|
|
Чтобы разобраться, что такое GPIO, давайте посмотрим на пиктограмму, которой обычно обозначают микроконтроллер. Это такой ящик с ножками, круг в правом верхнем углу которого нужен, чтобы не перепутать ориентацию. Пожалуй, эта пиктограмма отображает то, как микроконтроллер воспринимается нами. Это некоторый черный ящик, содержание которого мы либо не знаем, либо оно достаточно сложное и поэтому достаточно знать только общие принципы работы. Но чтобы работать с микроконтроллером мы точно должны знать, что значат эти ножки и как они себя ведут во время работы.
|
|
|
|
|
|
{width=20%}
|
|
|
|
|
|
Эти ножки называются пинами (*англ. pins*). Каждая из них имеет своё назначение, и если вы купили микроконтроллер, то в документации к нему обязательно будет таблица, в которой будет описываться назначение каждого пина. На каких-то может быть постянное напряжение 3.3В, к другим необходимо подключить источник напряжения, чтобы микроконтроллер заработал. На рисунке показано описание пинов схемы INA230.
|
|
|
|
|
|
{width=50%}
|
|
|
|
|
|
У RaspberryPi тоже есть микроконтроллер и от этого микроконтроллера выходят пины. Для удобства эти пины выведены на боковую сторону и имеют стандартизированнй штыревой разъем с шагом пинов 2.54 мм.
|
|
|
|
|
|

|
|
|
|
|
|
Среди этих пинов есть те, назначение которых не определено, а значит могут использоваться нами в любых целях, а именно GPIO.
|
|
|
GPIO-контакты не имеют специального назначения и, как правило, остаются неиспользованными. Идея состоит в том, что иногда может оказаться полезным иметь несколько дополнительных линий цифрового управления.
|
|
|
|
|
|
GPIO могут два направления: выход и вход.
|
|
|
* Выход означает, что микроконтроллер может управлять напряжением на выбранном пине. Он может выставлять на нём два логических состояния: 0 (ложь) - 0 вольт; 1 (истина) - 3.3 вольта;
|
|
|
* Вход означает, что кто-то снаружи микроконтроллера управляется напряжением, а в алгоритме работы микроконтроллера мы можем считать логическое состояние: 0 (ложь), если снаружи устанавливается напряжение 0 вольт, 1 (истина), если снаружи устанваливается напряжение 3.3 вольта.
|
|
|
|
|
|
Вход имеет три режима работы: плавающий (floating, Hi-Z, High Impedance), подтянутый к питянию (Pull Up), подтянутый к земле (Pull Down). Нужны эти режимы, чтобы определять какое состояние будет у входа, если к нему ничего не подключено, ведь даже в таком состоянии на пине может быть некоторое ненулевое напряжение, значение которого мы не можем предугадать, а значит состояние 0 и 1 не будет однозначно определено. Если же мы выбираем подтчжку к питанию, то определим это состояние как 1. Если подтянем к земле, то определим состояние как 0.
|
|
|
|
|
|
Любой из контактов GPIO может быть назначен (в программе) как входной или выходной контакт и использоваться для связи между компонентами компьютерной системы и различными периферийными устройствами. Это даёт возможность организовать дополнительные схемы, не создавая их с нуля. GPIO-контакты часто группируются в порты. Эти порты позволяют собирать данные с датчиков, управлять двигателями, ключами, реле и прочими устройствами с помощью программных инструкций. |
|
|
\ No newline at end of file |