Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Основы работы с аналогово-цифровым преобразователем микроконтроллеров AVR Atmega

Покупка
Основная коллекция
Артикул: 747174.01.99
Доступ онлайн
от 64 ₽
В корзину
В учебном пособии изложены сведения по работе с аналого-цифровым преобразователем (АЦП), описана работа модуля АЦП микроконтроллера Atmega32 компании Atmel, достаточно подробно разобрана одновременная работа с несколькими потенциометрами, аналоговым датчиком температуры, особенности измерения тока в дифференциальном режиме, а также организация обратной связи через АЦП при управлении серводвигателем. Учебное пособие по дисциплине «Проектирование микроконтроллерных систем» предназначено для студентов, обучающихся по направлению 13.03.02 «Электроэнергетика и электротехника».
Основы работы с аналогово-цифровым преобразователем микроконтроллеров AVR Atmega : учебное пособие / Д.О. Варламов, С.М. Зуев, Ю.М. Шматков, А.А. Лавриков, А.А. Тимошенко. — Москва : ИНФРА-М, 2020. — 53 с. — (Высшее образование: Бакалавриат). - ISBN 978-5-16-109360-3. - Текст : электронный. - URL: https://znanium.com/catalog/product/1232295 (дата обращения: 28.03.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
 

 

ВЫСШЕЕ ОБРАЗОВАНИЕ — БАКАЛАВРИАТ

 

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ 

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ 

ВЫСШЕГО ОБРАЗОВАНИЯ 

«МОСКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» (МОСКОВСКИЙ ПОЛИТЕХ) 

Д.О. ВАРЛАМОВ
С.М. ЗУЕВ
Ю.М. ШМАТКОВ
А.А. ЛАВРИКОВ
А.А. ТИМОШЕНКО

ОСНОВЫ РАБОТЫ 

С АНАЛОГОВО-ЦИФРОВЫМ 

ПРЕОБРАЗОВАТЕЛЕМ 

МИКРОКОНТРОЛЛЕРОВ 

AVR ATMEGA

Учебное пособие 

 
 

Москва

ИНФРА-М

2020

 

 

УДК 004.312(075.8)
ББК 32.85я73

В18

Рекомендовано к изданию на заседании кафедры 

«Электрооборудование и промышленная электроника», 

протокол № 10 от 18.06.2019

Варламов Д.О.

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

микроконтроллеров 
AVR 
Atmega
: 
учебное 
пособие 
/ 

Д.О. Варламов, С.М. Зуев, Ю.М. Шматков, А.А. Лавриков, 
А.А. Тимошенко. — Москва : ИНФРА-М, 2020. — 53 с. — (Высшее 
образование: Бакалавриат).

ISBN 978-5-16-109360-3 (online)

В учебном пособии изложены сведения по работе с аналого
цифровым преобразователем (АЦП), описана работа модуля АЦП
микроконтроллера Atmega32 компании Atmel, достаточно подробно
разобрана одновременная работа с несколькими потенциометрами, 
аналоговым датчиком температуры, особенности измерения тока 
в дифференциальном режиме, а также организация обратной связи 
через АЦП при управлении серводвигателем.

Учебное 
пособие 
по 
дисциплине 
«Проектирование 

микроконтроллерных 
систем» 
предназначено 
для 
студентов,

обучающихся 
по 
направлению 
13.03.02 
«Электроэнергетика 

и электротехника».

УДК 004.312(075.8)

ББК 32.85я73

ISBN 978-5-16-109360-3 (online)
© Варламов Д.О., Зуев С.М., 

Шматков Ю.М., Лавриков А.А., 
Тимошенко А.А., 2020

ФЗ 

№ 436-ФЗ 

Издание не подлежит маркировке 
в соответствии с п. 1 ч. 2 ст. 1 

 

Оглавление

1. Общие сведения ..................................................................................4

2. Функционирование модуля АЦП......................................................4

3. Работа с результатом преобразования АЦП ..................................14

4. Повышение точности преобразования АЦП..................................15

5. Датчики температуры серии LMx35...............................................17

6. Cнятие показаний датчика температуры LM335 с помощью 
встроенного АЦП микроконтроллера.................................................19

7. Определение номера нажатой кнопки с помощью АЦП 
микоконтроллера...................................................................................23

8. Схема задания скорости вращения электродвигателя постоянного 
тока с помощью поворотного переключателя ...................................26

9. Способ измерения напряжения с помощью АЦП 
микроконтроллера, превышающего его опорное напряжение ........30

10. Измерение тока с помощью АЦП микроконтроллера в 
дифференциальном режиме.................................................................35

11. Микросхема L293 – специализированный драйвер управления 
электродвигателями постоянного тока...............................................39

12. Схема управления электродвигателем постоянного тока по 
положению потенциометра..................................................................40

13. Схема управления серводвигателем с реализацией обратной 
связи по напряжению через АЦП микроконтроллера ......................44

Приложение ...........................................................................................49

Список использованной литературы ..................................................53

 

1. Общие сведения

Модуль 10-битного АЦП последовательного приближения 

входит в состав практически всех моделей микроконтроллеров 
Atmel семейства Atmega [1-3]. 

На входе модуля АЦП имеется 8-канальный аналоговый 

мультиплексор, предоставляющий в распоряжение пользователя 8 
каналов 
с 
несимметричными 
входами. 
В 
моделях 

ATmega640x/1280x/2560x используется 16-канальный аналоговый 
мультиплексор. В Atmega8, выпускаемых в корпусе DIP, доступно 
только 6 каналов из восьми [4]. 

В большинстве моделей входы АЦП могут объединяться 

попарно 
для 
формирования 
различного 
числа 
каналов 
с 

дифференциальным входом. При этом в некоторых каналах 
имеется возможность 10и 200-кратного предварительного 

усиления входного сигнала. При коэффициентах усиления 1х и 10х 
действительная разрешающая способность АЦП по этим каналам 
составляет 8 бит, а при коэффициенте усиления 200х - 7 бит [5].

В качестве источника опорного напряжения для АЦП может 

использоваться как напряжение питания микроконтроллера, так и 
внутренний либо внешний источник опорного напряжения.

Модуль АЦП может работать в двух режимах:

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

преобразований выполняется непрерывно через определенные 
интервалы времени.

2. Функционирование модуля АЦП

Обобщенная структурная схема модуля АЦП приведена на 

Рис.1. В моделях ATmega8x и ATmega48x/88x/l68x элементы, выделенные на рисунке серым цветом, и связанные с ними сигналы отсутствуют, а неинвертируюший
вход компаратора выборки
хранения подключен непосредственно к выходу мультиплексора 
(показано пунктиром).

К встроенному АЦП относятся 4 регистра:

• ADC – регистр данных АЦП (двойной регистр. Состоит из 

ADCH и ADCL).

• ADCSRA - регистр управления и состояния АЦП. 
• ADMUX – регистр управления мультиплексором.
• SFIOR – регистр специальных функций [6].

Формат регистра ADCSRA приведен на Рис.2, а краткое 

описание функций его битов приведено в Табл.1.

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

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

ADEN регистра ADCSRA, а для выключения — соответственно 
лог.0. Если АЦП будет выключен во время цикла преобразования, 
то преобразование завершено не будет (в регистре данных АЦП 
останется результат предыдущего преобразования).

Рис.2 Формат регистра ADCSRA.

Таблица 1. Биты регистра ADCSRA.

Бит
Название
Описание

7
ADEN
Разрешение АЦП (1- включено
0 - выключено)

6
ADSC
Запуск преобразования 
(1 - начать преобразование)

5
ADATE/ADFR Выбор режима работы АЦП

4
ADIF
Флаг прерывания АЦП

3
ADIE
Разрешение прерывания АЦП

2...0 ADPS2:ADPS0 Выбор частоты преобразования

Режим работы АЦП определяется состоянием бита ADATE

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

В режимах одиночного и непрерывного преобразований цикл 

преобразования начинается по первому нарастающему фронту 
тактового сигнала после установки бита ADSC. 

В моделях ATmega8x и ATmega128x режим работы АЦП 

определяется состоянием пятого бита ADFR (в остальных моделях ADATE). Если он установлен в 1, АЦП работает в режиме 
непрерывного преобразования. В этом режиме запуск каждого 
следующего преобразования осуществляется автоматически после 

окончания текущего. Если же бит ADFR сброшен в 0, АЦП 
работает в режиме одиночного преобразования и запуск каждого 
преобразования осуществляется по команде пользователя [7].

Во всех других моделях, кроме ATmega8x и ATmega128x, 

запуск АЦП возможен не только по команде пользователя, но и по 
прерыванию от некоторых периферийных устройств, имеющихся в 
составе микроконтроллера. Для выбора режима работы в этих 
моделях используется бит ADATE регистра ADCSRA и биты 
ADTS2:0 регистра SFIOR (см. Рис.3, Табл.2).

Рис.3 Формат регистра SFIOR.

Таблица.2 Биты регистра SFIOR.

ADTS2 ADTS1 ADTS0 Источник стартового сигнала
0
0
0
Режим непрерывного преобразования

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

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

0
1
1
Прерывание по событию «Совпадение А» 
таймера/счетчика Т0

1
0
0
Прерывание по переполнению 
таймера/счетчика Т0

1
0
1
Прерывание по событию «Совпадение В» 
таймера/счетчика Т1

1
1
0
Прерывание по переполнению 
таймера/счетчика Т1

1
1
1
Прерывание по событию «Захват» 
таймера/счетчика Т1

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

преобразования, а также запуск первого преобразования в режиме 
непрерывного преобразования осуществляется установкой в 1 бита 
ADSC регистра ADCSRA. Запуск преобразования по прерыванию 
осуществляется при установке в 1 флага выбранного прерывания. 
Бит ADSC регистра ADCSRA при этом аппаратно устанавливается 

в 1. Запуск преобразования в этих режимах также может быть 
осуществлен установкой бита ADSC регистра ADCSRA в 1.

В режимах одиночного и непрерывного преобразований цикл 

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

соответствующего флага, т. е, даже если само прерывание 
запрещено.

Рис.4 Временная диаграмма работы АЦП в режиме одиночного 

преобразования.

Длительность цикла одиночного преобразования (Рис.4) 

составляет 13 тактов при использовании несимметричного входа и 
13 либо 14 тактов при использовании дифференциального входа 
(разные значения связаны с работой схемы синхронизации); 
выборка и запоминание входного сигнала осуществляется в течение 
первых 1.5 и 2.5 тактов соответственно. Через 13 (14) тактов 
преобразование завершается, бит ADSC аппаратно сбрасывается в 0 
(в 
режиме 
одиночного 
преобразования), 
и 
результат 

преобразования сохраняется в регистре данных АЦП (ADCH и 
ADCL). Одновременно устанавливается флаг прерывания ADIF
регистра ADCSR и генерируется запрос на прерывание. Как и 
флаги остальных прерываний, флаг ADIF сбрасывается аппаратно 

при запуске подпрограммы обработки прерывания от АЦП или 
программно, записью в него лог 1. Разрешение прерывания 
осуществляется установкой в 1 бита АDIЕ регистра ADCSRA при 
установленном флаге I
регистра SREG
(устанавливается с 

помощью команды sei()).

Рис.5Временная диаграмма работы АЦП в режиме непрерывного 

преобразования.

Если АЦП работает в режиме непрерывного преобразования 

(Рис.5), то новый цикл начнется сразу же после записи результата. 
В режиме одиночного преобразования новое преобразование может 
быть запущено сразу же после сброса бита ADSC (до сохранения 
результата текущего
преобразования). Однако реально цикл 

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

При первом запуске после включения АЦП для выполнения 

преобразования потребуется 25 тактов, т. е. на 12 тактов больше, 
чем обычно. В течение этих 12 тактов выполняется «холостое» 
преобразование, во время которого производится инициализация 
АЦП (Рис.6).

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

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

неопределенностью 
момента 
сброса 
предделителя 
АЦП. 
В 

результате 
выключения 
и 
включения 
АЦП 
между 

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

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

Рис.6 Временная диаграмма работы АЦП при первом 
преобразовании в режиме одиночного преобразования.

Для формирования тактовой частоты модуля АЦП в нем 

имеется 
отдельный 
предделитель. 
Коэффициент 
деления 

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

ADCSRA (см. Табл.3). 

Таблица 3. Задание коэффициента деления предделителя АЦП.

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

0
0
0
1

0
0
1
2

0
1
0
4

0
1
1
8

1
0
0
16

1
0
1
32

1
1
0
64

1
1
1
128

Наибольшая точность преобразования достигается, если 

тактовая частота модуля АЦП находится в диапазоне 50...200 кГц. 
Соответственно, 
коэффициент 
деления 
предделителя

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

Рис.7 Формат регистра ADMUX.

Выводы микроконтроллера, подключенные к входу его АЦП, 

определяются состоянием битов MUX4:0 регистра ADMUX (Его 
формат представлен на Рис.7, описание битов - в табл.4). Для 
каналов с дифференциальным входом указанные биты определяют 
также коэффициент предварительного усиления входного сигнала. 
Соответствие установок этих битов используемым входам АЦП 
представлено в табл.6.

Таблица.4 Биты регистра ADMUX.

Бит Название
Описание

7,6 REFS1:REFSO
Выбор источника опорного 
напряжения

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

4...0 MUX4...MUX0
Выбор входного канала

Следует 
отметить, 
что 
предварительный 
усилитель, 

используемый каналами с дифференциальным входом, имеет 
встроенную схему коррекции смещения. Оставшаяся после 
коррекции величина смещения может быть учтена программным 
способом. Для этого следует оба входа дифференциального 
усилителя подключить к одному и тому же выводу микроконтроллера, а затем вычитать полученное значение из результата 
последующих преобразований. Таким образом, ошибка смещения 
может быть снижена до величины, меньшей 1 LSB [1].

Состояние битов MUX4...MUX0 можно изменить в любой 

момент, однако если это будет сделано во время цикла 
преобразования, то смена канала произойдет только после 
завершения 
преобразования. 
Благодаря 
этому 
в 
режиме 

непрерывного 
преобразования 
можно 
легко 
осуществлять 

последовательное преобразование сигналов нескольких каналов.

Доступ онлайн
от 64 ₽
В корзину