Файл: Семейство микроконтроллеров MSP430X1XX, руководство пользователя (2004).pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.06.2025

Просмотров: 2861

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Контроллер DMA

Раздел VIII.

MSP430x1xxFamily

MSP430x1xxFamily

Контроллер DMA

Модуль контроллера DMA переносит данные из одного адреса в другой без участия ЦПУ. Этот раздел описывает работу контроллера DMA. Контроллер DMA реализован в устройствах MSP430x15x и MSP430x16x.

8.1. Введение в контроллер DMA

Контроллер прямого доступа к памяти (DMA) переносит данные из одного адреса в другой во всем адресном диапазоне без вмешательства ЦПУ. К примеру, контроллер DMA может переместить данные из памяти преобразования АЦП12 в ОЗУ.

Использование контроллера DMA может увеличить пропускную способность периферийных модулей. Также в результате его использования снижается потребляемой системой мощности, поскольку ЦПУ может оставаться в режиме пониженного энергопотребления без пробуждения при перемещении данных в/из периферии.

Контроллер DMA обладает следующими возможностями:

Три независимых канала переноса;

Конфигурируемые приоритеты канала DMA;

Необходимо только два тактовых цикла MCLK;

Возможен перенос байтов, слов или смешанно байтов/слов;

Размер блока до 65535 байт или слов;

Набор конфигурируемых источников запуска переноса;

Возможность выбора условия запуска переноса по фронту/спаду или по уровню;

Четыре режима адресации;

Одиночный, блочный или пакетно-блочный режимы переноса.

Блок-схема контроллера DMA показана на рис. 8.1.

8.2. Функционирование DMA

Контроллер DMA конфигурируется программным обеспечением пользователя. В следующих далее разделах описывается инициализация и функционирование DMA.

8.2.1. Режимы адресации DMA

Контроллер DMA имеет четыре режима адресации. Режимы адресации каждого канала DMA конфигурируются независимо друг от друга. Например, канал 0 может выполнять перенос между двумя фиксированными адресами, в то время как в канале 1 выполняются переносы между двумя блоками адре-

146

Библиотека Компэла


Раздел VIII.

Контроллер DMA

DMA0TSELx

Активность JTAG

4

DMAREQ

0000

Останов

Запрос NMI прерывания

ENNMI

TACCR2_CCIFG

0001

ROUNDROBIN

TBCCR2_CCIFG

0010

Приняты данные USART0

0011

DMADSTINCRx

DMADTx

Готовность передачи USART0

0100

DMADSTBYTE

DAC12_0IFG

0101

2

3

ADC12IFGx

0110

Канал 0 DMA

TACCR0_CCIFG

0111

TBCCR0_CCIFG

1000

DMA0SA

Приняты данные USART1

1001

DT

Готовность передачи USART1

1010

DMA0DA

Готовность умножителя

1011

Нет запуска

DMA0SZ

Нет запуска

DMA1IFG

1110

DMAE0

1111

2

DMASRSBYTE

DMASRCINCRx

DMAEN

DMA1TSELx

4

DMAREQ

0000

DMADSTINCRx

DMADTx

TACCR2_CCIFG

0001

2

DMADSTBYTE

3

TBCCR2_CCIFG

0010

Приоритет

DMA1SA

DAC12_0IFG

0101

Приняты данные USART0

0011

Канал 1 DMA

Готовность передачи USART0

0100

ADC12IFGx

0110

DMA

DT

TACCR0_CCIFG

0111

DMA1DA

Адресное

TBCCR0_CCIFG

1000

и

пространство

Нет запуска

1001

управление

2

DMASRSBYTE

Приняты данные USART1

DMA1SZ

Готовность передачи USART1

1010

Готовность умножителя

1011

Нет запуска

DMASRCINCRx

DMAEN

DMA1IFG

1110

DMAE0

1111

DMA2TSELx

DMADSTINCRx

DMADTx

4

2

DMADSTBYTE

3

DMAREQ

0000

Канал 2 DMA

TACCR2_CCIFG

0001

DMA2SA

TBCCR2_CCIFG

0010

DT

Приняты данные USART0

0011

DMA2DA

Готовность передачи USART0

0100

DAC12_0IFG

0101

DMA2SZ

ADC12IFGx

0110

TACCR0_CCIFG

0111

2

TBCCR0_CCIFG

1000

DMASRSBYTE

Приняты данные USART1

1001

DMASRCINCRx

DMAEN

Готовность передачи USART1

1010

Готовность умножителя

1011

DMAONFETCH

Нет запуска

Нет запуска

DMA1IFG

1110

Останов ЦПУ

DMAE0

1111

Рис. 8-1. Блок-схема контроллера DMA

сов. Режимы адресации показаны на рис. 8.2. Существуют следующие режимы адресации:

Фиксированный адрес к фиксированному адресу;

Фиксированный адрес к блоку адресов;

Блок адресов к фиксированному адресу;

Блок адресов к блоку адресов.

Библиотека Компэла

147


MSP430x1xxFamily

Контроллер

Адресное пространство

DMA

С заданного адреса в заданный адрес

Контроллер

Адресное пространство

DMA

Из блока адресов в заданный адрес

Контроллер

Адресное пространство

DMA

С заданного адреса в блок адресов

Контроллер

Адресное пространство

DMA

Из блока адресов в блок адресов

Рис. 8-2. Режимы адресации DMA

Режимы адресации конфигурируются с помощью управляющих битов DMASRCINCRx и DMADSTINCRx. Биты DMASRCINCRx выбираются, если адрес источника инкрементируется, декрементируется или не изменяется после каждого переноса. Биты DMADSTINCRx выбираются, если адрес назначения инкрементируется, декрементируется или не изменяется после каждого переноса.

Переносы могут быть такими: байт-байт, слово-слово, байт-слово или сло- во-байт. Когда выполняется перенос слово-байт, переносится только младший байт слова-источника. Когда выполняется перенос байт-слово, старший байт слова-получателя очищается, когда происходит перенос.

148

Библиотека Компэла

Раздел VIII.

Контроллер DMA

8.2.2. Режимы переноса DMA

Контроллер DMA имеет шесть режимов переноса, определяемых битами DMADTx, в соответствии с таблицей 8-1. В каждом канале режим переноса конфигурируется индивидуально. К примеру, канал 0 может быть сконфигурирован в одиночном режиме переноса, канал 1 в режиме пакетно-блочного переноса, а канал 2 работать в повторяющемся блочном режиме. Режим переноса конфигурируется независимо от режима адресации. Любой режим адресации можно использовать в любом режиме переноса.

Таблица 8-1. Режимы переноса DMA

DMADTx

Режим переноса

Описание

Каждый перенос нуждается в

запуске. DMAEN автоматически

000

Одиночныйперенос

очищается после выполнения

количества переносов, опреде-

ленного в DMAxSZ.

Блок переносится полностью

001

Блочныйперенос

после одного запуска. DMAEN

автоматически очищается после

завершения переноса блока.

ЦПУ активен в промежутках

между переносами блоков.

010, 011

Пакетно-блочный перенос

DMAEN автоматически очища-

ется после завершения пакетно-

блочного переноса.

Повторяющийся одиночный-

Каждый перенос нуждается в

100

запуске. DMAEN остается уста-

перенос

новленным.

Повторяющийся блочный

Блок переносится полностью

101

после одного запуска. DMAEN

перенос

остается установленным.

ЦПУ активен в промежутках

110, 111

Повторяющийся пакетно-блоч-

между переносами блоков.

ный перенос

DMAEN остается установлен-

ным.

Одиночный перенос

В одиночном режиме переноса пересылка каждого байта/слова требует отдельного запуска. Диаграмма состояний при одиночном переносе показана на рис. 8-3.

Библиотека Компэла

149


MSP430x1xxFamily

DMAEN = 0

Сброс

DMAEN = 0

DMAEN = 1

DMAEN = 0

DMAREQ = 0

T_Size

DMAxSZ

DMAxSZ

T_Size

[DMADTx = 1

DMAxSA

T_SourceAdd

DMAxDA

T_DestAdd

и DMAxSZ = 0]

или DMAEN = 0

DMAABORT = 1

Ожидание

DMAABORT = 0

DMAREQ = 0

Ожидание запуска

[+Запуск и DMALEVEL = 0 ] или

[Запуск = 1 и DMALEVEL = 1]

2 x MCLK Останов ЦПУ,

перенос одного

байта/слова

[ENNMI = 1 и NMI событие или [DMALEVEL = 1 и запуск = 0]

Декремент DMAxSZ Модификация T_SourceAdd Модификация T_DestAdd

DMAxSZ > 0

и DMAEN = 1

T_Size DMAxSZ

DMAxSA T_SourceAdd

DMAxDA T_DestAdd

DMADTx = 4

иDMAxSZ = 0

иDMAEN = 1

Рис. 8-3. Диаграмма состояний одиночного переноса DMA

Регистр DMAxSZ используется для задания числа переносов, которые нужно выполнить. Биты DMADSTINCRx и DMASRCINCRx выбираются, если адрес получателя и адрес источника инкрементируются или декрементируются после каждого переноса. Если DMAxSZ=0, переносы не выполняются.

Регистры DMAxSA, DMAxDA и DMAxSZ копируются во временные регистры. Временные значения DMAxSA и DMAxDA инкрементируются или декрементируются после каждого переноса. Регистр DMAxSZ декрементируется после каждого переноса. Когда регистр DMAxSZ декрементируется до нуля, он перезагружается из временного регистра и происходит установка соответствую-

150

Библиотека Компэла