F20-23 (1041603), страница 33
Текст из файла (страница 33)
SMBus, SPI, УАПП), то матрица распределяет все выводы,ассоциированные с ними. Нельзя, например, назначить вывод RX0 модуля УАПП0 и не назначить вывод TX0этого же модуля. Назначение внешних выводов микроконтроллера для каждой комбинации подключенныхпериферийных модулей будет уникальным.Все выводы портов Р0 – Р3, не распределенные при помощи матрицы, могут быть доступны каквыводы ввода/вывода общего назначения путем чтения и записи соответствующих регистров данных портов(см.
рис.17.10, рис.17.12, рис.17.15 и рис.17.17), которые доступны как в побитном, так и в побайтном режимахадресации. Состояния выходных драйверов выводов портов, которые распределены матрицей и управляютсяцифровыми периферийными модулями, определяются этими модулями. Запись регистров данных этих портов(или распределенных матрицей битов портов) не будет влиять на состояние этих выводов.Чтение регистра данных порта (или бита порта) всегда возвратит в качестве результата логическоесостояние на выводе порта независимо от того, распределен данный порт матрицей или нет. Исключениемявляются команды типа чтение-модификация-запись (ANL, ORL, XRL, JBC, CPL, INC, DEC, DJNZ и MOV,CLR, SET и битовые команды MOV).
В течение цикла чтения команд типа чтение-модификация-записьсчитывается содержимое регистра данных порта, а не логическое состояние самих выводов портов.Т.к. регистры матрицы влияют на подключение внутренних периферийных модулей к внешнимвыводам МК, то они обычно настраиваются в процессе инициализации системы до настройки самихпериферийных модулей. После первоначальной настройки регистры матрицы обычно не перенастраиваются.После правильной настройки регистров матрицы она включается установкой в 1 бита XBARE(XBR2.6). Пока бит XBARE не установлен в 1, выходные драйверы портов Р0 – Р3 явным образомотключаются, чтобы предотвратить возможные конфликты на выводах портов во время записирегистров матрицы и других регистров, которые могут влиять на внешние выводы МК.Выходные драйверы выводов, распределенных матрицей для входных сигналов (например, RX0 и т.п.),явным образом отключаются; таким образом значения регистров данных портов и регистров PnMDOUT невлияют на состояние этих выводов.17.1.2.
Настройка выходных драйверов портовВыходные драйверы портов Р0 – Р3 остаются отключенными до тех пор, пока матрица не будетвключена установкой в 1 бита XBARE (XBR2.6).Выходной драйвер каждого порта можно настроить либо как цифровой выход, либо как выход соткрытым стоком. По умолчанию выбирается режим выхода с открытым стоком. При работе в режимецифрового выхода запись лог. ‘0’ в соответствующий бит регистра данных порта приведет к «притягиванию»данного вывода порта к земляной шине GND, а запись лог. ‘1’ приведет к «притягиванию» данного выводапорта к шине питания VDD. При работе в режиме выхода с открытым стоком запись лог.
‘0’ всоответствующий бит регистра данных порта приведет к «притягиванию» данного вывода порта к землянойшине GND, а при записи лог. ‘1’ данный вывод порта будет переведен в высокоимпедансное состояние. Режимвыхода с открытым стоком полезен в том случае, если требуется предотвратить конфликты между различнымиустройствами в системе, когда вывод порта участвует в коллективном взаимодействии, при котором нескольковыходов подключаются к одной и той же физической линии (например, сигнал SDA шины SMBus).Режимы выхода портов Р0 – Р3 определяются битами соответствующих регистров PnMDOUT (см.рис.17.11, рис.17.14, рис.17.16, рис.17.18).
Например, при установке в 1 бита P3MDOUT.7 выходной драйверпорта Р3.7 будет настроен как цифровой выход, при сбросе в 0 бита P3MDOUT.7 выходной драйвер порта Р3.7будет настроен как выход с открытым стоком. по умолчанию выходные драйверы всех портов настраиваютсякак выходы с открытым стоком.Регистры PnMDOUT управляют режимами выхода выводов портов независимо от того, назначает ли ихматрица цифровым ресурсам или нет. Исключением являются только выводы модуля SMBus (SDA, SCL),вывод приемника УАПП0 (RX0, в режиме 0) и вывод приемника УАПП1 (RX1, в режиме 0), которые всегданастроены как выходы с открытым стоком независимо от настроек соответствующих бит регистров PnMDOUT.Ред. 1.4164C8051F020/1/2/317.1.3.
Настройка выводов портов как цифровых входовВывод порта настраивается как цифровой вход переводом его выходного драйвера в режим выхода соткрытым стоком и записью лог. ‘1’ в соответствующий бит регистра данных порта. Например. Р3.7настраивается как цифровой вход сбросом в 0 бита P3MDOUT.7 и установкой в 1 бита Р3.7.Если вывод порта назначен посредством матрицы цифровому периферийному модулю и этот выводфункционирует как вход (например, RX0, вывод приемника УАПП0), то выходной драйвер этого выводаавтоматически отключается.17.1.4. Внешние прерывания (IE6 и IE7)В дополнение ко внешним прерываниям /INT0 и /INT1, которые распределяются и назначаютсяматрицей, Р3.6 и Р3.7 можно настроить таким образом, чтобы они генерировали чувствительные к фронтупрерывания.
Биты IE6CF (P3IF.2) и IE7CF (P3IF.3) определяют, по какому фронту будут генерироватьсяпрерывания: по спадающему или по нарастающему. Когда на портах Р3.6 и Р3.7 появляется активный фронтсигнала, в регистре P3IF (см. рис.17.19) будет установлен в 1 соответствующий флаг внешнего прерывания (IE6или IE7). Если прерывание разрешено, то будет сгенерирован запрос прерывания и произойдет переход насоответствующую процедуру обработки прерывания. Подробная информация относительно обработкипрерываний приведена в разделе 12.3.17.1.5. Слаботоковые подтяжкиКаждый вывод порта имеет внутреннюю слаботоковую подтяжку, которая по умолчанию включена.Она обеспечивает соединение данного вывода с шиной питания VDD через резистор с высокимсопротивлением (около 100кОм). Слаботоковые подтяжки можно глобально отключить, установив в 1 битотключения слаботоковых подтяжек WEAKPUD (XBR2.7).
Слаботоковые подтяжки автоматическиотключаются у любого вывода, на который выдается лог. ‘0’, т.е. выход вывода не будет конфликтовать ссобственной слаботоковой подтяжкой. Слаботоковые подтяжки выводов порта 1 можно также явно отключить,настроив эти выводы как аналоговые входы.17.1.6. Настройка выводов Порта 1 как аналоговых входов (AIN1.[7:0])Выводы порта 1 могут функционировать в качестве аналоговых входов мультиплексора АЦП1. Выводпорта настраивается как аналоговый вход сбросом в 0 соответствующего бита в регистре P1MDIN (см.рис.17.13). По умолчанию все порты настраиваются как цифровые входы.
Настройка вывода порта каканалогового входа:1. Разрывает цепь тока цифрового входа от этого вывода. Это исключает увеличение тока потребленияпри напряжении на этом выводе, близком к значению VDD/2. Чтение бита данных порта возвратитлог. ‘0’ независимо от напряжения на выводе порта.2. Отключает слаботоковую подтяжку от этого вывода.3.
Заставляет матрицу «пропускать» этот вывод, если выводы порта назначены цифровымпериферийным модулям.Следует иметь ввиду, что выходные драйверы выводов, настроенных как аналоговые входы, неотключаются явным образом. Поэтому биты регистра P1MDOUT, соответствующие выводам, настроеннымкак аналоговые входы, следует явно сбросить в 0 (режим выхода с открытым стоком), а соответствующие битыданных порта следует установить в 1 (высокоимпедансное состояние). Также следует иметь ввиду, что нетребуется настраивать вывод порта как аналоговый вход, чтобы использовать его в качестве входамультиплексора АЦП1; однако, строго рекомендуется так делать. Подробная информация относительно АЦП1приведена в разделе 7.165Ред.
1.4C8051F020/1/2/317.1.7. Распределение выводов интерфейса внешней памятиЕсли для сигналов интерфейса внешней памяти используются младшие порты (Р0 – Р3), то следуетустановить в 1 бит EMIFLE (XBR2.1), тогда матрица не будет назначать периферийным модулям портыP0.7 (/WR), P0.6 (/RD) и, если интерфейс внешней памяти функционирует в мультиплексированном режиме,P0.5 (ALE). Пример таблицы декодирования приоритетов матрицы для EMIFLE = 1 и мультиплексированногорежима показан на рис.17.4. Пример таблицы декодирования приоритетов матрицы для EMIFLE = 1 инемультиплексированного режима показан на рис.17.5.Если для сигналов интерфейса внешней памяти используются младшие порты и происходит обращениек внешней (не встроенной) памяти с помощью команды MOVX, то в течение фазы выполнения команды MOVXинтерфейс внешней памяти будет управлять состоянием выхода находящихся под его влиянием выводовпортов независимо от состояния регистров матрицы или состояния регистров данных портов. Работаинтерфейса внешней памяти не влияет на конфигурацию выходных драйверов выводов портов, за исключениемопераций чтения, при которых явным образом отключаются выходные драйверы шины данных.