В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации





Главная страница > Компоненты > Микроконтроллеры > MSP430 > Архитектура MSP430x1xx
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


Контроллер DMA

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

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

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

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

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

  • Три независимых канала переноса;
  • Конфигурируемые приоритеты каналов DMA;
  • Необходимо только два тактовых цикла MCLK;
  • Возможен перенос байтов, слов или смешанно байтов/слов;
  • Размер блока до 65535 байт или слов;
  • Выбор конфигурируемых триггеров (условий запуска) переноса;
  • Возможность выбора условия запуска переноса: по фронту/спаду или по уровню;
  • Четыре режима адресации переноса;
  • Одиночный, блочный или пакетно-блочный режимы переноса.

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

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.8-1. Блок-схема контроллера DMA микроконтроллера MSP430
Рис.8-1. Блок-схема контроллера DMA

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

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

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

Контроллер DMA имеет четыре режима адресации переноса, показанные на рис.8.2:

  • Фиксированный адрес к фиксированному адресу;
  • Фиксированный адрес к блоку адресов;
  • Блок адресов к фиксированному адресу;
  • Блок адресов к блоку адресов.

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

Режимы адресации DMA конфигурируются с помощью управляющих битов DMASRCINCR и DMADSTINCR. Бит DMASRCINCR выбирается, если адрес источника DMA (DMAxSA) инкрементируется, декрементируется или не изменяется после каждого DMA-переноса. Бит DMADSTINCR выбирается, если адрес источника DMA (DMAxDA) инкрементируется, декрементируется или не изменяется после каждого DMA-переноса.

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

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.8-2. Режимы адресации DMA микроконтроллера MSP430
Рис.8-2. Режимы адресации DMA

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

Контроллер DMA имеет шесть режимов переноса:

  • Одиночный перенос;
  • Блочный перенос;
  • Пакетно-блочный перенос;
  • Повторяющийся одиночный перенос;
  • Повторяющийся блочный перенос;
  • Повторяющийся пакетно-блочный перенос.

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

Диаграмма состояний DMA показана на рис.8.3.

msp430 Микроконтроллеры семейства MSP430 фирмы Texas Instruments Рис.8-3. Диаграмма состояний DMA микроконтроллера MSP430


    * Биты DMASRCINCR и DMADSTCINCR определяют, будут ли временные регистры инкрементированны или декрементированны
    Биты DMADSTBYTE и DMASRCBYTE определяют, инкрементируются/декркментируются ли они одним байтом или словом

    ** Однажды стартовав, пакетно-блочный режим работает непрерывно до сброса бита DMAEN. Дополнительных событий запуска не требуется

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

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

Когда канал DMA сконфигурирован в одиночном режиме переноса, пересылка каждого байта/слова требует отдельного запуска. Одиночный режим переноса устанавливается при DMADTx=0. Когда DMADTx=0, бит DMAEN очищается после каждой пересылки и должен быть установлен снова для выполнения очередной пересылки. Режим повторного одиночного переноса устанавливается при DMADTx=4. Когда DMATx=4, контроллер DMA остается включенным с DMAEN=1 и DMA-перенос происходит каждый раз, когда выполняется запуск.

Регистр DMAxSZ содержит количество пересылок, которые нужно выполнить. Если DMAxSZ=0, перенос не выполняется. Содержимое регистра DMAxSZ копируется во временный регистр и уменьшается с каждым переносом. Когда регистр DMAxSZ декрементируется до нуля, он перезагружается из временного регистра и выполняется установка соответствующего флага DMAIFG.

Блочный перенос В блочном режиме перенос полного блока данных выполняется после всего лишь одного запуска. Режим блочного переноса устанавливается при DMADTx=1. Когда DMADTx=1, бит DMAEN очищается после завершения переноса блока и должен быть установлен снова до запуска процесса переноса другого блока. После того, как поблочный перенос был запущен, последующие сигналы запуска, появляющиеся во время переноса, игнорируются.

Режим повторного поблочного переноса устанавливается при DMADTx=5. Когда DMADTx=5, бит DMAEN остается установленным после завершения переноса блока. Следующий запуск после завершения повторного поблочного переноса запустит другой блочный перенос.

Регистр DMAxSZ используется для задания размера блока, а биты DMADSTINCR и DMASRCINCR выбираются, если DMA-адрес получателя (DMAxDA) и DMA-адрес источника (DMAxSA) инкрементируется или декрементируется после каждого переноса блока.

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

В процессе переноса блока ЦПУ приостанавливается до завершения переноса блока. Для выполнения поблочного переноса необходимо 2*MCLK*DMAxSZ тактовых цикла. После завершения переноса блока ЦПУ возобновляет работу с предыдущего состояния.

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

Пакетно-блочный перенос – это поблочные пересылки, чередуемые с работой ЦПУ. В пакетно-блочном режиме ЦПУ выполняет 2 MCLK цикла после пересылки каждых четырех байт/слов блока. Во время пакетно-блочного переноса производительность ЦПУ составляет 20% от номинальной. Установка пакетно-блочного режима происходит при DMADT={2,3}. После пакетно-блочного переноса ЦПУ возвращается к 100% производительности, а бит DMAEN очищается. DMAEN должен быть установлен снова перед запуском другой пакетно-блочной передачи. После того, как пакетно-блочный перенос был запущен, последующие сигналы запуска, появляющиеся во время пакетно-блочного переноса, игнорируются.

Повторяющийся пакетно-блочный режим устанавливается при DMADT={6,7}. Когда DMADTx={6,7}, бит DMAEN остается установленным после завершения пакетно-блочного переноса, и никакие дальнейшие сигналы запуска для инициирования другого пакетно-блочного переноса не требуются. Другой пакетно-блочный перенос начинается немедленно после завершения текущего пакетно-блочного переноса. В этом случае DMA-переносы должны останавливаться либо путем очистки бита DMAEN, либо по NMI-прерыванию, когда бит ENNMI установлен. В повторяющемся пакетно-блочном режиме производительность ЦПУ постоянно составляет 20%, пока повторяющийся пакетно-блочный перенос не будет остановлен.

Инициирование DMA-переносов

DMA-переносы инициируются программным или аппаратным обеспечением в соответствии с описанием в таблице 8.1. Источники запуска конфигурируются для каждого канала независимо с помощью битов DMAxTSELx.

Таблица 8-1. Источники запуска DMA

DMAxTSELx Запуск DMA Действие, приводящее к запуску
0000 DMAREQ Установка бита DMAREQ запускает DMA-перенос. DMAREQ автоматически сбрасывается, когда начинается DMA-перенос.
0001 TACCR2 CCIFG DMA-перенос запускается, когда устанавливается флаг TACCR2 CCIFG. TACCR2 CCIFG автоматически сбрасывается, когда начинается DMA-перенос.
0010 TBCCR2 CCIFG DMA-перенос запускается, когда устанавливается флаг TBCCR2 CCIFG. TBCCR2 CCIFG автоматически сбрасывается, когда начинается DMA-перенос.
0011 Прием данных через I2C DMA-перенос запускается, когда модуль I2C принимает новые данные. Флаг RXRDYIFG не влияет на запуск DMA-переноса. RXRDYIFG не очищается, когда начинается DMA-перенос, а программная установка RXRDYIFG не приводит к запуску DMA-переноса.
0100 Готовность передачи I2C DMA-перенос запускается, когда модуль I2C готов передавать новые данные. Флаг TXRDYIFG не влияет на запуск DMA-перенос. TXRDYIFG не очищается, когда начинается DMA-перенос, а программная установка TXRDYIFG не приводит к запуску DMA-переноса.
0101 DAC12_0 DAC12IFG DMA-перенос запускается, когда устанавливается флаг DAC12IFG DAC12_0. Флаг DAC12IFG DAC12_0 автоматически сбрасывается, когда начинается DMA-перенос.
0110 ADC12IFGx DMA-перенос запускается, когда устанавливается ADAC12IFG. Флаг ADC12IFGx автоматически выбирается при конфигурировании ADC12. Когда ADC12 выполняет одиночное или повторяющееся преобразование в одном канале, флаг преобразования ADC12IFGx запускает DMA-перенос. Когда ADC12 выполняет одиночную или повторяющуюся последовательность преобразований, флаг ADC12IFGx после последнего преобразования в последовательности запускает DMA-перенос. Флаг ADC12IFGx не сбрасывается автоматически, когда начинается DMA-перенос. Все флаги ADC12IFGx автоматически сбрасываются, когда выполняется доступ к соответствующему регистру ADC12MEMx либо программой, либо контроллером DMA.
0111-1101 Нет запуска Запуск DMA-передачи не производится.
1110 DMAxIFG Флаг DMA0IFG запускает DMA канал 1. Флаг DMA1IFG запускает DMA канал 2. Флаг DMA2IFG запускает DMA канал 0. Ни один из флагов DMAxIFG автоматически не сбрасывается, когда начинается DMA-перенос.
1111 DMAE0 Внешний запуск от DMAE0.

Запуск по фронту

Когда DMALEVEL=0, запуск производится по перепаду сигнала: фронт сигнала запуска инициирует пересылку. В режиме одиночного перемещения каждый DMA-перенос нуждается в собственном сигнале запуска. Когда используется блочный или пакетно-блочный режимы, для инициирования переноса требуется только один сигнал запуска.

Запуск по уровню

Когда DMALEVEL=1, активизируется запуск по уровню. Правильная работа в режиме запуска по уровню возможна при выборе внешнего триггера (сигнала запуска) DMAE0 в качестве DMA-триггера.

Когда DMALEVEL=1, DMA-перенос данных выполняется до тех пор, пока сигнал запуска имеет высокий уровень, а бит DMAEN остается установленным. Когда DMALEVEL=1, рекомендуется использовать режимы DMA-пересылки DMADTx={0, 1, 2, 3}, поскольку бит DMAEN автоматически сбрасывается после конфигурирования DMA-переноса.

Когда DMALEVEL=1, сигнал запуска должен иметь высокий уровень при блочном или пакетно-блочном переносе до завершения переноса. Если сигнал запуска становится низким во время блочного или пакетно-блочного переноса, контроллер DMA удерживается в текущем состоянии до тех пор, пока сигнал запуска снова не станет высоким или пока не произойдет программной модификации DMA-регистров. Если DMA-регистры не модифицировались программой когда сигнал запуска опять стал высоким, перенос возобновляется с момента, когда сигнал запуска низким.

Останов выполнения команд при выполнении DMA-переноса

Бит DMAONFETCH управляет приостановкой ЦПУ для выполнения DMA-переноса. Когда DMAONFETCH=0, при получении сигнала DMA-запуска ЦПУ немедленно останавливается и начинается DMA-перенос. Когда DMAONFETCH=1, ЦПУ завершает текущую выполняемую команду, после чего контроллер DMA останавливает ЦПУ и начинает DMA-перенос.

8.2.4 Останов DMA-переноса

Есть два способа остановить выполнение DMA-переноса:

  • Одиночный, блочный или пакетно-блочный DMA-перенос может быть остановлен NMI-прерыванием, если установлен бит ENNMI в регистре DMACTL1.
  • Пакетно-блочный перенос может быть остановлен очисткой бита DMAEN.

8.2.5 Приоритеты каналов DMA

По умолчанию приоритеты DMA-каналов такие: DMA0-DMA1-DMA2. Если одновременно появляются или находятся в ожидании два или три сигнала DMA-запуска, первым завершает DMA-перенос (одиночный, блочный или пакетно-блочный перенос) канал с наивысшим приоритетом, затем канал со вторым приоритетом и в завершении канал с третьим приоритетом. Выполняющиеся DMA-переносы не приостанавливаются, если запускается перенос в DMA-канале с более высоким приоритетом. Канал с высшим приоритетом ожидает завершения выполняющегося DMA-переноса, а только затем стартует.

Приоритеты DMA-каналов конфигурируются с помощью бита ROUNDROBIN. Когда бит ROUNDROBIN установлен, низший приоритет получает канал, завершивший DMA-перенос. Последовательность приоритетов DMA-каналов всегда остается подобной DMA0-DMA1-DMA2, например:

Приоритет DMA Завершенный перенос Новый приоритет DMA
DMA0 – DMA1 – DMA2 DMA1 DMA2 – DMA0 – DMA1
DMA2 – DMA0 – DMA1 DMA2 DMA0 – DMA1 – DMA2
DMA0 – DMA1 – DMA2 DMA0 DMA1 – DMA2 – DMA0

Когда бит ROUNDROBIN очищен, приоритет DMA возвращается к приоритету по умолчанию.

8.2.6 Длительность цикла DMA-переноса

DMA нуждается в одном или двух тактовых циклах MCLK для синхронизации перед каждым одиночным переносом или полным блочным или пакетно-блочным переносом. Для переноса каждого байта/слова нужно два цикла MCLK после синхронизации и один цикл времени задержки после переноса. Поскольку DMA использует MCLK, продолжительность цикла DMA определяется режимом работы MSP430 и установками системы тактирования.

Если источник MCLK активен, но ЦПУ выключено, DMA будет использовать источник MCLK для каждого переноса без включения ЦПУ. Если источник MCLK выключен, DMA временно перезапустит MCLK с тактированием от DCOCLK для выполнения одиночного переноса или полного блочного или пакетно-блочного переноса. ЦПУ остается выключенным, а после завершения переноса выключается MCLK. Максимальная длительность цикла DMA для всех режимов работы показана в таблице 8.2.

Таблица 8-2. Максимальная длительность цикла DMA

Режим работы ЦПУ Источник
тактирования
Максимальная продолжительность цикла DMA
Активный режим MCLK=DCOCLK 4 цикла MCLK
Активный режим MCLK=LFXT1CLK 4 цикла MCLK
Режим пониженного потребления LPM0/1 MCLK=DCOCLK 5 циклов MCLK
Режим пониженного потребления LPM3/4 MCLK=DCOCLK 5 циклов MCLK + 6 мкС*
Режим пониженного потребления LPM0/1 MCLK=LFXT1CLK 5 циклов MCLK
Режим пониженного потребления LPM3 MCLK=LFXT1CLK 5 циклов MCLK
Режим пониженного потребления LPM4 MCLK=LFXT1CLK 5 циклов MCLK + 6 мкС*

* Дополнительные 6 мкС необходимы для запуска DCOCLK. Этот параметр в справочном руководстве называется t(LPMx).

8.2.7 Использование DMA с системными прерываниями

DMA переносы не прерываются системными прерываниями. Системные прерывания ожидают завершения DMA-переноса. Немаскируемые NMI-прерывания могут прервать работу DMA-контроллера, если установлен бит ENNMI.

Процедуры обработки системного прерывания прерываются DMA-событиями. Если процедура обработки прерывания или какая-либо другая подпрограмма должны выполняться без прерываний, контроллер DMA необходимо отключить перед выполнением такой подпрограммы.

8.2.8 Прерывания контроллера DMA

Каждый канал DMA имеет собственный флаг DMAIFG. Каждый флаг DMAIFG устанавливается в любом режиме, когда соответствующий счетный регистр DMAxSZ обнуляется. Если соответствующие биты DMAIE и GIE установлены, генерируется запрос прерывания.

Все флаги DMAIFG - источники в векторе прерывания только одного контроллера DMA, а вектор прерывания общий с модулем DAC12. Программное обеспечение должно проверить флаги DMAIFG и DAC12IFG, чтобы определить источник прерывания. Флаги DMAIFG автоматически не сбрасываются и должны быть сброшены программно.

8.3 Регистры DMA

Перечень регистров DMA приведен в таблице 8.3.

Таблица 8-3. Регистры DMA

Регистр Краткое обозначение Тип
регистра
Адрес Исходное состояние
Регистр 0 управления DMA DMACTL0 Чтение/запись 0122h Сбрасывается с POR
Регистр 1 управления DMA DMACTL1 Чтение/запись 0124h Сбрасывается с POR
Регистр управления канала 0 DMA DMA0CTL Чтение/запись 01E0h Сбрасывается с POR
Регистр адреса источника канала 0 DMA DMA0SA Чтение/запись 01E2h Не изменяется
Регистр адреса получателя канала 0 DMA DMA0DA Чтение/запись 01E4h Не изменяется
Регистр объема переноса канала 0 DMA DMA0SZ Чтение/запись 01E6h Не изменяется
Регистр управления канала 1 DMA DMA1CTL Чтение/запись 01E8h Сбрасывается с POR
Регистр адреса источника канала 1 DMA DMA1SA Чтение/запись 01EAh Не изменяется
Регистр адреса получателя канала 1 DMA DMA1DA Чтение/запись 01ECh Не изменяется
Регистр объема переноса канала 1 DMA DMA1SZ Чтение/запись 01EEh Не изменяется
Регистр управления канала 2 DMA DMA2CTL Чтение/запись 01F0h Сбрасывается с POR
Регистр адреса источника канала 2 DMA DMA2SA Чтение/запись 01F2h Не изменяется
Регистр адреса получателя канала 2 DMA DMA2DA Чтение/запись 01F4h Не изменяется
Регистр объема переноса канала 2 DMA DMA2SZ Чтение/запись 01F6h Не изменяется

DMACTL0, регистр 0 управления DMA

15 14 13 12 11 10 9 8
Зарезервировано DMA2TSELx
rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0)


7 6 5 4 3 2 1 0
DMA1TSELx DMA0TSELx
rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0)


Зарезервировано Биты 15-12 Зарезервировано
DMA2TSELx Биты 11-8 Выбор источника сигнала запуска DMA. Эти биты определяют источник сигнала запуска DMA-переноса.
0000  Бит DMAREQ (программный запуск)
0001  Выход Timer_A CCR2
0010  Выход Timer_B CCR2
0011  Готовность приема I2C
0100  Готовность передачи I2C
0101  Бит DAC12IFG DAC12_0CTL
0110  ADC12 ADC12IFGx
0111  Действие не производится
1000  Действие не производится
1001  Действие не производится
1010  Действие не производится
1011  Действие не производится
1100  Действие не производится
1101  Действие не производится
1110  Бит DMA0IFG запускает канал 1 DMA
      Бит DMA1IFG запускает канал 2 DMA
      Бит DMA2IFG запускает канал 0 DMA
1111  Внешний запуск DMAE0
DMA1TSELx Биты 7-4 Подобно DMA2TSELx
DMA0TSELx Биты 3-0 Подобно DMA2TSELx

DMACTL1, регистр 1 управления DMA

15 14 13 12 11 10 9 8
0 0 0 0 0 0 0 0
r-0 r-0 r-0 r-0 r-0 r-0 r-0 r-0


7 6 5 4 3 2 1 0
0 0 0 0 0 DMA
ONFETCH
ROUND
ROBIN
ENNMI
r-0 r-0 r-0 r-0 r-0 rw-(0) rw-(0) rw-(0)


Зарезер
вировано
Биты
15-3
Зарезервировано. Только чтение. Всегда читаются как 0.
DMA
ONFETCH
Бит 2 Выборка DMA
    0  DMA перенос происходит немедленно
    1  DMA перенос происходит при выборке следующей команды после запуска
    
ROUND
ROBIN
Бит 1 Этот бит включает циклическое переключение приоритетов каналов DMA.
    0  Устанавливается следующий приоритет DMA каналов: DMA0-DMA1-DMA2
    1  Приоритет DMA каналов изменяется с каждым переносом
    
ENNMI Бит 0 Разрешение NMI. Этот бит разрешает прерывание DMA переноса немаскируемым прерыванием NMI. Когда NMI прерывает DMA перенос, текущий перенос завершается нормально, но последующие переносы прекращаются и устанавливается флаг DMAABORT.
    0   NMI прерывание не прерывает DMA перенос.
    1   NMI прерывание прерывает DMA перенос.
    

DMAxCTL, регистр управления DMA каналом x

15 14 13 12 11 10 9 8
Зарезер
вировано
DMADTx DMADSTINCRx DMASRCINCRx
rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0)


7 6 5 4 3 2 1 0
DMA
DSTBYTE
DMA
SRCBYTE
DMALEVEL DMAEN DMAIFG DMAIE DMA
ABORT
DMAREQ
rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0) rw-(0)


Зарезер
вировано
Бит 15 Зарезервирован.
DMADTx Биты
14-12
Режим переноса DMA.
    000  Одиночный перенос
    001  Блочный перенос
    010  Пакетно-блочный перенос
    011  Пакетно-блочный перенос
    100  Повторный одиночный перенос
    101  Повторный блочный перенос
    110  Повторный пакетно-блочный перенос
    111  Повторный пакетно-блочный перенос
    
DMA
DSTINCRx
Биты
11-10
Инкремент DMA получателя. Этот бит позволяет выбрать автоматическое инкрементирование или декрементирование адреса получателя после каждого переноса байта или слова. Когда DMADSTBYTE=1, адрес получателя инкрементируется на единицу. Когда DMADSTBYTE=0, адрес получателя инкрементируется на 2. DMAxDA копируется во временный регистр и уже временный регистр инкрементируется или декрементируется. DMAxDA не инкрементируется и не декрементируется.
    00  Адрес получателя не изменяется
    01  Адрес получателя не изменяется
    10  Адрес получателя декрементируется
    11  Адрес получателя инкрементируется
    
DMA
SRCINCRx
Биты 9-8 Инкремент DMA источника. Этот бит позволяет выбрать автоматическое инкрементирование или декрементирование адреса источника после каждого переноса байта или слова. Когда DMASRCBYTE=1, адрес источника инкрементируется на единицу. Когда DMASRCBYTE=0, адрес источника инкрементируется на 2. DMAxSA копируется во временный регистр и уже временный регистр инкрементируется или декрементируется. DMAxSA не инкрементируется и не декрементируется.
    00  Адрес источника не изменяется
    01  Адрес источника не изменяется
    10  Адрес источника декрементируется
    11  Адрес источника инкрементируется
    
DMA
DSTBYTE
Бит 7 Байт DMA получателя. Этот бит определяет, какой формат будет иметь получатель: байт или слово.
    0   Слово.
    1   Байт.
    
DMA
SRCBYTE
Бит 6 Байт DMA источника. Этот бит определяет, какой формат будет иметь источник: байт или слово.
    0   Слово.
    1   Байт.
    
DMA
LEVEL
Бит 5 Уровень DMA. Этот бит позволяет выбрать условие запуска переноса: по перепаду или по уровню.
    0   Чувствительность к перепаду 
    1   Чувствительность к уровню
    
DMAEN Бит 4 Разрешение DMA
    0   Запрещено
    1   Разрешено
    
DMAIFG Бит 3 Флаг DMA прерывания
    0   Прерывание не ожидается
    1   Ожидается прерывание
    
DMAIE Бит 2 Разрешение DMA прерывания
    0   Запрещено
    1   Разрешено
    
DMA
ABORT
Бит 1 Прекращение DMA переносов. Этот бит показывает, что DMA перенос был прерван NMI прерыванием.
    0   DMA перенос не прерывался
    1   DMA перенос был прерван NMI прерыванием
    
DMAREQ Бит 0 Запрос DMA. Программное управление стартом DMA. Бит DMAREQ сбрасывается автоматически.
    0   Нет DMA старта
    1   Старт DMA
    

DMAxSA, регистр адреса источника DMA

15 14 13 12 11 10 9 8
DMAxSAx
rw rw rw rw rw rw rw rw


7 6 5 4 3 2 1 0
DMAxSAx
rw rw rw rw rw rw rw rw


DMAxSAx Биты 15-0 Адрес DMA источника. Регистр адреса источника указывает адрес источника DMA для одиночных переносов или первый адрес источника для блочных переносов. Регистр адреса источника остается неизменным во время блочных или пакетно-блочных переносов.

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 байт или слов


<-- Предыдущая страница Оглавление Следующая страница -->