Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное_пособие.doc
Скачиваний:
70
Добавлен:
10.11.2019
Размер:
8.13 Mб
Скачать

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

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

  • Разрешение 10 разрядов

  • Точность ±2 единицы младшего разряда

  • Время преобразования 70...280 мксек

  • 8 мультиплексируемых входных каналов

  • Режимы однократного и непрерывного преобразования

  • Прерывание по завершению ADC преобразования

  • Быстродействие 15000 выборок в секунду

  • Режим подавления шумов в режиме Sleep.

В АЦП используется метод последовательных приближений. В состав АЦП входят основные блоки: регистр последовательных приближений, 10-разрядный цифроаналоговый преобразователь (ЦАП), аналоговый компаратор и устройство выборки/хранения (УВХ).

В устройстве выборки/хранения Рис.46 значение входного аналогового сигнала запоминается и сохраняется постоянным на время преобразования. При замыкании ключа S1 конденсатор заряжается до напряжения входного сигнала. После этого ключ размыкается и производится преобразование. После окончания преобразования замыкается ключ S2 и происходит разряд конденсатора. Далее процесс повторяется. Дискретные напряжения на конденсаторе называются выборками (дискретами или отсчетами) аналогового сигнала.

Рисунок 46

Работа АЦП в четырехразрядном варианте при величине входного напряжения 11,9 единиц (Рис.47) Первым тактовым импульсом в регистре последовательных приближений устанавливается код 1000. Он поступает на входы ЦАП, на выходе которого устанавливается образцовое напряжение 8 единиц. В компараторе производится сравнение входного напряженияUвх с 8. Так как Uвх>8, то на выходе компаратора уровень логического нуля и старший разряд регистра остается в предыдущем состоянии. В следующем такте в регистре устанавливается в единицу следующий разряд и его выходной код равен1100. На выходе ЦАП устанавливается напряжение 12 единиц.

Рисунок 47

Так как Uвх<12, то на выходе компаратора уровень логической единицы, которым сбрасывается установленный разряд регистра. В третьем такте устанавливается следующий разряд регистра, т.е. код в регистре будет 1010. На выходе ЦАП устанавливается напряжение равное 10. Так как Uвх>10, то на выходе компаратора уровень логического нуля и разряд регистра остается в установленном состоянии. В четвертом такте устанавливается в единицу последний разряд регистр. В регистре будет код 1011. Так как он меньше чем 11,9, то на выходе компаратора уровень нуля и разряд регистра остается в установленном состоянии. Таким образом, выходной код равен 1011,т.е. примерно 11,9 и он помещается в регистр результата ADC.

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

ЦАП представляет собой матрицу прецизионных резисторов (делитель напряжения) с ключами их коммутации. Функция ЦАП заключается в формировании эталонных напряжений, соответствующих весовым коэффициентам входного двоичного кода: 512,256,…2,1. Питание делителя производится от источника образцового напряжения (ИОН). В качестве ИОН может быть выбран либо встроенный источник напряжением 2,56В, либо внешний источник, подключенный к выводу AREF микроконтроллера, либо напряжение питания АЦП (вывод AVCC микроконтроллера). При использовании встроенного источника напряжение, соответствующее младшему разряду кода АЦП, равно 2,56В/1024=2,5мВ.

Входные аналоговые напряжения подаются на входы портаА (через PINы) микроконтроллера (Рис.48). К этим разрядам подключен аналоговый мультиплексор, с помощью которого производится подключение соответствующего внешнего напряжения непосредственно к АЦП. Возможна оцифровка как входных напряжений с каждого входа, которые поступают через аналоговый мультиплексор MUX(+) так и разности напряжений между одним из входов ADC0 – ADC2, выбранных мультиплексором MUX(-) и одним из входов ADC0 – ADC7, выбранных мультиплексором MUX(+). Напряжения с выбранных входов поступают на входы предварительного дифференциального усилителя с программированным коэффициентом усиления. Входное напряжение, либо разность напряжений подается на вход схемы выборки-хранения и компаратора АЦП.

АЦП имеет режимы: непрерывного и одиночного преобразования. Режим одиночного преобразования может быть произведен программно (установкой бита запуска АЦП), а также по прерыванию от некоторых устройств (со входа INT0, по переполнению Т0 и Т1 и др.). В режиме непрерывного преобразования новый цикл преобразования начинается после записи результата в регистр ADC.

Длительность цикла преобразования составляет 13-14 тактов. Выборка и запоминание аналогового сигнала производится за 1,5-2,5 тактов. После завершения преобразования устанавливается флаг “преобразование завершено” и может быть вызвана подпрограмма обработки соответствующего прерывания.

Для формирования тактовой частоты АЦП используется делитель тактовой частоты микроконтроллера. Наивысшая точность преобразования достигается, если тактовая частота АЦП находится в пределах 50 – 200 кГц. Если точность преобразования меньше чем 10 разрядов достаточна, то можно использовать более высокую частоту и отбрасывать младшие разряды кода результата.

Выходной код АЦП помещается в регистр результата ADC, физически размещенный в двух 8-разрядных регистрах ADCH и ADCL. Возможны два варианта размещения результата. При выравнивании вправо 8 младших разрядов кода помещаются в регистр ADCL, а два старших разряда кода помещаются в два младших разряда регистра ADCH. При выравнивании влево 8 старших разрядов кода помещаются в регистр ADCН, а два младших разряда кода помещаются в два старших разряда регистра ADCL. Должна соблюдаться

Рисунок 48

последовательность считывания результата: сначала должно считываться содержимое регистра ADCL, а затем ADCH.

В блоке АЦП для управления используются регистры ADCSRA,ADCSRB,ADMUX и четыре разряда регистра специальных функций SFIOR.

Формат регистра ADCSRA и описание его разрядов представлены на рис.49 и в таблицах 30 и 31.

Структурная схема модуля АЦП представлена на рис. 48.

Формат регистра ADCSRA и функции его разрядов представлены на рис.49 и в таблицах 30 и 31.

7 6 5 4 3 2 1 0

ADEN

ADSC

ADATE

ADIF

ADIE

ADPS2

ADPS1

ADPS0

Рисунок 49

Таблица 30

Разряд

Имя

Описание

7

ADEN

Включение АЦП, 0- АЦП выключен

6

ADSC

Запуск преобразования одиночного или первого

5

ADATE

Режим работы, 0- одиночное преобразование, 1-непрер.

4

ADIF

Флаг прерывания по окончанию преобразования

3

ADIE

Разрешение прерывания по завершению преобразования.

2-0

ADPS2-ADPS0

Выбор частоты преобразования (тактовой)

Таблица 31

ADPS2 – ADPS1

Коэффициент деления

делителя

000

2

001

2

010

4

011

8

100

16

101

32

110

64

111

128

Формат регистра ADMUX и описание его разрядов представлены на рис.50 и в таблицах 32 - 35.

7 6 5 4 3 2 1 0

RES1

REFS0

ADLAR

MUX4

MUX3

MUX2

MUX1

MUX0

Рисунок 50

Таблица 32

Разряд

Имя разряда

Описание

7,6

REFS1- REFS0

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

5

ADLAR

Выравнивание результата преобразования

3 – 4

MUX3 - 4

Выбор входного канала

2 - 0

MUX2-0

Выбор входного канала

Таблица 33

REFS1- REFS2

Источник образцового напряжения

00

Внешний ИОН,внутрений ИОН 2.56В отключен

01

Напряжение питания AVCC

10

-

11

Внутрений ИОН 2,56В

ADLAR = 0 – выравнивание результата влево.

Управление входными мультиплексорами производится разрядами MUX4 – MUX0. При указанных в таблице 34 комбинациях производится измерение напряжения с выбранного входа порта А. При комбинациях, указанных в таблице 35 производится измерение разности напряжений между входами, с соответствующим усилением разности напряжений.

Таблица 34

MUX4 – MUX0

Подключение к АЦП

напряжения с входа МК

00000

ADC0

00001

ADC1

00010

ADC2

00011

ADC3

00100

ADC4

00101

ADC5

00110

ADC6

00111

ADC7

11110

1,22Вольт от внутреннего источника

11111

0 Вольт

Если АЦП работает в режиме однократного преобразования, то каждое пре­образование должно инициировано пользователем. Работа АЦП разреша­ется установкой бита ADEN в регистре ADCSR. Первому преобразованию после разрешения АЦП предшествует пустое стартовое преобразование. Для пользователя это означает, что первое преобразование будет зани­мать на 13 циклов больше, чем обычно.

Таблица 35

MUX4 – MUX0

Дифференциальный вход

Предварительное усиление входного напряжения

Положительный +

Отрицательный

01000

ADC0

ADC0

10

01001

ADC1

ADC0

10

01010

ADC0

ADC0

200

01011

ADC1

ADC0

200

01100

ADC2

ADC2

10

01101

ADC3

ADC2

10

01110

ADC2

ADC2

200

01111

ADC3

ADC2

200

10000

ADC0

ADC1

1

10001

ADC1

ADC1

1

10010

ADC2

ADC1

1

10011

ADC3

ADC1

1

10100

ADC4

ADC1

1

10101

ADC5

ADC1

1

10110

ADC6

ADC1

1

10111

ADC7

ADC1

1

11000

ADC0

ADC2

1

11001

ADC1

ADC2

1

11010

ADC2

ADC2

1

11011

ADC3

ADC2

1

11100

ADC4

ADC2

1

11101

ADC5

ADC2

1

Формат регистра SFIOR

ADTS2

ADTS1

ADTS0

ADHSM

-

-

-

-

Рисунок 51

Таблица 36

ADTS2-ADTS0

Источник запуска АЦП

000

Режим непрерывного преобразования

001

Прерывание от аналогового компаратора

010

Внешнее прерывание INT0

011

Прерывание по совпадению Т0

100

Прерывание по переполнению Т0

101

Прерывание по совпадению в канале В таймера Т1

110

Прерывание по переполнению Т1

111

Прерывание по захвату Т1

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

Преобразование может быть запущено по любому событию, представленному в таблице 36. Событие задается разрядами регистра SFIOR.

При запуске АЦП установкой бита ADSC преобразование начинается по заднему фронту импульса синхросигнала АЦП. Один такт синхросигнала требуется на выборку-сохранение значения аналогового сигнала, после чего 13 тактов затрачивается на собственно преобразование и за­пись результата в регистры ADCL, ADCH. Далее перед новым преобра­зованием блоку АЦП необходим еще интервал в 2 такта, но если бит ADSC установлен, преобразование начнется немедленно.

Подавление шума АЦП. Блок АЦП включает схему подавления шума, которая разрешает преобразование в режиме Idle, что позволяет сни­зить шумы, создаваемые процессором.

Для реализации этой функции необходимо выполнить следующее:

  1. Отключить АЦП очисткой бита ADEN.

  2. Включить АЦП и одновременно запустить преобразование установкой битов ADEN и ADSC. Таким образом запускается пустое преобра­зование, за которым последует рабочее преобразование.

  3. В течение 14 тактов АЦП-преобразования ввести Idle режим.

  4. Если до завершения рабочего преобразования не произойдет другого прерывания, то прерывание АЦП активирует процессор и будет вы­полнена его процедура обслуживания.