Руководство пользователя MSP430 (1041606), страница 17
Текст из файла (страница 17)
DMAxDA, регистр адреса получателя DMA
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
DMAxDAx |
rw | rw | rw | rw | rw | rw | rw | rw |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
DMAxDAx |
rw | rw | rw | rw | rw | rw | rw | rw |
DMAxDAx | Биты 15-0 | Адрес DMA получателя. Регистр адреса получателя указывает адрес получателя DMA для одиночных переносов или первый адрес получателя для блочных переносов. Регистр DMAxDA остается неизменным во время блочных или пакетно-блочных переносов. |
DMAxSZ, адресный регистр размера DMA
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
DMAxSZx |
rw | rw | rw | rw | rw | rw | rw | rw |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
DMAxSZx |
rw | rw | rw | rw | rw | rw | rw | rw |
DMAxSZx | Биты 15-0 | Размер DMA. Регистр размера DMA определяет количество данных при переносе блока. Регистр DMAxSZ декрементируется при каждом переносе слова или байта. Когда DMAxSZ декрементируется до нуля, в него немедленно автоматически перезагружается предыдущее значение инициализации. 00000h Перенос запрещен 00001h Перенос одного байта или слова 00002h Перенос двух байт или слов . . 0FFFFh Перенос 65535 байт или слов |
Раздел 9 Цифровые входы/выходы
В этом разделе описывается работа портов цифровых входов/выходов. Порты P1-P2 имеются в устройствах MSP430x11xx. Порты Р1-Р3 реализованы в устройствах MSP430x12xx. Порты Р1-Р6 реализованы в устройствах MSP430x14, MSP430x15x и MSP430x16x.
9.1 Введение в цифровые входы/выходы
Устройства MSP430 имеют до 6 портов цифровых входов/выходов от Р1 до Р6. Каждый порт имеет 8 выводов входа/выхода. Каждый вывод индивидуально конфигурируется как вход или выход и каждая линия ввода/вывода может быть индивидуально считана или записана.
Порты Р1 и Р2 имеют возможность вызывать прерывание. Для каждой линии ввода/вывода портов Р1 и Р2 можно индивидуально разрешить прерывания и сконфигурировать их так, чтобы прерывание происходило по фронту или спаду входного сигнала. Все линии ввода/вывода порта Р1 являются источником одного вектора прерывания, а все линии ввода/вывода порта Р2 – источник другого вектора прерывания.
Цифровые входы/выходы обладают следующими возможностями:
-
Независимые индивидуально программируемые входы/выходы;
-
Любые комбинации входа или выхода;
-
Индивидуально конфигурируемые прерывания от Р1 и Р2;
-
Раздельные регистры данных для входов и выходов.
9.1 Функционирование цифровых входов/выходов
Цифровые входы/выходы конфигурируются программным обеспечением пользователя. Настройка и работа цифровых входов/выходов описывается в нижеследующих разделах.
9.2.1 Регистры ввода PnIN
Каждый бит в каждом регистре PnIN отражает величину входного сигнала на соответствующей ножке ввода/вывода, когда она сконфигурирована на функцию ввода/вывода.
Бит = 0: Входной сигнал имеет низкий уровень;
Бит = 1: Входной сигнал имеет высокий уровень.
Примечание: Запись в регистры «только для чтения» PxIN |
9.2.2 Регистры вывода PnOUT
Каждый бит в каждом регистре PnOUT содержит значение, которое будет выведено на соответствующую ножку ввода/вывода, сконфигурированную на функцию ввода/вывода и имеющую направление на вывод.
Бит = 0: Выходной сигнал имеет низкий уровень; Бит = 1: Выходной сигнал имеет высокий уровень.
9.2.3 Регистры направления PnDIR
Каждый бит в каждом регистре PnDIR позволяет выбрать направление соответствующей ножки ввода/вывода, независимо от выбранной для этой ножки функции. Биты PnDIR для ножек ввода/вывода, выбранные для других функций модуля должны быть установлены так, как это требуется для другой функции.
Бит = 0: Ножка порта переключается на ввод;
Бит = 1: Ножка порта переключается на вывод.
9.2.4 Регистры выбора функции PnSEL
Ножки порта часто мультиплексированы с другими функциями периферийных модулей. См. справочное руководство по конкретному устройству для выяснения возможных функций вывода. Каждый бит PnSEL определяет, как будет использована ножка – в качестве порта ввода/вывода или в качестве функции периферийного модуля.
Бит = 0: Для ножки выбирается функция ввода/вывода
Бит = 1: Для ножки выбирается функция периферийного модуля
Установка PnSEL=1 автоматически не определяет направление движения информации для ножки. Некоторые функции периферийных модулей требуют конфигурирования битов PnDIR для выбора направления, необходимого для правильной работы этой функции.
;Вывод ACLK на P2.0 в устройстве MSP430F11x1
BIS.B #01h,&P2SEL ; Выбор функции ACLK для ножки
BIS.B #01h,&P2DIR ; Установка направления на вывод (необходимо)
Примечание: Отключение прерываний от Р1 и Р2 при PnSEL=1 |
Когда вывод порта работает как вход периферии, входным сигналом периферии является зафиксированное в защелке представление сигнала на выводе устройства. Когда PnSELx=1, внутренний входной сигнал соответствует сигналу на ножке. Однако, если PnSELx=0, на входе периферии сохраняется значение входного сигнала на выводе устройства, имевшееся перед сбросом бита PnSELx.
9.2.5 Прерывания Р1 и Р2
Каждая ножка портов Р1 и Р2 имеет возможность вызова прерывания, конфигурируемую регистрами PnIFG, PnIE и PnIES. Все ножки Р1 – источник одного вектора прерывания, а все выводы Р2 – источник другого одиночного вектора прерывания. Определить источник прерывания - Р1 или Р2 можно путем проверки регистра PnIFG.
Регистры флагов прерывания Р1IFG, Р2IFG
Каждый бит PnIFG – это флаг прерывания соответствующей ножки ввода/вывода, устанавливаемый, когда происходит перепад выбранного входного сигнала на ножке. Все флаги прерывания PnIFG запрашивают прерывание, когда установлен их соответствующий бит PnIE и установлен бит GIE. Каждый флаг PnIFG должен быть сброшен программно. Программное обеспечение также может устанавливать каждый флаг PnIFG, обеспечивая возможность генерации программно-инициированного прерывания.
Бит = 0: Прерывание не ожидается
Бит = 1: Прерывание ожидается
Прерывания вызывают только перепады уровней, а не статические уровни. Если любой флаг PnIFG оказывается установленным во время выполнения процедуры обработки прерывания Px или устанавливается после команды RETI выполняемой процедуры обработки прерывания Px, установка флага PnIFGx генерирует другое прерывание. Таким образом, гарантируется, что каждый перепад уровня будет учтен.
Примечание: Состояние флагов PnIFG при изменении PnOUT или PnDIR |
Примечание: Длительность события вызова прерывания на ножке ввода/вывода |
Регистры выбора фронта прерывания P1IES, P2IES
Каждый бит PnIES позволяет выбрать, по какому фронту сигнала будет происходить прерывание для соответствующей ножки ввода/вывода.
Бит = 0: Флаг PnIFG устанавливается при изменении уровня сигнала с низкого на высокий;
Бит = 1: Флаг PnIFG устанавливается при изменении уровня сигнала с высокого на низкий.
Примечание: Запись в PnIESx
|
Разрешение прерываний P1IE, P2IE
Каждый бит PnIE разрешает прерывание от соответствующего флага прерываний регистра PnIFG.
Бит = 0: Прерывание запрещено
Бит = 1: Прерывание разрешено
9.2.6 Конфигурирование неиспользуемых выводов порта
Неиспользуемые ножки ввода/вывода должны быть сконфигурированы на функцию ввода/вывода, в направлении вывода и оставаться неподключенными на печатной плате для уменьшения потребляемой мощности. Значение бита PxOUT может быть любым, поскольку ножка не подключена. См. раздел «Системный сброс, прерывания и режимы работы» для уточнения вопросов подключения неиспользуемых выводов.
9.3 Регистры цифровых входов/выходов
Для конфигурирования Р1 и Р2 используются семь регистров. Четыре регистра необходимы для конфигурирования портов Р3-Р6. Регистры цифровых входов/выходов приведены в таблице 9-1.
Таблица 9-1. Регистры цифровых входов-выходов.
Порт | Регистр | Краткое | Адрес | Тип | Исходное |
P1 | Ввод | P1IN | 020h | Только чтение | - |
Вывод | P1OUT | 021h | Чтение/запись | Не изменяется | |
Направление | P1DIR | 022h | Чтение/запись | Сброс с PUC | |
Флаг прерывания | P1IFG | 023h | Чтение/запись | Сброс с PUC | |
Выбор фронта прерывания | P1IES | 024h | Чтение/запись | Не изменяется | |
Разрешение прерывания | P1IE | 025h | Чтение/запись | Сброс с PUC | |
Выбор порта | P1SEL | 026h | Чтение/запись | Сброс с PUC | |
P2 | Ввод | P2IN | 028h | Только чтение | - |
Вывод | P2OUT | 029h | Чтение/запись | Не изменяется | |
Направление | P2DIR | 02Ah | Чтение/запись | Сброс с PUC | |
Флаг прерывания | P2IFG | 02Bh | Чтение/запись | Сброс с PUC | |
Выбор фронта прерывания | P2IES | 02Ch | Чтение/запись | Не изменяется | |
Разрешение прерывания | P2IE | 02Dh | Чтение/запись | Сброс с PUC | |
Выбор порта | P1SEL | 026h | Чтение/запись | Сброс с PUC | |
P3 | Ввод | P3IN | 018h | Только чтение | - |
Вывод | P3OUT | 019h | Чтение/запись | Не изменяется | |
Направление | P3DIR | 01Ah | Чтение/запись | Сброс с PUC | |
Выбор порта | P3SEL | 01Bh | Чтение/запись | Сброс с PUC | |
P4 | Ввод | P4IN | 01Ch | Только чтение | - |
Вывод | P4OUT | 01Dh | Чтение/запись | Не изменяется | |
Направление | P4DIR | 01Eh | Чтение/запись | Сброс с PUC | |
Выбор порта | P4SEL | 01Fh | Чтение/запись | Сброс с PUC | |
P5 | Ввод | P5IN | 030h | Только чтение | - |
Вывод | P5OUT | 031h | Чтение/запись | Не изменяется | |
Направление | P5DIR | 032h | Чтение/запись | Сброс с PUC | |
Выбор порта | P5SEL | 033h | Чтение/запись | Сброс с PUC | |
P6 | Ввод | P6IN | 034h | Только чтение | - |
Вывод | P6OUT | 035h | Чтение/запись | Не изменяется | |
Направление | P6DIR | 036h | Чтение/запись | Сброс с PUC | |
Выбор порта | P6SEL | 037h | Чтение/запись | Сброс с PUC |
Раздел 10 Сторожевой таймер
Сторожевой таймер – это 16-разряный таймер, который можно использовать как в качестве сторожевого, так и в качестве «интервального» таймера. В этом разделе описывается модуль сторожевого таймера. Сторожевой таймер реализован во всех устройствах MSP430x1xx.