Микропроцессорная техника / Семейство микроконтроллеров MSP430x2xx_
.pdf5.3. Регистры модуля синхронизации 241
BCSCTL2, регистр управления 2 модуля синхронизации
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
SELMx |
DIVMx |
SELS |
|
DIVSx |
DCOR* |
||
|
|
|
|
|
|
|
|
rw–0 |
rw–0 |
rw–0 |
rw–0 |
rw–0 |
rw–0 |
rw–0 |
rw–0 |
*Не используется в моделях MSP430x20xx и MSP430x21x.
SELMx Биты Выбор MCLK. Эти биты определяют источник тактового сигнала 7…6 MCLK.
00 DCOCLK
01 DCOCLK
10XT2CLK, если генератор XT2 реализован в микроконтроллере. LFXT1CLK или VLOCLK, если генератор XT2 отсутствует
11LFXT1CLK или VLOCLK
DIVMx |
Биты |
Делитель для MCLK. |
|
|
5…4 |
00 |
/1 |
|
|
01 |
/2 |
|
|
10 |
/4 |
|
|
11 |
/8 |
SELS |
Бит 3 |
Выбор SMCLK. |
|
|
|
0 |
DCOCLK |
1XT2CLK, если генератор XT2 реализован в микроконтроллере.
|
|
|
LFXT1CLK или VLOCLK, если генератор XT2 отсутствует |
DIVSx |
Биты |
Делитель для SMCLK. |
|
|
2…1 |
00 |
/1 |
|
|
01 |
/2 |
|
|
10 |
/4 |
|
|
11 |
/8 |
DCOR |
Бит 0 |
Выбор резистора DCO. |
|
|
|
0 |
Внутренний резистор |
|
|
1 |
Внешний резистор |
242 Глава 5. Модуль синхронизации Basic Clock Module+
BCSCTL3, регистр управления 3 модуля синхронизации
7 |
6 |
|
|
5 |
4 |
3 |
2 |
1 |
0 |
|
XT2Sx |
|
|
LFXT1Sx |
|
XCAPx |
XT2OF* |
LFXT1OF |
|
|
|
|
|
|
|
|
|
|
|
rw–0 |
rw–0 |
|
|
rw–0 |
rw–0 |
rw–0 |
rw–1 |
r0 |
r–(1) |
*Не используется в моделях MSP430x2xx, MSP430x21xx и MSP430x22xx. |
|
|
|||||||
XT2Sx |
Биты |
Выбор диапазона XT2. Эти биты определяют частотный диапазон ге |
|||||||
|
7…6 |
нератора XT2. |
|
|
|
|
|
||
|
|
00 |
Кварцевый/керамический резонатор 0.4…1 МГц |
|
|||||
|
|
01 |
Кварцевый/керамический резонатор 1…3 МГц |
|
10Кварцевый/керамический резонатор 3…16 МГц
11Внешний сигнал частотой 0.4…16 МГц
LFXT1Sx Биты Выбор низкочастотного источника тактового сигнала и выбор диа 5…4 пазона LFXT1. При XTS = 0 эти биты определяют источник тактово го сигнала (LFXT1 или VLO). При XTS = 1 данные биты определяют
частотный диапазон генератора LFXT1. XTS = 0:
00 Кварцевый резонатор 32 768 Гц в генераторе LFXT1
01 Зарезервировано
10VLOCLK
11Внешний сигнал синхронизации
XTS = 1 (не применимо для моделей MSP430x20xx): 00 Кварцевый/керамический резонатор 0.4…1 МГц 01 Кварцевый/керамический резонатор 1…3 МГц
|
|
10 |
Кварцевый/керамический резонатор 3…16 МГц |
|
|
11 |
Внешний сигнал частотой 0.4…16 МГц |
XCAPx |
Биты |
Выбор нагрузочной ёмкости. При XTS = 0 эти биты определяют ве |
|
|
3…2 |
личину нагрузочной ёмкости для резонатора, подключаемого к гене |
|
|
|
ратору LFXT1. Если XTS = 1 или LFXT1Sx = 11, то биты XCAPx |
|
|
|
должны быть равны 00. |
|
|
|
00 |
~ 1 пФ |
|
|
01 |
~ 6 пФ |
|
|
10 |
~ 10 пФ |
|
|
11 |
~ 12.5 пФ |
XT2OF |
Бит 1 |
Неисправность генератора XT2. |
|
|
|
0 |
Генератор функционирует нормально |
|
|
1 |
Обнаружен сбой генератора |
LFXT1OF |
Бит 0 |
Неисправность генератора LFXT1. |
|
|
|
0 |
Генератор функционирует нормально |
|
|
1 |
Обнаружен сбой генератора |
5.3. Регистры модуля синхронизации 243
IE1, регистр разрешения прерываний 1
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
OFIE
rw–0
Биты Эти биты могут использоваться другими модулями. См документа 7…2 цию на конкретный микроконтроллер.
OFIE Бит 1 Разрешение прерывания при неисправности генератора. Этот бит разрешает прерывание OFIFG. Поскольку прочие биты регистра IE1 могут использоваться другими модулями, то для установки или очистки битов регистра рекомендуется вместо команд MOV.B или CLR.B применять команды BIS.B и BIC.B.
0 Прерывание запрещено
1Прерывание разрешено
Бит 0 Эти биты могут использоваться другими модулями. См документа цию на конкретный микроконтроллер.
IFG1, регистр флагов прерываний 1
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
OFIFG
rw–1
Биты Эти биты могут использоваться другими модулями. См документа 7…2 цию на конкретный микроконтроллер.
OFIFG Бит 1 Флаг прерывания при неисправности генератора. Поскольку прочие биты регистра IFG1 могут использоваться другими модулями, то для установки или очистки битов регистра рекомендуется вместо команд MOV.B или CLR.B применять команды BIS.B и BIC.B.
0 Не было запроса прерывания
1Есть запрос прерывания
Бит 0 Эти биты могут использоваться другими модулями. См документа цию на конкретный микроконтроллер.
|
|
|
|
|
6.1. Введение 245 |
|
|
DMA0TSELx |
|
|
|
|
|
|
4 |
|
|
|
|
|
DMAREQ |
0000 |
|
|
|
|
|
TACCR2_CCIFG |
0001 |
|
|
|
|
|
TBCCR2_CCIFG |
0010 |
|
|
|
|
|
Приём данных USCI A0 |
0011 |
|
|
|
|
|
Передача данных USCI A0 |
0100 |
|
|
|
JTAG активен |
|
DAC12_0IFG |
0101 |
|
|
|
||
|
|
|
|
|||
ADC12_IFGx |
0110 |
Останов |
|
|
Запрос NMI прерывания |
|
TACCR0_CCIFG |
0111 |
ROUNDROBIN |
ENNMI |
|||
TBCCR0_CCIFG |
1000 |
|
|
|||
|
|
|
|
|||
Приём данных USCI A1 |
1001 |
|
|
DMADSTINCRx |
DMADTx |
|
Передача данных USCI A1 |
1010 |
|
2 |
DMADSTBYTE |
3 |
|
Готовность умножителя |
1011 |
|
|
|||
|
|
|
|
|||
Приём данных USCI B0 |
1100 |
|
|
Канал 0 DMA |
|
|
|
|
|
|
|||
Передача данных USCI B0 |
1101 |
|
|
DMA0SA |
DT |
|
DMA2IFG |
1110 |
|
|
|
||
|
|
DMA0DA |
|
|||
DMAE0 |
1111 |
|
|
|
||
|
|
|
|
|||
|
|
|
|
DMA0SZ |
|
|
|
DMA1TSELx |
|
2 |
|
|
|
|
4 |
|
DMASRSBYTE |
|
||
|
|
|
|
|||
|
|
|
DMASRCINCRx |
DMAEN |
||
|
|
|
|
|||
DMAREQ |
0000 |
|
|
|
|
|
TACCR2_CCIFG |
0001 |
|
|
|
|
|
TBCCR2_CCIFG |
0010 |
|
|
DMADSTINCRx |
DMADTx |
|
Приём данных USCI A0 |
0011 |
|
|
|||
DMA |
|
|
||||
|
DMADSTBYTE |
|
||||
Передача данных USCI A0 |
0100 |
2 |
3 |
|||
|
||||||
|
|
|
|
|
||
DAC12_0IFG |
0101 |
модулем |
|
Канал 1 DMA |
|
|
ADC12_IFGx |
0110 |
|
|
|||
|
|
|
||||
TACCR0_CCIFG |
0111 |
|
DMA1SA |
DT |
||
|
|
|||||
TBCCR0_CCIFG |
1000 |
Управление |
|
DMA1DA |
Адресное |
|
Приём данных USCI A1 |
1001 |
|
DMA1SZ |
пространство |
||
Передача данных USCI A1 |
1010 |
|
|
|||
|
|
|
||||
Готовность умножителя |
1011 |
2 |
DMASRSBYTE |
|
||
Приём данных USCI B0 |
1100 |
|
||||
|
|
DMASRCINCRx |
DMAEN |
|||
Передача данных USCI B0 |
1101 |
|
|
|||
|
|
|
|
|||
DMA0IFG |
1110 |
|
|
|
|
|
DMAE0 |
1111 |
|
|
DMADSTINCRx |
DMADTx |
|
|
|
|
|
|||
|
|
|
2 |
DMADSTBYTE |
3 |
|
|
DMA2TSEL |
|
|
|||
|
|
|
|
|
||
|
4 |
|
|
Канал 2 DMA |
|
|
DMAREQ |
0000 |
|
|
DMA2SA |
DT |
|
TACCR2_CCIFG |
0001 |
|
|
|
||
|
|
DMA2DA |
|
|||
TBCCR2_CCIFG |
0010 |
|
|
|
||
|
|
|
|
|||
Приём данных USCI A0 |
0011 |
|
|
DMA2SZ |
|
|
Передача данных USCI A0 |
0100 |
|
2 |
|
|
|
DAC12_0IFG |
0101 |
|
DMASRSBYTE |
|
||
|
|
|
||||
|
|
DMASRCINCRx |
|
|||
ADC12_IFGx |
0110 |
|
|
DMAEN |
||
TACCR0_CCIFG |
0111 |
|
DMAONFETCH |
|
||
|
|
|
|
|||
TBCCR0_CCIFG |
1000 |
|
|
|
|
|
Приём данных USCI A1 |
1001 |
|
|
Останов ЦПУ |
|
|
|
|
|
|
|||
Передача данных USCI A1 |
1010 |
|
|
|
||
|
|
|
|
|||
|
|
|
|
|
||
Готовность умножителя |
1011 |
|
|
|
|
|
Приём данных USCI B0 |
1100 |
|
|
|
|
|
Передача данных USCI B0 |
1101 |
|
|
|
|
|
DMA1IFG |
1110 |
|
|
|
|
|
DMAE0 |
1111 |
|
|
|
|
|
|
Рис. 6.1. Блок схема контроллера DMA. |
6.2. Функционирование контроллера DMA 247
6.2.2. Режимы пересылки контроллера DMA
Контроллер DMA поддерживает шесть режимов пересылки данных, которые определяются битами DMADTx в соответствии с Табл. 6.1. Режим пересылки за даётся индивидуально для каждого канала DMA. Так, канал 0 может использовать режим пересылки одиночных значений, одновременно с этим канал 1 может ра ботать в режиме пересылки группы блоков, а канал 2 — в режиме циклической пересылки блока данных.
Разрядность пересылаемых данных определяется битами DSTBYTE (приём ник) и SRCBYTE (источник) регистра DMAxCTL. Как источник, так и приёмник может быть однобайтным либо двухбайтным. Пересылка может осуществляться между однобайтными адресатами, между двухбайтными адресатами, а также меж ду адресатами разной разрядности.
Таблица 6.1. Режимы пересылки DMA
DMADTx |
Режим |
Описание |
|
пересылки |
|||
|
|
||
|
|
|
|
000 |
Пересылка одиночных |
Каждая пересылка требует отдельного запуска. Бит DMAEN авто |
|
|
значений |
матически сбрасывается после осуществления DMAxSZ пересылок |
|
|
|
|
|
001 |
Пересылка блоков |
Весь блок пересылается по одному сигналу запуска. Бит |
|
|
|
DMAEN автоматически сбрасывается после пересылки блока |
|
|
|
|
|
010, 011 |
Пакетная пересылка |
ЦПУ периодически активируется во время пересылки блока. Бит |
|
|
блоков |
DMAEN автоматически сбрасывается после пересылки блока |
|
|
|
|
|
100 |
Циклическая пересыл |
Каждая пересылка требует отдельного запуска. Бит DMAEN ос |
|
|
ка одиночных значений |
таётся установленным |
|
|
|
|
|
101 |
Циклическая пересыл |
Весь блок пересылается по одному сигналу запуска. Бит |
|
|
ка блоков |
DMAEN остаётся установленным |
|
|
|
|
|
110, 111 |
Циклическая пересыл |
ЦПУ периодически активируется во время пересылки блока. |
|
|
ка группы блоков |
Бит DMAEN остаётся установленным |
Пересылка одиночных значений
Врежиме пересылки одиночных значений пересылка каждого байта/слова за пускается индивидуально. Диаграмма состояний для этого режима показана на
Рис. 6.3.
Регистр DMAxSZ используется для задания числа пересылок. Биты DMADSTINCRx и DMASRCINCRx определяют, будет ли адрес приёмника и ис точника инкрементироваться либо декрементироваться после каждой пересылки. Если DMAxSZ = 0, то пересылка не производится.
Содержимое регистров DMAxSA, DMAxDA и DMAxSZ копируется во временные регистры. Временно сохранённые значения DMAxSA и DMAxDA инкрементируют ся или декрементируются после каждой пересылки. Регистр DMAxSZ декрементиру ется после каждой пересылки. При достижении нулевого значения он перезагружа ется из соответствующего временного регистра. Одновременно устанавливается флаг DMAIFG соответствующего канала. При DMADTx = 0 бит DMAEN сбрасывается автоматически при достижении регистром DMAxSZ нулевого значения и должен быть установлен повторно для выполнения следующей пересылки.
Врежиме циклической передачи одиночных значений контроллер DMA ав томатически не отключается (DMAEN = 1), и пересылка осуществляется каждый раз при появлении события, инициирующего запуск.