F40-43a (1041604), страница 36
Текст из файла (страница 36)
1.3190C8051F040/1/2/317. ПОРТЫ ВВОДА/ВЫВОДАМикроконтроллеры C8051F040/1/2/3 представляют собой полностью интегрированные на одномкристалле системы для обработки смешанных сигналов, которые имеют 64 (C8051F040/2) или 32 (C8051F041/3)цифровых входа/выхода, организованные в 8-разрядные порты. Все порты доступны в режиме как побитной,так и побайтной адресации через соответствующие регистры данных портов. Допустимое напряжение на всехвыводах портов ввода/вывода составляет 5В. Каждый из них имеет слаботоковые подтягивающие резисторы иможет быть настроен как выход с открытым стоком или цифровой двухтактный выход.
Структурная схемаячейки порта ввода/вывода показана на рис.17.1. Электрические характеристики портов ввода/выводаприведены в табл. 17.1.Рисунок 17.1. Структурная схема ячейки порта ввода/вывода/ВКЛЮЧЕНИЕ СЛАБОТОКОВОЙПОДТЯЖКИ/ВЫБОР РЕЖИМА(ОТКР. СТОК / ЦИФР. ВЫХОД)VDDVDD/ВКЛЮЧЕНИЕВЫХОДА ПОРТА(СЛАБОТОКОВАЯПОДТЯЖКА)ВНЕШНИЙВЫВОДПОРТАВЫХОД ПОРТАВыбор аналоговоговхода(Порт 1, 2, 3)АНАЛОГОВЫЙВХОДDGNDВХОД ПОРТАТаблица 17.1.
Электрические характеристики портов ввода/выводаVDD = 2.7 … 3.6В, Т = от -40ºC до +85ºC, если не указано иное.ПАРАМЕТРУСЛОВИЯВыходное напряжениеIOH= -10мкА, порт ввода/вывода – цифровой вход/выходвысокого уровня (VOH)IOH= -3мА, порт ввода/вывода – цифровой вход/выходIOH= -10мА, порт ввода/вывода – цифровой вход/выходВыходное напряжениеIOL= 10мкАIOL= 8.5мАнизкого уровня (VOL)IOL= 25мАВходное напряжениевысокого уровня (VIH)Входное напряжениенизкого уровня (VIL)Ток утечки входаDGND < Вывод порта < VDD, вывод ввысокоимпедансном состоянии,слаботоковая подтяжка отключенаслаботоковая подтяжка включенаВходная емкость191Ред. 1.3Мин.VDD –0.1VDD –0.7Тип.Макс.Ед. изм.В0.10.6ВVDD –0.81.0В0.7 xVDD0.3 xVDDВмкА±1105пФC8051F040/1/2/3Микроконтроллеры имеют различные цифровые ресурсы, которые доступны через четыре младшихпорта ввода/вывода: Р0, Р1, Р2 и Р3.
Каждый из выводов портов Р0, Р1, Р2 и Р3 может быть определен либо каквывод ввода/вывода общего назначения, либо как вывод, управляемый внутренними цифровыми ресурсами(например, УАПП0 или /INT1), как показано на рис.17.2. Разработчик системы определяет, какие цифровыересурсы будут назначены внешним выводам, ограничиваясь только количеством доступных выводов.
Гибкостьпри распределении ресурсов достигается благодаря использованию приоритетного декодера матрицы. Следуетиметь ввиду, что состояние вывода порта ввода/вывода всегда можно прочитать из соответствующего регистраданных независимо от того, как функционирует этот вывод: как вывод ввода/вывода общего назначения иликак вывод, назначенный какому-либо внутреннему цифровому ресурсу. Выводы Портов 1, 2 и 3 могутиспользоваться как аналоговые входы АЦП2, аналоговых компараторов напряжения и АЦП0 соответственно.Как младшие, так и старшие порты могут использоваться для интерфейса внешней памяти, сигналыкоторого активны во время выполнения команды MOVX, обращающейся по адресу, расположенному вовнешней (не встроенной) памяти. Подробная информация об интерфейсе внешней памяти приведена вразделе 16.17.1. Порты 3 – 0 и приоритетный декодер матрицыПриоритетный декодер матрицы, или “матрица”, распределяет и назначает выводы портов Р3 – Р0цифровым периферийным модулям (УАПП, SMBus, ПМС, таймеры и т.д.) микроконтроллера, используя дляРисунок 17.2.
Функциональная схема младших портов ввода/выводаНаибольшийприоритет2УАПП02SMBus(внутренние цифровые сигналы)РегистрыP0MDOUT, P1MDOUT,P2MDOUT, P3MDOUT4SPIНаименьшийприоритетРегистрыXBR0, XBR1, XBR2,XBR3 P1MDIN,P2MDIN, P3MDIN2УАПП1ВнешниевыводыПриоритетныйдекодер86ПМСВыходыкомп-вЯчейкиввода/выводапорта 0P0.0Ячейкиввода/выводапорта 1P1.0Ячейкиввода/выводапорта 2P2.0Ячейкиввода/выводапорта 3P3.0НаибольшийприоритетP0.72ЦифроваяматрицаT0, T1,T2, T2EX,T3, T3EX,T4,T4EX,/INT0,/INT18P1.788/SYSCLKP2.7CNVSTR0CNVSTR288P0(P0.0-P0.7)Защелкипортов(P1.0-P1.7)8P2НаименьшийприоритетНа входАЦП28P1P3.7К интерфейсувнешнейпамяти(EMIF)На компараторыНа входАЦП0(P2.0-P2.7)8P3(P3.0-P3.7)Ред. 1.3192C8051F040/1/2/3этого приоритеты.
Выводы портов распределяются, начиная с порта Р0.0 и (если необходимо) до порта Р3.7.Цифровые периферийные модули назначаются выводам портов в соответствии с их приоритетом (см. рис. 17.3).УАПП0 имеет наивысший приоритет, CNVSTR2 имеет самый низкий приоритет.17.1.1. Назначение и распределение выводов при помощи матрицыМатрица назначает выводы портов периферийным модулям, если соответствующие биты подключенияв регистрах конфигурации матрицы XBR0, XBR1, XBR2 и XBR3 установлены в 1 (см. рис.17.7, рис.17.8,Рисунок 17.3.
Таблица декодирования приоритетов матрицыP0Выв. I/O0TX0●●3P1456701●CEX4CEX5ECICP0CP1CP2T0/INT0T1/INT1T2T2EXT3T3EX70123P3456701234567SMB0EN: XBR0.0●●UART1EN: XBR2.2● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ●●●● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ●●● ● ● ● ● ● ● ● ●PCA0ME: XBR0.[5:3]●● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●ECI0E: XBR0.6● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●CP0E: XBR0.7CP1E: XBR1.0CP2E: XBR3.3● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●T0E: XBR1.1INT0E: XBR1.2T1E: XBR1.3● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●INT1E: XBR1.4T2E: XBR1.5● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●T2EXE: XBR1.6T3E: XBR3.0T3EXE: XBR3.1● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●/SYSCLK ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●T4E: XBR2.3T4T4EXE: XBR2.4T4EXSYSCKE: XBR1.7● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●CNVSTR2 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●Входы AIN1/Немульт-й адрес (СЗР)Мульт-й адр.
(ст.)/Немульт-й адр. (мл.)Ред. 1.3AD7/D7AD6/D6AD5/D5AD4/D4AD3/D3AD2/D2AD1/D1AD0/D0A15m/A7A14m/A6A13m/A5A12m/A4A11m/A3A10m/A2A9m/A1A8m/A0AIN1.7/A15AIN1.6/A14AIN1.5/A13AIN1.4/A12AIN1.3/A11AIN1.2/A10AIN1.1/A9AIN1.0/A8/WR/RDALECNVSTR0193Биты регистровматрицыNSS не разводится на вывод порта в трехпроводном режиме SPI●●● ● ● ● ●●CEX0CEX36SPI0EN: XBR0.1RX1CEX25●● ● ● ● ●●● ● ● ● ● ● ●●● ● ● ● ● ● ●CEX1P24●●NSSTX13●MOSISCL2UART0EN: XBR0.2●MISOSDA2●RX0SCK1Мульт-ые данные/Немульт-ые данныеCNVSTE0: XBR2.0CNVSTE2: XBR3.2C8051F040/1/2/3рис.17.9 и рис.17.10).
Например, если бит UART0EN (XBR0.2) установлен в 1, то выводы TX0 и RX0 будутотображены на порты Р0.0 и Р0.1 соответственно. Т.к. УАПП0 имеет наивысший приоритет, то его выводывсегда будут отображаться на порты Р0.0 и Р0.1, когда бит UART0EN установлен в 1. Если биты подключенияцифровых модулей не установлены в 1, то их порты не доступны на внешних выводах портов МК. Важно такжеиметь ввиду, что, если выбраны последовательные порты (т.е. SMBus, SPI, УАПП), то матрица распределяетвсе выводы, ассоциированные с ними.
Нельзя, например, назначить вывод RX0 модуля УАПП0 и не назначитьвывод TX0 этого же модуля. Назначение внешних выводов микроконтроллера для каждой комбинацииподключенных периферийных модулей будет уникальным.Все выводы портов Р0 – Р3, не распределенные при помощи матрицы, могут быть доступны каквыводы ввода/вывода общего назначения путем чтения и записи соответствующих регистров данных портов(см. рис.17.11, рис.17.13, рис.17.16 и рис.17.19), которые доступны как в побитном, так и в побайтном режимахадресации. Состояния выходных драйверов выводов портов, которые распределены матрицей и управляютсяцифровыми периферийными модулями, определяются этими модулями. Запись регистров данных этих портов(или распределенных матрицей битов портов) не будет влиять на состояние этих выводов.Чтение регистра данных порта (или бита порта) всегда возвратит в качестве результата логическоесостояние на выводе порта независимо от того, распределен данный порт матрицей или нет.
Исключениемявляются команды типа чтение-модификация-запись (ANL, ORL, XRL, JBC, CPL, INC, DEC, DJNZ, CLR, SET ибитовые команды MOV). В течение цикла чтения команд типа чтение-модификация-запись считываетсясодержимое регистра данных порта, а не логическое состояние самих выводов портов.Т.к. регистры матрицы влияют на подключение внутренних периферийных модулей к внешнимвыводам МК, то они обычно настраиваются в процессе инициализации системы до настройки самихпериферийных модулей.
После первоначальной настройки регистры матрицы обычно не перенастраиваются.После правильной настройки регистров матрицы она включается установкой в 1 бита XBARE(XBR2.4). Пока бит XBARE не установлен в 1, выходные драйверы портов Р0 – Р3 явным образомотключаются, чтобы предотвратить возможные конфликты на выводах портов во время записирегистров матрицы и других регистров, которые могут влиять на внешние выводы МК.Выходные драйверы выводов, распределенных матрицей для входных сигналов (например, RX0 и т.п.),явным образом отключаются; таким образом значения регистров данных портов и регистров PnMDOUT невлияют на состояние этих выводов.17.1.2.
Настройка выходных драйверов портовВыходные драйверы портов Р0 – Р3 остаются отключенными до тех пор, пока матрица не будетвключена установкой в 1 бита XBARE (XBR2.4).Выходной драйвер каждого порта можно настроить либо как цифровой двухтактный выход, либо каквыход с открытым стоком. По умолчанию выбирается режим выхода с открытым стоком. При работе в режимецифрового двухтактного выхода запись лог.
‘0’ в соответствующий бит регистра данных порта приведет к«притягиванию» данного вывода порта к земляной шине GND, а запись лог. ‘1’ приведет к «притягиванию»данного вывода порта к шине питания VDD. При работе в режиме выхода с открытым стоком запись лог. ‘0’ всоответствующий бит регистра данных порта приведет к «притягиванию» данного вывода порта к землянойшине GND, а при записи лог.
‘1’ данный вывод порта будет переведен в высокоимпедансное состояние. Режимвыхода с открытым стоком полезен в том случае, если требуется предотвратить конфликты между различнымиустройствами в системе, когда вывод порта участвует в коллективном взаимодействии, при котором нескольковыходов подключаются к одной и той же физической линии (например, сигнал SDA шины SMBus).Режимы выходов портов Р0 – Р3 определяются битами соответствующих регистров PnMDOUT (см.рис.17.12, рис.17.15, рис.17.168, рис.17.21).