14. Порты ввода-вывода
14.1. Отличительные особенности
- Возможность раздельной настройки работы на ввод или на вывод каждой линии ввода-вывода
- Гибкая настройка линий ввода-вывода через специальный конфигурационный регистр
- Синхронная и/или асинхронная работа входов с возможностями генерации прерываний и событий
- при обнаружении любого из фронтов
- при обнаружении нарастающих фронтов
- при обнаружении падающих фронтов
- при обнаружении низкого уровня
- Асинхронное возобновление работы при обнаружении любых из контролируемых условий на входах
- Каждый порт поддерживает два прерывания с гибким маскированием
- Широкий выбор настроек выходов и подтягивающих уровней:
- Двухтактный выход
- Подтягивание к плюсу или минусу питания
- Выход для схем монтажного И
- Выход для схем монтажного ИЛИ
- Адаптивная подтяжка
- Инвертированный ввод-вывод
- Опциональное управление скоростью изменения фронтов
- Нескольких выводов с одним назначением
- Поддержка операций чтение-модификация-запись
- Регистры переключения/сброса/установки для регистров выходов и задания направления ввода-вывода
- Выход синхронизации на линии порта
- Выход 7 канала событий на линии порта
- Регистры портов (виртуальные порты) расположены в пространстве памяти ввода-вывода с побитными доступом
14.2. Обзор
Микроконтроллеры XMEGA A3 оснащены гибкими портами ввода-вывода общего назначения. Порт образуют до 8 линий ввода-вывода с номерами от 0 до 7. Порты реализуют несколько функций, в т.ч. синхронный/асинхронный контроль входов, прерывания по изменению состояния выводов и возможность конфигурации выходов. Все функции индивидуально выбираются для каждой линии ввода-вывода, однако некоторые линии могут иметь только одно назначение.
14.3. Настройка линий ввода-вывода
Линии всех портов (Pn) имеют возможность программной конфигурации выходов. Кроме того, линиями всех портов поддерживается функция инвертирования ввода/вывода. Для входа это означает, что считываемое из регистра линии значение будет инверсно ее фактическому состоянию. Аналогичным образом, если активировать данную функцию для выхода, то его состояние будет инверсным по отношению к регистру порта. Функция инвертирования ввода-вывода может использоваться даже на тех линиях, которые работают в альтернативном их назначении. На линиях портов также предусмотрена возможность настройки скорости изменения фронтов, что позволяет снизить электромагнитные излучения.
14.3.1. Двухтактная линия
 Рисунок 14.1. Настройка линии ввода-вывода: двухтактная линия
14.3.2. Подтягивание к минусу питания
 Рисунок. 14.2. Настройка линии ввода-вывода: двухтактная линия с подтягиванием к минусу питания (на входе)
14.3.3. Подтягивание к плюсу питания
 Рисунок. 14.3. Настройка линии ввода-вывода: двухтактная линия с подтягиванием к плюсу питания (на входе)
14.3.4. Адаптивная подтяжка
Функция адаптивной подтяжки позволяет удерживать на линии тот логический уровень, который в последний раз присутствовал на выходе порта. Таким образом, адаптивная подтяжка действует, как подтяжка к плюсу питания, если предыдущий уровень был '1', и, как подтяжка к минусу питания, если последний уровень был '0'.
 Рисунок. 14.4. Настройка линии ввода-вывода: двухтактная линия с адаптивной подтяжкой
14.3.5. Прочие настройки
 Рисунок 14.5. Настройка выхода: монтажное ИЛИ с опциональной подтяжкой к минусу питания
 Рисунок 14.6. Настройка линии ввода-вывода: монтажное И с опциональной подтяжкой к плюсу питания
14.4. Функции контроля входов
- Обнаружение обоих фронтов
- Обнаружение нарастающих фронтов
- Обнаружение падающих фронтов
- Обнаружение низкого уровня
Функция контроля входов может быть синхронной или асинхронной, в зависимости от состояния синхронизации портов (вкл. или выкл.). Схема системы контроля входов представлена на рисунке 14.7.
 Рисунок 14.7. Обзор системы контроля входов
Если у линии ввода-вывода включена функция инвертирования, то перед выполнением функции контроля входа ее состояние будет инвертировано.
14.5. Прерывание порта
У каждого порта предусмотрено два прерывания с раздельными приоритетами и векторами. Источниками этих прерываний может служить любая из линий порта. Запуск прерываний происходит в зависимости от конфигурации функции контроля входов для тех линий, которые выбраны в качестве источника прерывания.
14.6. Альтернативные функции портов
Большинство линий порта, помимо функции ввода-вывода, имеют альтернативное назначение. Это означает, что линия может использоваться подключенными к порту встроенными модулями и УВВ, например, для последовательной передачи данных или генерации ШИМ-сигналов. В разделе 29 "Расположение и назначение выводов" показано, какие модули и УВВ имеют альтернативные функции в портах и какие альтернативные функции поддерживаются каждой линией ввода-вывода.
|