Основы работы с аналогово-цифровым преобразователем микроконтроллеров AVR Atmega
Покупка
Основная коллекция
Тематика:
Микроэлектроника. Наноэлектроника
Издательство:
НИЦ ИНФРА-М
Авторы:
Варламов Дмитрий Олегович, Зуев Сергей Михайлович, Шматков Юрий Михайлович, Лавриков Алексей Александрович, Тимошенко Артем Александрович
Год издания: 2020
Кол-во страниц: 53
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN-онлайн: 978-5-16-109360-3
Артикул: 747174.01.99
В учебном пособии изложены сведения по работе с аналого-цифровым преобразователем (АЦП), описана работа модуля АЦП микроконтроллера Atmega32 компании Atmel, достаточно подробно разобрана одновременная работа с несколькими потенциометрами, аналоговым датчиком температуры, особенности измерения тока в дифференциальном режиме, а также организация обратной связи через АЦП при управлении серводвигателем.
Учебное пособие по дисциплине «Проектирование микроконтроллерных систем» предназначено для студентов, обучающихся по направлению 13.03.02 «Электроэнергетика и электротехника».
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
ВЫСШЕЕ ОБРАЗОВАНИЕ — БАКАЛАВРИАТ МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «МОСКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» (МОСКОВСКИЙ ПОЛИТЕХ) Д.О. ВАРЛАМОВ С.М. ЗУЕВ Ю.М. ШМАТКОВ А.А. ЛАВРИКОВ А.А. ТИМОШЕНКО ОСНОВЫ РАБОТЫ С АНАЛОГОВО-ЦИФРОВЫМ ПРЕОБРАЗОВАТЕЛЕМ МИКРОКОНТРОЛЛЕРОВ 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 битов достаточно, можно использовать более высокую частоту, увеличивая тем самым частоту выборки.