Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Разработка киберфизических систем на основе микроконтроллеров. Учебное пособие
.pdf
Лекция 7. Аналого-цифровой преобразователь микроконтроллера AVR
41
3. Каковы функции процессорного ядра?
4. Какие виды памяти бывают?
5. Что представляют собой функциональные блоки?
6. Опишите архитектурные принципы, реализуемые в процессорном
ядре.
7. Каковы функции АЛУ?
8. Охарактеризуйте архитектуру современного микроконтроллера на
примере микроконтроллера AVR.
9. Опишите внутреннее устройство микроконтроллеров семейства
ATmega.
10. Опишите порты ввода-вывода микроконтроллеров AVR.
Лекция 7. Аналого-цифровой преобразователь
микроконтроллера AVR
Аналого-цифровые преобразователи (АЦП) являются устройствами,
которые преобразуют входные аналоговые сигналы в цифровую форму.
Процедура преобразования представляет собой преобразование непрерывной функции U(t), в последовательность чисел конечной разрядности
{U(tn)}, n = 0, 1, 2,…, отнесенных к некоторым фиксированным моментам
времени. При этом осуществляется дискретизация по времени и дискретизация по уровню (квантование).
В основе равномерной дискретизации лежит теорема отсчетов, согласно которой в качестве коэффициентов аn необходимо использовать значение сигнала U(tn) в дискретные моменты времени tn = nΔt, а период дис-
кретности выбирается из условия Δt = 1/2Fm, где Fm – максимальная частота спектра переходного сигнала.
Тогда
.
)(2
)](2sin[
)()(
n
m
m
tntF
tntF
tnUtU
(1)
Статические параметры АЦП:
- погрешность квантования – погрешность, вызванная конечным зна-
чением шага квантования ( 1/2 единицы младшего разряда (ЕМР));
- погрешность коэффициента передачи (изменение крутизны преобра-
зовательной);

1. Основы проектирования киберфизических систем
42
- нелинейность – отклонение графика характеристики преобразования
от идеальной прямой;
- разрешающая способность АЦП – минимальный уровень, на который
должны отличаться значения сигнала, чтобы АЦП присвоил им различные
коды;
- напряжение смещения нуля;
- интегральная и дифференциальная нелинейность.
Динамические параметры АЦП:
- частота дискретизации (преобразования) – это частота, с которой
происходит формирование выходных значений сигнала;
- время преобразования – время от начала дискретизации до появления
на выходе кода результата преобразования [7].
АЦП последовательных приближений (SAR ADC). Наиболее часто
встречающимся типом АЦП являются АЦП последовательного приближения (SAR ADC), которые позволяют в течение одного периода тактового
сигнала получить один двоичный разряд.
Например, при измерении сначала сравниваем входное напряжение
с половиной опорного напряжения, если входное больше половины опорного – то устанавливаем единицу в старший разряд кода АЦП и оставляем
напряжение сравнения 0, если меньше – то старший разряд кода АЦП
сбрасываем в 0 и сбрасываем напряжение сравнения. В каждом n-м цикле
измерения к сравниваемому напряжению прибавляем Uоп/2n, т. е. в одном
цикле точность увеличивается на один двоичный разряд. Подобный процесс измерения напряжения иллюстрируется рис. 12.
Эталонные напряжения формирует цифроаналоговый преобразова-
тель. Цифровые коды формируются специальной схемой, называемой регистром последовательных приближений.
Для сравнения измеряемого напряжения с эталонным напряжением,
поступающим с выхода цифроаналогового преобразователя, используется
аналоговый компаратор. Структурная схема АЦП последовательного приближения приведена на рис. 13.
В первый момент времени после поступления первого тактового импульса на выходе регистра последовательного приближения формируется
код половины полной шкалы преобразователя. Этот код соответствует двоичному числу 01111111. При подаче этого кода на входы цифроаналогового преобразователя на его выходе появится напряжение, соответ-

Лекция 7. Аналого-цифровой преобразователь микроконтроллера AVR
43
ствующее половине полной шкалы входных напряжений (или, что то же
самое, половине опорного напряжения Uоп, подаваемого на соответствующий вход цифроаналогового преобразователя).
Рис. 12. Временные диаграммы напряжений на входе компаратора SAR ADC
Рис. 13. Структурная схема SAR ADC
При поступлении следующих тактовых импульсов этот код будет
сдвигаться вправо, обеспечивая тем самым уменьшение веса разрядов ровно вдвое. Таким образом, если после первого тактового импульса на выходе цифроаналогового преобразователя присутствует половина полной шкалы, то после второго тактового импульса там будет присутствовать четверть, затем одна восьмая часть полной шкалы и так далее.

1. Основы проектирования киберфизических систем
44
В примере, приведенном на рис. 12, измеряемое напряжение превыша-
ет значение половины полной шкалы АЦП, а значит, на выходе аналогового компаратора появится уровень логической единицы. При поступлении
второго тактового импульса этот сигнал запишется в старший разряд регистра последовательного приближения. В результате на выходе этого регистра появится код 10111111, а значит, напряжение на выходе ЦАП станет
равным 3/4 от напряжения полной шкалы. Если бы напряжение на выходе
УВХ оказалось меньше напряжения, поступающего с выхода ЦАП, то на
выходе компаратора появился бы нулевой потенциал, и в регистр последовательного приближения был бы записан код 00111111, а значит, на выходе
ЦАП сформировалось бы напряжение 1/2 от напряжения полной шкалы.
В примере, приведенном на рис. 12, напряжение на выходе ЦАП при
втором измерении превысит напряжение с выхода УВХ, поэтому на выходе
компаратора появится нулевой уровень. При поступлении третьего тактового импульса этот сигнал запишется во второй разряд регистра последовательного приближения, поэтому код на его выходе станет равным
10011111. На этот раз напряжение на выходе ЦАП уменьшится на 1/8 Uоп
от предыдущего значения.
Итак, на вход регистра последовательного приближения поступило
три тактовых импульса, и мы получили два разряда цифрового кода. После
поступления на вход регистра последовательного приближения девяти тактовых импульсов получится полный 8-разрядный двоичный код, соответствующий входному напряжению. В примере, приведенном на рис. 12, этот
код равен 10101000.
После завершения преобразования, на управляющем выходе регистра
последовательного приближения появляется нулевой потенциал, показывающий, что преобразование закончено.
Итак, для полного преобразования аналогового сигнала в цифровую
форму АЦП последовательного приближения требуется, как минимум,
N + 1 тактовых импульсов (один такт на выдачу половинного напряжения
и N).
АЦП последовательного приближения используются на частотах преобразования от единиц килогерц до десятков мегагерц. При этом удается
достигнуть точности преобразования до 18 двоичных разрядов.
Как и следует из названия аналого-цифровой преобразователь служит
для преобразования входных сигналов в цифровой код, для его использова-

Лекция 7. Аналого-цифровой преобразователь микроконтроллера AVR
45
ния в соответствии с назначением прикладной программы. АЦП включается в состав большинства современных микроконтроллеров в качестве одного из периферийных модулей. Для повышения функциональности АЦП его
вход, как правило, подключается к нескольким выводам микроконтроллера
через аналоговый мультиплексор, что позволяет обрабатывать аналоговые
сигналы из разных источников с разделением по времени. В микроконтроллерах AVR число каналов мультиплексора обычно равно восьми,
но в некоторых моделях с малым числом выводов число каналов уменьшено до 4. Существуют также модели с повышенным числом каналов АЦП. В
микроконтроллере ATmega2560 реализован 16-канальный мультиплексор
аналоговых сигналов. Некоторые модели микроконтроллеров позволяют
объединять каналы АЦП в дифференциальные пары. Иногда АЦП дополнительно снабжается усилителем напряжения с фиксированными значениями коэффициента усиления 10 и 200.
АЦП микроконтроллеров AVR представляет собой преобразователь
последовательного приближения, оснащённый устройствами выборки и
хранения. Длительность цикла преобразования АЦП равно 13 тактам системного генератора. Разрешающая способность – 10 двоичных разрядов,
чего вполне достаточно для большинства типовых применений. Абсолютная погрешность преобразования зависит от ряда факторов и в идеальном
случае не превышает ± 2 младших двоичных разрядов, что соответствует
общей точности измерения примерно в 8-ми двоичных разрядах.
Конфигурирование АЦП позволяет выбрать один из двух режимов
преобразования – одиночный цикл и непрерывное преобразование. Непрерывное преобразование целесообразно использовать лишь при максимальной частоте выборок. В остальных случаях следует избегать использования
этого режима, так как возникает необходимость в параллельной обработке
цифровых сигналов, что практически означает снижение точности преобразования [8].
Регистры управления АЦП. Для управления работой АЦП использу-
ется регистр ADCSR.
Для разрешения работы АЦП необходимо записать лог.1 в разряд
ADEN (бит 7) регистра ADCSR, а для отключения – лог. 0.
Перед использованием АЦП микроконтроллера AVR необходимо выбрать тактовую частоту преобразования при помощи младших трёх битов
регистра ADCSR/ADCSRA. Двоичное число, содержащееся в этих разрядах

1. Основы проектирования киберфизических систем
46
регистра ADCSR/ADCSRA, определяет коэффициент предделителя АЦП,
от основной тактовой частоты микроконтроллера. Увеличение этого числа
на единицу изменяет коэффициент предделителя в два раза. Сброс трёх
младших битов ADCSR/ADCSRA устанавливает минимальный коэффициент предделителя, равный двум. Максимальный коэффициент 128 соответствует установке всех трёх разрядов в единицу. Оптимальная частота преобразования находится в диапазоне от 50 до 200 кГц, следовательно, при
тактовой частоте 16 МГц коэффициент деления должен быть равен 128 (что
соответствует состоянию битов 111), так как 16000 кГц / 128 = 125 кГц.
При тактовой частоте 8 МГц коэффициент предделителя может быть равен
128 (состояние битов 111) или 64 (состояние битов 011), что соответствует
62,5 кГц и 125 кГц тактовой частоты АЦП [8].
Для запуска преобразования необходимо установить в единицу 6-й бит
регистра ADCSR (бит ADSC). В случае использования непрерывного режима преобразования установка бита ADSC запустит первое преобразование, дальнейшие циклы будут запускаться в автоматическом режиме. Для
режима однократного преобразования, а также независимо от установленного режима при запуске через прерывания (в моделях микроконтроллеров,
имеющих такую возможность) запись единицы в ADSC просто запустит
одно преобразование. В режиме, использующем запуск преобразования по
прерыванию, предусмотрена аппаратная установка этого ADSC. После завершения цикла преобразования (независимо от режимов) устанавливается
бит ADIF (ADCSR/ADCSRA). Прерывание от АЦП разрешается после
установки бита ADIE, третьего бита регистра ADCSR/ADCSRA. Коэффициент деления указан в табл. 3.
Таблица 3
Коэффициент деления
ADPS2
ADPS1
ADPS0
Коэффициент деления
0 0 0 2 0 0 1 2 0 1 0 4 0 1 1 8 1 0 0
16

Лекция 7. Аналого-цифровой преобразователь микроконтроллера AVR
47
Окончание табл. 3
ADPS2
ADPS1
ADPS0
Коэффициент деления
1 0 1
32
1 1 0
64
1 1 1
128
Следующим регистром управления АЦП является ADMUX. С помощью старших битов этого регистра (бит 6 и 7) выбирается источник опорного напряжения (ИОН). После подачи напряжения питания на микроконтроллер, эти биты сбрасываются в 0, что соответствует внешнему ИОН.
Диапазон напряжений этого источника должен лежать в пределах от 2 В до
AVcc (AVcc ≈ Vcc ± 0,3 В). Если выбрать в качестве ИОН напряжение питания аналоговой части, то достаточно соединить между собой выводы
AREF и AVcc микроконтроллера. Можно воспользоваться возможностью
внутреннего соединения путём установки битов REFS1 и REFS0 в состояние 01, но в таком случае обязательным условием является отключение
внешнего источника.
Состоянию битов REFS1 и REFS0 – 11 соответствует выбор в качестве
ИОН встроенного источника напряжением 2,56 В ± 0,15 В.
В этом случае к выводу AREF микроконтроллера необходимо подключить фильтрующий конденсатор [8] (табл. 4).
Таблица 4
Выбор источника опорного напряжения
REFS1
REFS0
Источник опорного напряжения
0
0
Внешний ИОН, подключенный к выводу AREF, внутренний ИОН отключен
0
1
Напряжение питания AVcc*
1
0
Зарезервировано
1
1
Внутренний ИОН напряжением 2,56V, подключенный
к ввыводу AREF*
*Если к выводу AREF подключен источник напряжения, данные варианты исполь-
зоваться не могут

1. Основы проектирования киберфизических систем
48
Для размещения результата преобразования предусмотрены регистры
ADCH, ADCL. Старшие шесть битов регистра ADCH не учитываются. Так
как АЦП десятиразрядный, эти биты всегда равны нулю. Считывание результата преобразования следует начинать с младшего регистра ADCL. Это
приводит к защёлкиванию содержимого ADCH до тех пор, пока его содержимое не будет считано. Такой алгоритм работы предусмотрен для защиты
от возможного считывания в тот момент, когда АЦП изменяет содержимое
этих регистров. При чтении этих регистров в обратном порядке, результат
может не соответствовать действительности. Биты MUX0...3 регистра
ADMUX позволяют выбрать канал аналогового мультиплексора для подключения к входу АЦП в обычном (недифференциальном) режиме работы.
В табл. 5 приведены возможные значения разрядов MUX0…3. Остальные
комбинации разрядов MUX предназначены для установки различных дифференциальных режимов, для моделей микроконтроллеров, имеющих
встроенный дифференциальный усилитель, в других случаях эти биты зарезервированы (например, в моделях Atmega8, ATmega163 и др.). При переводе АЦП в дифференциальный режим, измеряется разность напряжения
между двумя выводами, выбор которых определяется состоянием битов
ADMUX4…ADMUX0. Кроме того, состояние этих битов также определяет
один из трёх фиксированных коэффициентов усиления (1x, 10x, 200x)
встроенного дифференциального усилителя (только для моделей микроконтроллеров, имеющих встроенный усилитель).
Таблица 5
Выбор канала входного мультиплексора АЦП в моделях Atmega16, ATmega32 [8]
MUX 4..0
Недифференци-
альный вход
Неинвертирующий
дифференциальный
вход
Инвертирую-
щий диффе-
ренциальный
вход
Коэффициент
усиления,
GAIN (Ку)
00000
ADC0
Дифференциальных входов и усиления нет
00001
ADC1
00010
ADC2
00011
ADC3
00100
ADC4
00101
ADC5

Лекция 7. Аналого-цифровой преобразователь микроконтроллера AVR
49
Окончание табл. 5
MUX 4..0
Недифференци-
альный вход
Неинвертирующий
дифференциальный
вход
Инвертирую-
щий диффе-
ренциальный
вход
Коэффициент
усиления,
GAIN (Ку)
00110
ADC6
Дифференциальных входов и усиления нет
00111
ADC7
01000
Недифферен-
циальных
входов нет
ADC0
ADC0
10x
01001
ADC1
ADC0
10x
01010
(1)
ADC0
ADC0
200x
01011
(1)
ADC1
ADC0
200x
01100
ADC2
ADC2
10x
01101
ADC3
ADC2
10x
01110
(1)
ADC2
ADC2
200x
01111
(1)
ADC3
ADC2
200x
10000
ADC0
ADC1
1x
10001
ADC1
ADC1
1x
10010
ADC2
ADC1
1x
10011
ADC3
ADC1
1x
10100
ADC4
ADC1
1x
10101
ADC5
ADC1
1x
10110
ADC6
ADC1
1x
10111
ADC7
ADC1
1x
11000
ADC0
ADC2
1x
11001
ADC1
ADC2
1x
11010
ADC2
ADC2
1x
11100
ADC4
ADC2
1x
11101
ADC5
ADC2
1x
11110
1.22 В (VBG)
Дифференциальных входов и усиления нет
11111
0 В (GND)

1. Основы проектирования киберфизических систем
50
Примечание 1: дифференциальные каналы не тестировались для мик-
роконтроллеров в корпусе PDIP40. Работа в таком режиме гарантируется
только для микроконтроллеров в корпусах TQFP и QFN/MLF.
Как видно из табл. 5, дифференциальные входы можно также подклю-
чить к одному входному каналу. Такой режим позволяет произвести калибровку дифференциального усилителя, а полученный результат, просто вычитать из результатов последующих измерений для устранения систематической погрешности.
Окончание цикла преобразования определяется по установлению ло-
гической единицы во флаге ADIF регистра ADCSR. Результат преобразования помещается в регистровую пару ADCH: ADCL.
10-разрядный результат преобразования по умолчанию выравнивается
вправо (старшие 6 разрядов ADCH не учитываются). При необходимости
установкой бита ADLAR регистра ADMUX в единицу, результат преобразования можно выравнивать влево (не учитываются младшие шесть разрядов ADCL).
Для недифференциального режима АЦП, когда напряжение отсчиты-
вается от "земли", результат преобразования определяется формулой
Ка = 1024Uвх/Uref,
где Ка – значение выходного кода АЦП; Uвх и Uref – соответственно
входное и опорное напряжения.
Дифференциальному измерению соответствует такая формула
Ка = 512(Upos – Uneg)/Uref,
где Upos и Uneg – соответственно напряжения на положительном и
отрицательном входах. Если напряжение на отрицательном входе больше,
чем на положительном, то результат в дифференциальном режиме становится отрицательным и выражается в дополнительном коде от 200h (–512)
до 3FFh (–1). Реальная точность преобразования в дифференциальном режиме равна 8 разрядам [9].
Интерфейс USART микроконтроллеров AVR. Для организации по-
следовательного обмена данными с внешними устройствами, в микроконтроллерах AVR предусмотрен полнодуплексный универсальный асинхронный приёмопередатчик UART (для семейства AVR Mega – универсальный синхронно-асинхронный приёмопередатчик USART), который ча-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
