Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пояснительная_записка.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
5 Мб
Скачать
☆
        1. Конфигурирование портов ввода/вывода

Регистр XBR0:

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Значение при сбросе:

00000000

CP0E

ECI0E

PCA0ME

UART0EN

SPI0EN

SMB0EN

Бит 7

Бит 6

Бит 5

Бит 4

Бит 3

Бит 2

Бит 1

Бит 0

Бит 7: CP0E - бит подключения выхода компаратора 0 (CP0)

0 - CP0 не соединен с выводом порта

1 - CP0 соединен с выводом порта

Бит 6: ECI0E – бит подключения входа ECI ПМС0

0 – ECI не соединен с выводом порта

1 - ECI соединен с выводом порта

Биты 5-3: PCA0ME – биты подключения входов/выходов модуля ПМС0

000 – все входы/выходы модуля ПМС не соединены с выводами порта

001 – CEX0 соединен с выводом порта

010 – CEX0, CEX1 соединены с двумя выводами порта

011 – CEX0, CEX1, CEX2 соединены с тремя выводами порта

100 – CEX0, CEX1, CEX2, CEX3 соединены с четырьмя выводами порта

101 – CEX0, CEX1, CEX2, CEX3, CEX4 соединены с пятью выводами порта

110 – CEX0, CEX1, CEX2, CEX3, CEX4, CEX5 соединены с 6 выводами порта

Бит 2: UART0EN – бит подключения входов/выходов УАПП0

0 – входы/выходы УАПП0 не соединены с выводами порта

1 – TX0 и RX0 соединены с выводами P0.0 и P0.1 соответсвенно

Бит 1: SPI0EN - бит подключения входов/выходов модуля SPI0

0 – входы/выходы модуля SPI0 не соединены с выводами порта

1 – в 4-х проводном режиме MISO, MOSI, SCK и NSS соединены с 4 выводами

порта, в 3-х проводном MISO, MOSI, SCK соединены с 3 выводами порта.

Бит 0: SMB0EN – бит подключения входов/выходов модуля SMBus0

0 – входы/выходы модуля SMBus0 не соединены с выводами порта

1 – SDA и SCL соединены с двумя выводами порта

Регистр XBR2:

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Значение при сбросе:

00000000

WEAKPUD

XBARE

-

T4EXE

T4E

UART1E

-

-

Бит 7

Бит 6

Бит 5

Бит 4

Бит 3

Бит 2

Бит 1

Бит 0

Бит 7: WEAKPUD - бит отключения слаботоковых подтяжек портов вводы/вывода

0 – слаботоковые подтяжки включены

1 - слаботоковые подтяжки отключены

Бит 6: XBARE – бит включения матрицы

0 – матрица отключена, все выводы портов P0, P1, P2 и P3 настроены на вход

1 - матрица включена

Бит 5: зарезервирован. Читается как 0b. Запись не оказывает никакого влияния.

Бит 4: T4EXE – бит подключения входа T4EX

0 – T4EX не соединены с выводом порта

1 – T4EX соединен с выводом порта

Бит 3: T4E - бит подключения входа T4

0 – T4 не соединены с выводом порта

1 – T4 соединен с выводом порта

Бит 2: UART1E – бит подключения входов/выходов УАПП1

0 – входы/выходы УАПП1 не соединены с выводами порта

1 – TX1 и RX1 соединены с двумя выводами порта

Биты 1-0: зарезервированы

Конфигурирование портов ввода – вывода происходит в функции Port_Init().

Приоритетный декодер матрицы, или «матрица», распределяет и назначает выводы портов цифровым периферийным модулям МК, используя приоритеты. Матрица назначает выводы портов периферийным модулям, если соответствующие биты подключения в регистрах конфигурации матрицы XBR0, XBR1, XBR2 и XBR3 установлены в 1.

Для нашей задачи необходимо правильно установить биты в регистрах конфигурирования матрицы, чтобы связать (или наоборот) выводы портов с цифровыми периферийными модулями.

1. Для разрешения работы УАППа необходимо установить в ‘1’ 2-ый бит (UART0EN) регистра XBR0 (запись значения b00000100 или 0x04 в XBR0).

2. Также необходимо установить в '1' бит глобального разрешения цифрового коммутатора 6-ой бит (XBARE) регистра XBR2 (запись значения b01000000 или 0x40 в XBR2).

Следующий код функции Port_Init(void) иллюстрирует вышеописанную процедуру:

XBR0=0x04; // Enable UART0 on crossbar

XBR1=0x00;

XBR2=0x40; // Enable crossbar and weak pull-ups

Помимо этого необходимо запрограммировать работу выходных драйверов.

Регистр PхMDOUT:

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Значение при сбросе:

00000000

Бит 7

Бит 6

Бит 5

Бит 4

Бит 3

Бит 2

Бит 1

Бит 0

Биты 7-0: PхMDOUT – биты настройки выходного драйвера порта х

0 – соответствующий вывод P0.n настроен как выход с открытым стоком

1 – соответствующий вывод P0.n настроен как цифровой двухтактный выход

По умолчанию после RESETа каждая линия порта ввода/вывода запрограммирована для работы в режиме OPEN_DRAIN. В нашей работе необходимо перепрограммировать выходные драйвера Port0 и Port1 на работу в режиме PUSH_PULL.

P0MDOUT=0xFF; // enable Port0 outputs as push-pull

P1MDOUT |= 0x40; // enable Port1 Pin 6 output as Push-Pull