Глава 10. Порты входа/выхода
Все выводы устройства (кроме VDD, VSS, MCLR и OSC1/CLKIN) разделены между периферийными модулями и параллельными портами ввода-вывода {I/O}. Все порты ввода вывода оснащены триггером Шмитта для улучшенной устойчивости к помехам.
10.1 Параллельные порты ввода-вывода{I/O} (PIO)
Параллельный порт ввода-вывода{I/O}, который разделён с периферийными выводами, в основном подключены к периферии. Периферийные выходные буферы и управляющие сигналы обеспечиваются парой мультиплексоров. Мультиплексоры выбирают кто подключён к выводу или это периферия или это связанный порт входа выхода. Логика также предотвращает петлю, в которой выходы цифрового порта могут управлять входом периферии, с которой данный вход мультиплексирован. На рисунке 10-1 показано каким образом разделены порты с периферией и цифровыми портами {I/O}, с которым они связаны.
Рисунок 1. Блок схема порта микроконтроллера
Когда периферийный модуль включён и активно управляет ассоциированным выводом, использование вывода как универсальный вывод отключено. Вывод входа/выхода{I/O} может читаться, но выходные драйверы отключат бит параллельного порта. Если периферия включена, но вывод активно не используется, то вывод может управляться портом.
Все выводы порта имеют три регистра, непосредственно связанных с операциями цифрового порта вход-выхода {I/O}. Регистр выбора направления (TRISx) определяет, является ли вывод входом или выходом. Для регистра TRIS “1” означает что порт будет работать как вход. Все выводы порта определены как входы после сброса микроконтроллера. Регистр защёлки (LATx). При чтении из порта (PORTx) – читаются выводы порта, покудова записываются дла вывода порта – записывается защёлка. (Reads from the latch (LATx), read the latch. Writes to the latch, write the latch. Reads from the port (PORTx), read the port pins, while writes to the port pins, write the latch.)
Любой бит и связанные с ним данные и регистры управления, которые не действительны для специфического устройства будут отключены. Это означает связанные регистры LATx и TRISx, и выводы порта будут читаться как ноли.
Когда вывод разделен с другой периферией или функцией, которая определена только как вход, это однако расценено как предназначенный порт, потому что нет другого конкурирующего источника выходного сигнала. Пример – вывод INT4.
Примечание: напряжение на цифровом входе может быть от-0.3V до 5.6V.
10.2 Конфигурация открытого коллектора
В дополнение к PORT, LAT и регистраторам TRIS для управления данными, каждый вывод порта может также индивидуально настраиваться или для цифрового или для вывода с открытым коллектором. Это управляется регистром управления открытым коллектором (Open-Drain Control) ODCx, связанный с каждым портом. Установка любого бита настраивает соответствующий вывод чтобы работать как с выводом с открытым коллектором.
Особенность открытого коллектора разрешает формирование на выводе напряжение выше чем VDD (например, 5V) на любом желаемом только цифровом выводе, используя внешние подтягивающие резисторы. (Особенность входа-выхода{I/O} с открытым коллектором не поддерживается на выводах, на которых мультиплексированы аналоговые функциональные возможности). Максимально разрешённое напряжения открытого коллектора такое же как и напряжение питания микроконтроллера (по спецификации maximum VIN. Особенность вывода с открытым коллектором поддерживается и для выводов порта и для периферийной конфигураций.
10.3 Настройка аналоговых выводов
Использование ADxPCFGH, ADxPCFGL и TRIS регистров управляет операциями на выводах порта ADC. Выводы порта, которые необходимы как аналоговые входы, должны иметь в соответствующих разрядах регистра TRIS установленные биты. Если TRIS бит сброшен (т.е. вывод настроен на выход), то преобразуется уровень цифрового порта (т.е.VOH или VOL).
Сбрасывая любой бит в регистре ADxPCFGH или ADxPCFGL настраивается соответствующий бит, чтобы работать как аналоговый вывод (линия). После сброса микроконтроллера все выводы в которых мультиплексирована функция ANx – устанавливается для работы в аналоговом режиме.
Внимание:В устройствах с двумя ADC модулями, если связанный PCFG бит в любом регистре AD1PCFGH (L) и AD2PCFGH (L) сброшен, то линия работает как аналоговый.
Когда читается регистр PORT, все выводы настроенные как аналоговый вход будут читаться как низкий уровень.
Выводы настроенные как цифровые входы не будут конвертировать аналоговый вход. Аналоговые уровни на любом выводе, который настроен как цифровой вход (включая ANx выводы), может требовать входным буфером потреблять ток, который превышает ток, приведённый в спецификации.
Внимание: напряжение на аналоговом входе может находится в диапазоне от -0.3V до (VDD + 0.3 V).
10.4 Время выбора записи/чтения порта ввода вывода {I/O}
Для смены режима чтения на режим записи необходимо затратить один цикл инструкции. Как правило эта инструкций аналогично NOP.
10.5 Выводы контролирующий изменение сигнала (CN)
Входная функция контроля за изменением состояния на порту ввода-вывода{I/O} позволяет микроконтроллеру dsPIC33F сформировать прерывания, при изменении состояния на входе. Эта функция способна обнаружить изменение сигнала даже в режиме SLEEP, когда отключён генератор. В зависимости от микроконтроллера, есть до 24 внешних сигналов (CN0 - CN23), которые могут быть выбраны для формирования запроса прерывания при изменении состояния на входе.
Есть четыре регистра управления, связанные с модулем CN. Регистры CNEN1 и CNEN2 – разрешают прерывания CN, разрешить прерывания можно для каждого CN порта отдельно устанавливая соответствующий бит CNxIE.
К каждому входу CN можно программно подключить подтягивающий резистор. И уже не требуется использовать внешние резисторы (например при построении клавиатуры). Резисторы подключаются с помощью регистров CNPU1 и CNPU2. Если бит (CNxPUE) установлен, то к выводу CN подключается подтягивающий резистор.
Обратите внимание: Подтягивающие резисторы на выводе CN должны всегда отключаться, если порт настраивается как цифровой выход.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.