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

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

6.6. Источники прерываний.

Интерфейс DMA обладает развитой системой прерываний. Некоторые прерывания можно индивидуально разрешить/запретить, что позволяет генерировать прерывания по необходимости. Регистр управления DMA (DMA0CN, см. рис.6.4) и регистр конфигурации DMA (DMA0CF, см. рис.6.5) содержат биты разрешения и флаги источников прерываний DMA. Если произошло условие прерывания и это прерывание разрешено, то DMA сгенерирует запрос прерывания (бит EIE2.7 устанавливается в 1).

Прерывание от модуля DMA0 генерируется при установке следующих флагов DMA:

1.Флаг завершения операций DMA (DMA0CN.6, DMA0INT) устанавливается, когда все операции DMA завершены и интерфейс DMA находится в состоянии простоя (ожидания).

2.Флаг ошибки переполнения данных от АЦП1 (DMA0CN.4, DMA0DE1) устанавливается в том случае, если интерфейс DMA не может получить доступ к памяти XRAM в течение двух циклов преобразования АЦП1. Это флаг показывает, что по крайней мере один результат преобразования АЦП1 потерян.

3.Флаг ошибки переполнения данных от АЦП0 (DMA0CN.3, DMA0DE0) устанавливается в том случае, если интерфейс DMA не может получить доступ к памяти XRAM в течение двух циклов преобразования АЦП0. Это флаг показывает, что по крайней мере один результат преобразования АЦП0 потерян.

4.Флаг предупреждения о переполнении данных от АЦП1 (DMA0CN.1, DMA0DO1) устанавливается в том случае, если данные от АЦП1 становятся доступными, а DMA еще не записал результат предыдущего преобразования в память XRAM. Этот источник прерывания можно разрешить/запретить с помощью бита разрешения предупреждения о переполнении данных

(DMA0CN.2, DMA0DOE).

5.Флаг предупреждения о переполнении данных от АЦП0 (DMA0CN.0, DMA0DO0) устанавливается в том случае, если данные от АЦП0 становятся доступными, а DMA еще не записал результат предыдущего преобразования в память XRAM. Этот источник прерывания можно разрешить/запретить с помощью бита разрешения предупреждения о переполнении данных

(DMA0CN.2, DMA0DOE).

6.Флаг переполнения счетчика повторений (DMA0CF.2, DMA0CI) устанавливается в том случае, если содержимое счетчика повторений достигнет границы счетчика повторений. Этот источник прерывания можно разрешить/запретить с помощью бита разрешения прерывания от переполнения счетчика повторений (DMA0CF.3, DMA0CIE).

7.Флаг окончания операции (DMA0CF.0, DMA0EO) устанавливается в том случае, если в буфере команд достигнута команда «окончание операции». Этот источник прерывания можно разрешить/запретить с помощью бита разрешения прерывания при окончании операции

(DMA0CF.1, DMA0EOE).

6.7.Предупреждения и ошибки при переполнении буфера данных.

Тракт передачи данных от модулей АЦП с помощью интерфейса DMA в память XRAM имеет двойную буферизацию. Когда модуль АЦП завершает преобразование, результат преобразования сначала загружается в регистры данных АЦП. Если буфер данных DMA пуст, то результаты преобразования АЦП будут немедленно записаны во внутренний буфер данных DMA, соответствующий этому АЦП. Как только появится возможность, данные из буфера данных DMA будут записаны в память XRAM (см. раздел 6.3). Результаты преобразования из регистров данных АЦП не копируются в буфер данных DMA до тех пор, пока данные из этого буфера не будут записаны в память XRAM. Если преобразование уже завершено, а буфер данных DMA еще не пуст, то устанавливается флаг предупреждения о переполнении. Если результаты второго преобразования станут доступны прежде, чем данные из буфера данных DMA будут записаны в память XRAM, то данные в регистрах данных АЦП переписываются новым словом данных и устанавливается флаг ошибки переполнения данных.

79

Ред. 1.2

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

Рисунок 6.4. DMA0CN: Регистр управления DMA0

R/W

R/W

R/W

R/W

R/W

R/W

R/W

 

R/W

Значение

DMA0EN

DMA0INT

DMA0MD

DMA0DE1

DMA0DE0

DMA0DOE

DMA0DO1

DMA0DO0

при сбросе:

 

 

 

 

 

 

 

 

 

00000000

Бит 7

Бит 6

Бит 5

Бит 4

Бит 3

Бит 2

Бит 1

 

Бит 0

 

SFR Адрес: 0xD8

 

 

 

 

 

 

 

(доступен в битовом

SFR страница: 3

 

 

 

 

 

 

 

 

режиме адресации)

 

Bit7: DMA0EN: Бит включения DMA0.

Запись:

0:Остановка операций DMA0.

1:Начало операций DMA0. Чтение:

0:DMA0 находится в состоянии простоя.

1:Происходит выполнение операций DMA0.

Бит 6: DMA0INT: Флаг завершения операций DMA0.

0:DMA0 не завершил выполнение своих операций.

1:Выполнение операций DMA0 завершено. Этот бит должен быть сброшен программно.

Бит 5: DMA0MD: Выбор режима DMA0.

0:DMA0 будет функционировать в режиме 0.

1:DMA0 будет функционировать в режиме 1.

Бит 4: DMA0DE1: Флаг ошибки переполнения данных от АЦП1.

0:Переполнение данных от АЦП1 не зафиксировано.

1:Произошло переполнение данных от АЦП1 и результат преобразования АЦП1 был потерян. Этот бит должен быть сброшен программно.

Бит 3: DMA0DE0: Флаг ошибки переполнения данных от АЦП0.

0:Переполнение данных от АЦП0 не зафиксировано.

1:Произошло переполнение данных от АЦП0 и результат преобразования АЦП0 был потерян. Этот бит должен быть сброшен программно.

Бит 2: DMA0DOE: Бит разрешения прерывания от флагов предупреждения о переполнении данных.

0:Прерывания от флагов предупреждения о переполнении данных запрещены.

1:Прерывания от флагов предупреждения о переполнении данных разрешены.

Бит 1: DMA0DO1: Флаг предупреждения о переполнении данных от АЦП1.

0:Нет предупреждения о переполнении буфера данных АЦП1.

1:Буфер данных АЦП1 полон, а DMA еще не переписал предыдущие данные в память XRAM. Этот бит должен быть сброшен программно.

Бит 0: DMA0DO0: Флаг предупреждения о переполнении данных от АЦП0.

0:Нет предупреждения о переполнении буфера данных АЦП0.

1:Буфер данных АЦП0 полон, а DMA еще не переписал предыдущие данные в память XRAM. Этот бит должен быть сброшен программно.

Ред. 1.2

80

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

Рисунок 6.5. DMA0CF: Регистр конфигурации DMA0

R/W

R

R/W

R/W

R/W

R/W

R/W

 

R/W

Значение

DMA0HLT

DMA0XBY

-

-

DMA0CIE

DMA0CI

DMA0EOE

DMA0EO

при сбросе:

 

 

 

 

 

 

 

 

 

00000000

Бит 7

Бит 6

Бит 5

Бит 4

Бит 3

Бит 2

Бит 1

 

Бит 0

 

SFR Адрес: 0xF8

 

 

 

 

 

 

 

(доступен в битовом

SFR страница: 3

 

 

 

 

 

 

 

 

режиме адресации)

 

Bit7: DMA0HLT: Бит управления доступом к внешней памяти XRAM (только C8051F060/2/4/6).

0:DMA0 имеет полный доступ к внешней памяти XRAM.

1:Процессорное ядро имеет полный доступ к внешней памяти XRAM. DMA0 будет записывать данные в ячейки внешней памяти XRAM только после сброса этого бита в 0.

Бит 6: DMA0XBY: Флаг занятости внешней памяти XRAM (только C8051F060/2/4/6).

0:DMA0 не выполняет никаких операций с внешней памятью XRAM.

1:DMA0 выполняет операции записи данных во внешнюю память XRAM.

Биты 5-4: Зарезервированы: необходимо записать 00b.

Бит 3: DMA0CIE: Разрешение прерываний от переполнения счетчика повторений.

0:Прерывания от переполнения счетчика повторений запрещены.

1:Прерывания от переполнения счетчика повторений разрешены.

Бит 2: DMA0CI: Флаг переполнения счетчика повторений.

0:Переполнение счетчика повторений не зафиксировано.

1:Произошло переполнение счетчика повторений. Этот бит должен быть сброшен программно.

Бит 1: DMA0EOE: Бит разрешения прерываний при окончании операции.

0:Прерывания при окончании операции запрещены.

1:Прерывания при окончании операции разрешены.

Бит 0: DMA0EO: Флаг окончания операции.

0:Команда «окончание операции» не получена.

1:Команда «окончание операции» получена. Этот бит должен быть сброшен программно.

81

Ред. 1.2

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

Рисунок 6.6. DMA0IPT: Регистр адреса команд DMA0

R

R

R/W

R/W

R/W

R/W

R/W

R/W

Значение

-

-

 

 

 

 

 

 

при сбросе:

 

 

 

 

 

 

 

 

00000000

Бит 7

Бит 6

Бит 5

Бит 4

Бит 3

Бит 2

Бит 1

Бит 0

SFR Адрес: 0xDD

 

 

 

 

 

 

 

 

SFR страница: 3

Биты 7-6: Не используются.

Биты 5-0: Адрес команды DMA0. При чтении/записи регистра DMA0IDT содержимое регистра DMA0IPT инкрементируется и после этого будет указывать на адрес следующей команды.

Рисунок 6.7. DMA0IDT: Регистр данных команд DMA0

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Значение

CCNV

DIFFSEL

ADC1EN

ADC0EN

-

-

-

-

при сбросе*:

 

 

 

 

 

 

 

 

хххххххх

Бит 7

Бит 6

Бит 5

Бит 4

Бит 3

Бит 2

Бит 1

Бит 0

SFR Адрес: 0xDE

 

 

 

 

 

 

 

 

SFR страница: 3

Бит 7: CCNV: Непрерывное преобразование.

0:Непрерывное преобразование запрещено.

1:Непрерывное преобразование разрешено. Значение счетчика повторений игнорируется и преобразования будут продолжаться.

Бит 6: DIFFSEL: Ожидание данных в дифференциальном режиме.

0:Дифференциальные данные не будут собираться.

1:Осуществляется ожидание дифференциальных данных и сохранение их в памяти XRAM.

Бит 5: ADC1EN: Ожидание данных от АЦП1.

0:Данные от АЦП1 не будут собираться.

1:Осуществляется ожидание данных от АЦП1 и сохранение их в памяти XRAM.

Бит 4: ADC0EN: Ожидание данных от АЦП0.

0:Данные от АЦП0 не будут собираться.

1:Осуществляется ожидание данных от АЦП0 и сохранение их в памяти XRAM. Если DIFFSEL = 1, то будут сохраняться только дифференциальные данные.

Биты 3-0: Зарезервированы: необходимо записать 0000b.

Более подробная информация о командах DMA приведена в разделе 6.2.

* : Этот регистр указывает на специальную ячейку ОЗУ и его значение при сбросе является неопределенным.

Ред. 1.2

82