Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Stenin Lab / C8051F60-67-устройство МК.pdf
Скачиваний:
150
Добавлен:
10.02.2015
Размер:
5.19 Mб
Скачать

C8051F060/1/2/3/4/5/6/7

6.5. Выполнение команд в режиме 1.

Когда интерфейс DMA начинает рабочий цикл, регистр состояния команд DMA (DMA0ISW, см. рис.6.9) загружается адресом, содержащимся в регистре границы команд DMA (DMA0BND, см. рис.6.8). Команда извлекается из буфера команд и схема управления DMA ожидает данных от соответствующего(-их) АЦП. После выполнения команды счетчик повторений (регистры DMA0CSH и DMA0CSL) декрементируется и выполнение этой команды будет повторяться до тех пор, пока значение счетчика повторений не достигнет 0х0000. Затем счетчик повторений будет загружен значением границы счетчика повторений (из регистров DMA0CTH и DMA0CTL) и схема управления DMA инкрементирует содержимое регистра DMA0ISW, который после этого будет указывать на адрес следующей команды. Если текущей командой DMA является команда «окончание операции», то в регистр состояния команды загружается значение регистра границы команды. Если бит непрерывного преобразования (бит 7, CCNV) в команде «окончание операции» установлен в 1, то DMA будет продолжать выполнять команды. Если бит CCNV сброшен в 0, то DMA остановит выполнение команд в этой точке. На рис.6.3 показан пример функционирования DMA в режиме 1.

Рисунок 6.3. Функционирование DMA в режиме 1.

 

 

 

XRAM

 

 

 

 

ADC1L

 

 

 

 

ADC1H

DMA0CSH:L = 0x0000

 

 

 

ADC0L

 

 

 

 

 

 

 

ADC0H

 

 

 

 

ADC1L

 

 

 

БУФЕР

ADC1H

DMA0CSH:L = DMA0CTH:L

 

 

ADC0L

 

 

КОМАНД

 

 

 

ADC0H

 

 

 

(64 байта)

 

 

 

ADC0L (Diff.)

DMA0CSH:L = 0x0000

 

 

 

 

0x3F

 

ADC0H (Diff.)

 

 

 

 

...

 

 

 

 

0x03

00000000

ADC0L (Diff.)

DMA0CSH:L = DMA0CTH:L

 

0x02

00110000

ADC0H (Diff.)

 

 

 

0x01

01000000

ADC0L

DMA0CSH:L = 0x0000

DMA0BND

0x00

00010000

ADC0H

 

 

 

 

ADC0L

DMA0CSH:L = DMA0CTH:L - 1

 

 

 

ADC0H

 

 

 

 

 

 

 

ADC0L

DMA0CSH:L = DMA0CTH:L

 

 

 

ADC0H

 

 

 

 

Ред. 1.2

78