F00-17 (1041601), страница 25
Текст из файла (страница 25)
Разработчик имеет полный контроль над всеми встроенными функциями,ограничиваясь только количеством физически реализованных выводов, имеющихся в выбранном корпусе (вМК C8051F000/05/10/15 все четыре порта имеют внешние выводы, в МК F001/06/11/16 только порты Р0 и Р1имеют внешние выводы, в МК F002/07/12/17 внешние выводы имеет только порт Р0). Гибкость прираспределении ресурсов достигается благодаря использованию приоритетного декодера матрицы. (Следуетиметь ввиду, что состояние вывода порта ввода/вывода всегда можно прочитать в соответствующей защелкепорта независимо от настроек матрицы).Матрица распределяет выбранные внутренние цифровые ресурсы между внешними выводами портовна основе таблицы декодирования приоритетов (см.
табл.15.1). Для подключения внутренних цифровыхмодулей и портов к внешним выводам на корпусе МК используются регистры XBR0, XBR1 и XBR2 (см. рис.15.3, 15.4 и 15.5). Матрица функционирует одинаково для каждого МК, необходимо лишь помнить, чтовнешний порт Р2 отсутствует в МК F001/06/11/16, а внешние порты Р1 и Р2 отсутствуют в МК F002/07/12/17.Цифровые модули, подключенные к отсутствующим портам, будут недоступны.Допустимое напряжение на всех портах ввода/вывода составляет 5В (схема ячейки портаввода/вывода приведена на рис.15.2 ). В регистрах конфигурации портов (PRT0CF, PRT1CF, PRT2CF,PRT3CF) каждая ячейка порта ввода/вывода настраивается либо как цифровой вход/выход, либо как выход соткрытым стоком.
Электрические характеристики портов ввода/вывода приведены в табл. 15.2.15.1. Приоритетный декодер матрицыОдним из достоинств МК данного семейства является то, что разработчику доступен весь спектрцифровых ресурсов МК даже при использовании корпусов с сокращенным количеством выводов.Приоритетный декодер матрицы обеспечивает превосходное решение проблемы подключения внутреннихцифровых модулей к внешним выводам портов МК.Приоритетный декодер матрицы (см.табл.15.1) назначает приоритет входным/выходным сигналамкаждого цифрового модуля, начиная с модуля SMBus. В соответствии с таблицей 15.1, когда выбран модульSMBus, два его сигнала будут назначены выводам 0 и 1 порта Р0.
Декодер всегда заполняет битыввода/вывода от МЗР до СЗР, начиная с Р0, затем Р1, и заканчивая, если необходимо, портом Р2. Если ресурсне выбран для использования, то функция, следующая ниже по таблице, заполнит ячейку приоритета. Такимспособом можно выбрать лишь те функции, которые необходимы в проекте, полностью используя доступныевыводы портов.
Кроме этого, любые дополнительные порты ввода/вывода собираются в группы для болееудобного использования в коде приложения.Регистры XBR0, XBR1 и XBR2 используются для распределения цифровых ресурсов междувнешними выводами. Важно понять, что когда выбраны модули SMBus, SPI и УАПП, матрица распределяетвсе выводы, ассоциированные с этими модулями. Нельзя, например, назначить вывод RX модуля УАПП и неназначить вывод TX этого же модуля.
После назначения функций с приоритетами стандартные портыпоявляются смежно. Например, если выбрать функции, которые занимают первые 14 портов ввода/вывода(P0.[7:0], P1.[5:0]), то останется 18 неиспользуемых матрицей портов ввода/вывода (P1.[7:6], P2 и P3).15.2. Инициализация портов ввода/выводаИнициализация портов ввода/вывода осуществляется непосредственно. Регистры XBR0, XBR1 иXBR2 должны быть загружены соответствующими значениями для выбора требуемых в проекте цифровыхфункций.
Установка в 1 бита XBARE в регистре XBR2 включает матрицу. Пока матрица не включена,внешние выводы остаются стандартными портами, настроенными на вход, независимо от состояниярегистров XBRn., Для заданного состояния регистров XBRn можно определить разводку внешних выводов,используя таблицу декодирования приоритетов. Кроме этого функция мастера настройки кода (CodeConfiguration Wizard function) из состава программного пакета IDE сама определит разводку внешнихвыводов на основе состояния регистров XBRn.Характеристики выходного драйвера портов ввода/вывода определяются в регистрах конфигурациипортов PRT0CF, PRT1CF, PRT2CF и PRT3CF (см.
рис.15.7, рис. 15.9, рис.15.12, рис.15.14). Выходной драйверкаждого порта можно настроить либо как цифровой вход/выход, либо как выход с открытым стоком. Этонеобходимо даже для цифровых ресурсов, выбранных в регистрах XBRn, и не осуществляетсяавтоматически. Исключением из этого являются только выводы модуля SMBus (SDA, SCL) и выводприемника УАПП (RX, в режиме 0), которые являются выходами с открытым стоком независимо от настроекв регистрах PRTnCF. Если бит WEAKPUD в регистре XBR2 сброшен в 0, то ко всем портам ввода/вывода,настроенным как выходы с открытым стоком, подключается слаботоковая подтяжка. Бит WEAKPUD неPage 102CYGNAL Integrated Products, Inc.
20024.2002; Rev. 1.4C8051F000/1/2/5/6/7C8051F010/1/2/5/6/7влияет на порты ввода/вывода, настроенные как цифровые входы/выходы. Кроме этого, во избежаниененужного энергопотребления слаботоковые подтяжки отключаются у выходов с открытым стоком, накоторые выводится сигнал с низким логическим уровнем.Третьим и последним шагом является инициализация выбранных индивидуальных ресурсов сиспользованием соответствующих регистров управления. Процедуры инициализации различных цифровыхресурсов можно найти в подробном описании каждой имеющейся функции.
Состояние при сбросе каждогорегистра показано на рисунках, описывающих эти регистры.Рисунок 15.1. Функциональная схема портов ввода/выводаНаибольшийприоритет2SMBus(внутренние цифровые сигналы)SPIРегистры PRT0CF,PRT1CF, PRT2CFРегистры XBR0,XBR1, XBR24Внешниевыводы2УАПППриоритетныйдекодер6ПМС2Выходыкомп-вЦифроваяматрицаT0, T1, T2,T2EX,/INT0,/INT18/SYSCLKCNVSTR8P0P0.0Ячейкиввода/выводапорта 1P1.0Ячейкиввода/выводапорта 2P2.0НаибольшийприоритетP0.768НаименьшийприоритетЯчейкиввода/выводапорта 08(P0.0-P0.7)P1.7P2.7Наименьшийприоритет8P1(P1.0-P1.7)ЗащелкипортовРегистрPRT3CF8P2(P2.0-P2.7)Ячейкиввода/выводапорта 38P3P3.0P3.7(P3.0-P3.7)Рисунок 15.2. Структурная схема ячейки порта ввода/выводаWEAKPUDVDDPUSH-PULL/PORT-OUTENABLEVDD(ПОДТЯЖКА)ВНЕШНИЙВЫВОДПОРТАPORT-OUTPUTVDDDGNDPORT-INPUT4.2002; Rev.
1.4CYGNAL Integrated Products, Inc. 2002Page 103C8051F000/1/2/5/6/7C8051F010/1/2/5/6/7Таблица 15.1. Декодирование приоритетов матрицыP0PIN I/O 0SDASCLSCKMISO●●MOSI1●●NSSTXRXCEX0CEX1CEX2CEX3CEX4ECICP0CP1T0/INT0T1/INT1T2T2EX/SYSCLKCNVSTR●●●●2●●●●●3●●●●●P14●●●●5●●●6●●●7●●0●●1●23P2456701234567●● ● ● ●● ● ● ● ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●В таблице декодирования приоритетов точка (●) показывает, какому внешнему выводу порта(столбец) какой сигнал (строка) может быть назначен программой пользователя путем программированиярегистров XBR2, XBR1 и XBR0.Page 104CYGNAL Integrated Products, Inc. 20024.2002; Rev.
1.4C8051F000/1/2/5/6/7C8051F010/1/2/5/6/7Рисунок 15.3. XBR0: Регистр 0 матрицы портов ввода/выводаR/WR/WCP0OENECIEБит 7Бит 6R/WR/WR/WPCA0MEБит 5Бит 4R/WR/WUARTENSPI0OENБит 3Бит 7:CP0OEN: Бит подключения выхода Компаратора 00: CP0 не соединен с выводом порта.1: CP0 соединен с выводом порта.Бит 6:ECIE: Бит подключения входа ECI ПМС00: ECI не соединен с выводом порта.1: ECI соединен с выводом порта.Бит 2R/WSMB0OENБит 1Бит 0Значениепри сбросе:00000000SFR Адрес:0xE1Биты 3-5: PCA0ME: Биты подключения входов/выходов модуля ПМС0000: Все входы/выходы модуля ПМС не соединены с выводами порта.001: CEX0 соединен с выводом порта.010: CEX0, CEX1 соединены с двумя выводами порта.011: CEX0, CEX1, CEX2 соединены с тремя выводами порта.100: CEX0, CEX1, CEX2, CEX3 соединены с четырьмя выводами порта.101: CEX0, CEX1, CEX2, CEX3, CEX4 соединены с пятью выводами порта.110: Зарезервировано111: ЗарезервированоБит 2:UARTEN: Бит подключения входов/выходов УАПП0: Входы/выходы УАПП не соединены с выводами порта.1: RX, TX соединены с двумя выводами порта.Бит 1:SPI0OEN: Бит подключения входов/выходов модуля SPI0: Входы/выходы модуля SPI не соединены с выводами порта.1: MISO, MOSI, SCK и NSS соединены с четырьмя выводами порта.Бит 0:SMB0OEN: Бит подключения входов/выходов модуля SMBus0: Входы/выходы модуля SMBus не соединены с выводами P0.0, P0.1.1: SDA соединен с выводом P0.0, SCL соединен с выводом P0.1.4.2002; Rev.
1.4CYGNAL Integrated Products, Inc. 2002Page 105C8051F000/1/2/5/6/7C8051F010/1/2/5/6/7Рисунок 15.4. XBR1: Регистр 1 матрицы портов ввода/выводаR/WR/WR/WR/WR/WR/WR/WR/WSYSCKET2EXET2EINT1ET1EINT0ET0ECP1OENЗначениепри сбросе:Бит 7Бит 6Бит 5Бит 4Бит 1Бит 000000000Бит 3Бит 2Бит 7: SYSCKE: Бит подключения выхода SYSCLK0: Выход SYSCLK не соединен с выводом порта.1: Выход SYSCLK соединен с выводом порта.SFR Адрес:0xE2Бит 6: T2EXE: Бит подключения T2EX0: T2EX не соединен с выводом порта.1: T2EX соединен с выводом порта.Бит 5: T2E: Бит подключения T20: T2 не соединен с выводом порта.1: T2 соединен с выводом порта.Бит 4: INT1E: Бит подключения /INT10: /INT1 не соединен с выводом порта.1: /INT1 соединен с выводом порта.Бит 3: T1E: Бит подключения T10: T1 не соединен с выводом порта.1: T1 соединен с выводом порта.Бит 2: INT0E: Бит подключения /INT00: /INT0 не соединен с выводом порта.1: /INT0 соединен с выводом порта.Бит 1: T0E: Бит подключения T00: T0 не соединен с выводом порта.1: T0 соединен с выводом порта.Бит 0: CP1OEN: Бит подключения выхода Компаратора 10: CP1 не соединен с выводом порта.1: CP1 соединен с выводом порта.Page 106CYGNAL Integrated Products, Inc.
20024.2002; Rev. 1.4C8051F000/1/2/5/6/7C8051F010/1/2/5/6/7Рисунок 15.5. XBR2: Регистр 2 матрицы портов ввода/выводаR/WWEAKPUDR/WR/WR/WR/WR/WR/WR/WXBARE-----CNVSTEЗначениепри сбросе:Бит 7Бит 6Бит 5Бит 4Бит 1Бит 000000000Бит 3Бит 2SFR Адрес:Бит 7: WEAKPUD: Бит отключения слаботоковых подтяжек портов ввода/вывода0: Слаботоковые подтяжки включены (за исключением портов, чьи выводынастроены как цифровые)1: Слаботоковые подтяжки отключены0xE3Бит 6: XBARE: Бит включения матрицы0: Матрица отключена1: Матрица включенаБиты 5-1: Не используются. Читаются как 00000b.Бит 0: CNVSTE: Бит подключения входа запуска преобразования АЦП0: CNVSTR не соединен с выводом порта.1: CNVSTR соединен с выводом порта.Пример использования регистров XBR0, XBR1, XBR2:Будучи выбранными, цифровые ресурсы занимают внешние выводы портов в следующем порядке(см.
табл.15.1): сначала от Р0.0 до Р0.7, затем от Р1.0 до Р1.7, и последними от Р2.0 до Р2.7. Еслицифровые ресурсы не соединены с внешними выводами портов, то эти выводы отображены на битысоответствующих им внутренних регистров портов.Пример 1: Если XBR0 = 0x11, XBR1 = 0x00 и XBR2 = 0x40:P0.0=SDA, P0.1=SCL, P0.2=CEX0, P0.3=CEX1, P0.4 … P2.7 отображены на соответствующие портыввода/вывода.Пример 2: Если XBR0 = 0x80, XBR1 = 0x04 и XBR2 = 0x41:P0.0=CP0, P0.1=/INT0, P0.2 = CNVSTR, P0.3 … P2.7 отображены на соответствующие портыввода/вывода.4.2002; Rev. 1.4CYGNAL Integrated Products, Inc. 2002Page 107C8051F000/1/2/5/6/7C8051F010/1/2/5/6/715.3. Порты ввода/вывода общего назначенияКаждый МК имеет четыре 8-разрядных двунаправленных параллельных порта, которые могутиспользоваться как порты ввода/вывода общего назначения.