Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УчебПособ_Гончаровский.doc
Скачиваний:
17
Добавлен:
13.11.2019
Размер:
3.75 Mб
Скачать

1.8.1. Порты ввода-вывода общего назначения

Порты ввода-вывода общего назначения (GPIO) - это группы выводов (чаще по 8 линий на порт) через которые μC получает сигналы (будь то аналоговые или цифровые) от внешних устройств (для их последующей обработки): управляет или обменивается данными с внешними устройствами, сигнализирует о проделанной работе и т.д. Режим общего назначения означает запись/чтение двоичных значений на линии порта в отличии от разнообразных альтернативные функции (АФ) каждого вывода. На рис.28 в качестве примера приведена упрощенная электрическая схема одного вывода порта популярного микроконтроллера AVR.

Рис.28. Электрическая схема вывода линии порта AVR микроконтроллера

Диоды D1 и D2, предназначены для защиты вывода от напряжений, превышающих напряжение питания (электростатика - ESD и т.п.), а емкость Cpin - это паразитная емкость вывода. Rpu – встроенный подтягивающий (pull up) резистор, который может быть отключен от плюса источника питания полевым транзистором, что предаст линии порта свойство входа с открытым коллектором. Срабатывание ключа К1подключает к выводу порта Pxn двоичный источник или альтернативную функцию. Входной сигнал оценивает пороговый элемент с гистерезисом. Итак, любой вывод μC может быть настроен как на вход, так и на выход, причем читать состояние вывода Pxn можно в любой момент, даже, когда вывод настроен как выход или АФ.

Каждый GPIO имеет регистры данных и конфигурации (управления). Через эти регистры осуществляется доступ по чтению ко входам, доступ по записи к выходам, а также позволяют настраивать индивидуальный вывод как вход или выход, подключать встроенные подтягивающие резисторы (pull up/pull down), входной гистерезис, задавать выходную нагрузочную способность и т.д.

Конфигурация выводов GPIO как вход или выход обычно выполняется через регистр, который называют регистром направления (DDR - Data Direction Register). Запись 1 в соответствующий бит DDR конфигурирует линию порта как выход, а 0 – как вход.

Наряду с величиной выходного напряжения GPIO важным является вытекающий ток при выходе равном «1» и втекающий ток при выходе равном «0». Если выход GPIO управляет входом другого цифрового устройства эти токи обычно очень маленькие (микроамперы), но когда управляет светодиодом (LED), биполярным транзистором (BJT) или реле токи становятся значительными (миллиамперы). Выходной ток GPIO для различных μC распределен в диапазоне 2 – 20 mA .

Рассмотрим подключения различных элементов к GPIO [16]. На рис. 29а показано подключение LED к выходу GPIO, возбуждаемое высоким уровнем сигнала (ток протекает через LED, когда выход имеет высокий уровень напряжения), а на рис. 29в - подключение, возбуждаемое низким уровнем сигнала (ток протекает через LED, когда выход имеет низкий уровень напряжения).

Рис. 29. Подключение светодиода к выходу GPIO

Формула для вычисления значения сопротивления: R = (Vсс – Vled)/Iled,

где Vled и Iled - падение напряжения на LED и ток свечения LED соответственно.

На рис. 30 а и в показано подключение p-n-p BJT и n-p-n BJT к выходу GPIO по схеме с общим коллектором соответственно. Подключение на рис. 30а возбуждается высоким уровнем сигнала, при котором ток протекает через нагрузку RL , когда выход имеет высокий уровень напряжения. Подключение на рис. 30в, возбуждается низким уровнем сигнала, при котором ток протекает через нагрузку RL , когда выход имеет низкий уровень напряжения.

Рис. 30. Подключение биполярного транзистора к выходу GPIO

На рис. 31 а и в показано подключение N-канального/P-канального

MOSFET к выходу GPIO возбуждаемое высоким/низким уровнем сигнала соответственно.

Рис. 31. Подключение MOSFET транзистора к выходу GPIO

На рис. 32а показано подключение переключателя входу GPIO с подтягивающем к земле резистором. Входной сигнал является возбуждаемым высоким уровнем. Это означает, что вход принимает напряжение высокого уровня, когда переключатель замыкает контакты.

На рис. 32в показано подключение переключателя входу GPIO с подтягивающем к питанию резистором. Входной сигнал является возбуждаемым низким уровнем. Это означает, что вход принимает напряжение низкого уровня, когда переключатель замыкает контакты.

Рис. 32. Подключение переключателя SW к входу GPIO