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

У WM2000 десять линий ввода-вывода общего назначения (GPIO0-GPIO9). Все линии - 3.3V CMOS. Максимальная нагрузка на каждую линию ввода-вывода составляет 12mA, за исключением линий 2 и 4 (см. раздел «Особый случай» ниже).

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

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

Если включена отладка по последовательному порту, линии RX и TX порта UART1 становятся линиями RX и TX отладочного последовательного порта и не могут использоваться ни как линии GPIO, ни как линии RX и TX порта UART1.

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

Линии GPIO2 и GPIO3 могут работать как линии прерывания.

Общая схема подключения линии GPIO модуля WM2000.

Особый случай - линии GPIO 1 и 3

Линии GPIO1 и GPIO3 намного слабее остальных линий GPIO: максимальная нагрузка на каждую из них составляет всего 500µA. Вся остальная функциональность у обеих линий сохраняется. Ниже приведена схема, поясняющая упрощённую структуру GPIO1 и GPIO3.

В большинстве приложений эти две линии работают как любые другие GPIO. Например, при использовании для связи (последовательный интерфейс, I²C, SPI) особенности их схемотехники никак не сказываются на работе.

Для подключения к другому оборудованию потребуется дополнительная буферизация.

Схема подключения линий GPIO1 и GPIO3 модуля WM2000.

Схема GPIO1 и GPIO3 отличается от остальных линий, потому что они также служат загрузочными (bootstrap) выводами микроконтроллера модуля. При загрузке эти линии должны быть отключены от любых внешних цепей вашей хост-платы, чтобы WM2000 не перешёл в загрузчик.

8-битные порты

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

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

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