Линии ввода-вывода общего назначения

У EM2000 есть 56 линий ввода-вывода общего назначения (GPIO0 ~ GPIO55). Все линии 3.3V, КМОП, с допустимым входным напряжением 5V. Максимальный ток нагрузки каждой линии - 20mA. Пятьдесят одна из этих линий доступна всегда. Остальные пять расположены на разъёме беспроводного модуля расширения. Этот разъём обращён к материнской плате только у устройств EM2000-...-A.

Упрощённая структура одной линии ввода-вывода EM2000 показана на схеме ниже. У каждой линии свой независимый контроль выходного буфера. После включения питания EM2000 выходные буферы всех линий находятся в третьем состоянии (иными словами, все линии настроены как входы). Чтобы линия стала выходом, нужно явно включить её выходной буфер.

Многие линии ввода-вывода EM2000 служат также входами или выходами специальных функциональных модулей, например последовательных портов. Большинство таких линий нужно правильно настроить как входы или выходы - автоматически это не произойдёт. Несколько линий, например TX и RX последовательного порта в режиме UART, настраиваются как выходы и входы автоматически при включении последовательного порта (или другого аппаратного блока). Подробности см. в описании программной платформы EM2000.

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

Принципиальная схема линии GPIO EM2000.

8-разрядные порты

Сорок линий ввода-вывода сгруппированы в пять 8-разрядных портов. Для совместимости с EM1000 группировка линий по портам сделана точно такой же. К сожалению, из-за этого порты EM2000 стали «псевдопортами»: линии GPIO этих портов на самом деле относятся к нескольким разным физическим портам установленного на плате микроконтроллера. В результате операции с портами, такие как io.portset, io.portget или io.portstate, обращаются к выводам порта не строго одновременно: запись или чтение одних линий происходит раньше, чем других. Этот «диссонанс» очень мал и для большинства приложений не имеет значения, но помните, что он существует.

Схема отображения портов у разных портов различается, поэтому быстродействие тоже немного отличается. Порты P0 и P1 примерно на 10% медленнее, чем P2, P3 и P4. В большинстве случаев эта разница несущественна, тем более что управление линиями GPIO и портами на EM2000 примерно в семь раз быстрее, чем на EM1000.

Управление линиями ввода-вывода подробно описано в документации по объекту io..

Исходный материал Tibbo обновлён 27 мая 2022Оригинал на docs.tibbo.com · Сообщить об ошибке