Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Аналого-цифровой преобразователь.pdf
Скачиваний:
67
Добавлен:
18.05.2014
Размер:
490.06 Кб
Скачать

Аналого-цифровой преобразователь микроконтроллера AT91SAM7S. Методические указания к лабораторным работам/ Сост.: Р. Ю. Марченков, П. Г. Королев. СПб.: Изд-во СПбГЭТУ "ЛЭТИ", 2014.

Аналого-цифровой преобразователь микроконтроллера AT91SAM7S

Микроконтроллер AT91SAM7S содержит аналого-цифровой преобразователь последовательного приближения. Поддерживается возможность выбора между 8-ми и 10-ти разрядным режимом преобразования. В составе АЦП имеется восьмиканальный мультиплексор, позволяющий автоматически поочерёдно подключать схему АЦП к одному из 8 источников сигнала.

Режимы работы АЦП

АЦП использует специальный тактовый генератор, частота которого задаётся относительно частоты главного тактового генератора (Master Clock). АЦП может работать в двух режимах: нормальном и «спящем». В нормальном режиме после выполнения преобразования АЦП продолжает тактироваться от собственного тактового генератора, в то время как при работе в «спящем» режиме тактовый генератор останавливается после каждого одиночного преобразования или последовательности из нескольких преобразований по заданным каналам мультиплексора. Этот режим используется для снижения энергопотребления.

Способы запуска преобразования

Поддерживается несколько способов запуска преобразования:

программный запуск;

аппаратный запуск:

запуск по внешнему сигналу;

запуск от встроенного таймера/счётчика.

Программный запуск преобразования осуществляется путём записи определённых данных в регистр управления АЦП. Для осуществления аппаратного запуска преобразования АЦП имеет специальных вход, который программно подключается либо к каналу внутреннего таймера/счётчика, либо к специальному внешнему контакту на корпусе микроконтроллера. Аппаратный запуск происходит в момент переднего фронта импульса запускающего сигнала.

Один запуск преобразования приводит к выполнению одиночного преобразования, либо последовательности преобразований в зависимости от выбранного режима работы АЦП.

Даже если АЦП был сконфигурирован на аппаратный запуск, возможность программного запуска сохраняется.

Временные характеристики аналого-цифрового преобразования

Время выборки — это период времени, в течение которого аналоговый канал ввода подключается к устройству выборки-хранения. Устройство выборки-хранения содержит конденсатор выборки, к которому аналоговый сигнал подключается на некоторое время. Это

1

время называется временем выборки и устанавливается программно в некотором диапазоне. При выполнении преобразования конденсатор выборки подключается непосредственно к АЦП. Если время выборки будет слишком мало, конденсатор не успеет полностью зарядиться; если же время выборки будет слишком велико, входной сигнал может за это время значительно измениться и возникнет динамическая погрешность.

Программный интерфейс для работы с АЦП

Работа с АЦП осуществляется через ячейки в верхней части адресного пространства, называемые регистрами (не следует путать их с регистрами процессора: r0, r1, … r15). Большинство таких регистров предназначены либо только для записи данных в них, либо только для чтения. С помощью регистров, предназначенных для записи осуществляется управление АЦП, предназначенных для чтения — получение результатов и определение состояния.

Программный интерфейс АЦП позволяет:

выбрать способ запуска преобразования;

выбрать источник сигнала, по которому произойдёт запуск преобразования;

установить разрядность преобразования;

выбрать временные параметры преобразования;

выбрать каналы мультиплексора, по которым будет производиться преобразование;

определить, что результаты преобразований готовы;

получить результаты преобразований в виде кода;

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

Работа с результатами преобразований возможна следующими способами:

работа с результатами преобразований с привязкой по каждому каналу;

работа с результатом последнего преобразования.

Для программного запуска преобразования используется регистр ADC_CR, называемый также регистром управления АЦП (Control Register). При запуске происходит либо выполнение одиночного преобразования, либо последовательности преобразований по нескольким каналам в зависимости от того, какие из них были включены с использованием регистра разрешения работы каналов ADC_CHER (см. далее) или выключены с использованием регистра запрещения работы каналов ADC_CHDR.

Выбор режима преобразования (нормальный/спящий), разрядности преобразования, источника сигнала для аппаратного запуска АЦП, а также установка временных параметров преобразования осуществляется с помощью регистра выбора режима ADC_MR (Mode Register).

Разрешение, запрет и проверка разрешения выполнения преобразования по каналам мультиплексора осуществляется с помощью регистров разрешения работы каналов ADC_CHER (Channel Enable Register), запрета работы каналов ADC_CHDR (Channel Disable Register) и проверки состояния разрешения работы каналов ADC_CHSR (Channel Status Register) соответственно.

Если необходимо «за один раз» выполнить преобразование по нескольким каналам, следует установить сразу несколько разрядов в регистре разрешения работы каналов. Тогда при программном или аппаратном запуске преобразования произойдёт последовательное выполнение преобразований по всем указанным каналам. Результаты преобразований в таком

2

случае можно получить только с использованием регистров результатов преобразований по каналу: ADC_CDR0, ADC_CDR1, ... , ADC_CDR7 (Channel Data Register). Если же необходимо выполнить преобразование только по одному каналу, то результат преобразования может быть прочитан как из соответствующего регистра результата преобразования по каналу (ADC_CDRn), так и из регистра результата последнего преобразования ADC_LCRD (Last Converted Data Register).

Регистр состояния ADC_SR (Status Register) позволяет определить, завершено ли последнее преобразование, а также завершено ли преобразование по указанным каналам в случае работы с привязкой по каналам.

 

 

 

 

 

 

 

Таблица 1

 

 

 

 

 

 

ADC_CR

 

 

 

 

 

 

 

 

Символиче-

Номер

 

Описание

ское имя

разряда

 

 

 

 

 

 

SWRST

0

 

Выполняет сброс АЦП так, как будто был выполнен аппаратный

 

 

 

сброс микроконтроллера.

START

1

 

Запускает преобразование

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2

 

 

 

 

 

 

ADC_MR

 

 

 

 

 

 

 

 

Символиче-

Номер

 

Описание

ское имя

разряда

 

 

 

 

 

 

TRGEN

0

 

Включает поддержку аппаратного запуска преобразования.

 

 

 

Конкретный источник сигнала для запуска определяется полем

 

 

 

TRG_SEL

TRG_SEL

1-3

 

Выбирает источник сигнала запуска преобразования при

 

 

 

аппаратном запуске:

 

 

 

Разряд

3

21

Источник запускающего

 

 

 

 

 

 

 

сигнала

 

 

 

 

 

0

00

канал 0 счётчика/таймера

 

 

 

 

 

0

01

канал 1 счётчика/таймера

 

 

 

 

 

0

10

канал 2 счётчика/таймера

 

 

 

 

 

.

. .

не используется

 

 

 

 

 

1

10

внешний сигнал

 

 

 

 

 

 

 

 

 

LOW_RES

4

 

1 – выбор 8-разрядного режима преобразования

 

 

 

0 – выбор 10-разрядного режима

SLEEP

5

 

0 — выбирает нормальный режим

 

 

 

1 — выбирает «спящий» режим

PRESCAL

8-13

 

Делитель частоты, формирующий частоту тактирования АЦП.

 

 

 

Частота тактирования определяется по формуле:

 

 

 

ADCClock = MCK / ((PRESCAL+1)*2),

 

 

 

где MCK – частота главного тактового генератора.

 

14-15

 

Не используются

 

 

 

 

 

 

 

 

STARTUP

16-20

 

Величина, определяющая время подготовки к запуску АЦП

 

 

 

(Startup Time) при использовании спящего режима или при первом

3

 

 

запуске.

 

 

Время подготовки к запуску определяется по формуле:

 

 

StartupTime = (STARTUP+1)*8 / ADCClock

 

21-23

Не используются.

 

 

 

SHTIM

24-27

Величина, определяющая время выборки.

 

 

Время выборки определяется по формуле:

 

 

SampleTime = (SHTIM+1) / ADCClock

Таблица 3

ADC_CHER

СимволиНомер Номер Описание ческое разряда канала имя

CH0

0

0

Установленный бит разрешает преобразование по

 

 

 

соответствующему каналу.

CH1

1

1

 

 

 

 

 

CH...

...

...

 

 

 

 

 

CH7

7

7

 

Таблица 4

ADC_CHDR

СимволиНомер Номер Описание ческое разряда канала имя

CH0

0

0

Установленный бит запрещает преобразование по

 

 

 

соответствующему каналу.

CH1

1

1

 

 

 

 

 

CH...

...

...

 

 

 

 

 

CH7

7

7

 

Таблица 5

ADC_CHSR

СимволиНомер Номер Описание ческое разряда канала имя

CH0

0

0

Установленный бит указывает, что преобразование по

 

 

 

соответствующему каналу включено.

CH1

1

1

 

 

 

 

 

CH...

...

...

 

 

 

 

 

CH7

7

7

 

Таблица 6

ADC_SR

СимволиНомер Номер Описание ческое разряда канала имя

4