Использование АЦП в микроконтроллере AVR ATmega16: различия между версиями
Sonya (обсуждение | вклад) (Новая страница: «===Что такое аналогово-цифровой преобразователь=== '''Аналого-цифровой преобразователь''' -...») |
Нет описания правки |
||
(не показаны 2 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
'''Аналого-цифровой преобразователь''' - устройство, преобразующее входной аналоговый сигнал в цифровой. В электронике - это устройство, которое, например, преобразует ток или напряжение в цифровой код. Он нужен для того, чтобы микроконтроллеры и микропроцессоры способны понимать только бинарные сигналы - 0 или 1. И для того, чтобы микроконтроллер имел способность считывать аналоговый сигнал с помощью преобразования его в цифровой, используют АЦП. Существуют различные типы АЦП, каждый тип удобен для конкретных приложений. Наиболее популярные типы АЦП используют такие типы аппроксимаций как приближенная, последовательная и дельта-аппроксимация. | '''Аналого-цифровой преобразователь''' - устройство, преобразующее входной аналоговый сигнал в цифровой. В электронике - это устройство, которое, например, преобразует ток или напряжение в цифровой код. Он нужен для того, чтобы микроконтроллеры и микропроцессоры способны понимать только бинарные сигналы - 0 или 1. И для того, чтобы микроконтроллер имел способность считывать аналоговый сигнал с помощью преобразования его в цифровой, используют АЦП. Существуют различные типы АЦП, каждый тип удобен для конкретных приложений. Наиболее популярные типы АЦП используют такие типы аппроксимаций как приближенная, последовательная и дельта-аппроксимация. | ||
В данной статье рассмотрим АЦП с последовательной аппроксимацией. В данном случае для каждого фиксированного аналогового уровня последовательно формируется серия соответствующих им цифровых кодов. Внутренний счетчик используется для их сравнения с аналоговым сигналом после конверсии. Генерация цифровых кодов останавливается когда соответствующий им аналоговый уровень становится чуть-чуть больше чем аналоговый сигнал на входе АЦП. Этот цифровой код и будет представлять собой конвертированное значение аналогового сигнала. | В данной статье рассмотрим АЦП с последовательной аппроксимацией. В данном случае для каждого фиксированного аналогового уровня последовательно формируется серия соответствующих им цифровых кодов. Внутренний счетчик используется для их сравнения с аналоговым сигналом после конверсии. Генерация цифровых кодов останавливается, когда соответствующий им аналоговый уровень становится чуть-чуть больше чем аналоговый сигнал на входе АЦП. Этот цифровой код и будет представлять собой конвертированное значение аналогового сигнала. | ||
Для рассмотрения принципа работы АЦП используем встроенный в микроконтроллер AVR ATmega16 аналого-цифровой преобразователь. Практически все микроконтроллеры семейства AVR имеют встроенный АЦП. Однако есть микроконтроллеры, у которых нет собственных АЦП – в этом случае необходимо использовать внешние АЦП, выпускаемые | Для рассмотрения принципа работы АЦП используем встроенный в микроконтроллер AVR ATmega16 аналого-цифровой преобразователь. Практически все микроконтроллеры семейства AVR имеют встроенный АЦП. Однако есть микроконтроллеры, у которых нет собственных АЦП – в этом случае необходимо использовать внешние АЦП, выпускаемые в виде одной микросхемы. | ||
==АЦП в микроконтроллере AVR ATmega16== | |||
'''''Отличительные особенности''''' | '''''Отличительные особенности''''' | ||
* 10-разрядное разрешение | |||
* Интегральная нелинейность 0.5 мл. разр. | |||
* Абсолютная погрешность ±2 мл. разр. | |||
* Время преобразования 13 - 260 мкс. -Частота преобразования до 15 тыс. преобр. в сек. при максимальном разрешении | |||
* 8 мультиплексированных однополярных каналов (входов) | |||
* 7 дифференциальных каналов (входов) | |||
* 2 дифференциальных канала (входа) с подключаемым усилением на 10 и 200 | |||
* Представление результата с левосторонним или правосторонним выравниванием в 16-разр. слове | |||
* Диапазон входного напряжения ADC 0…VCC | |||
* Выборочный внутренний ИОН (Reference Voltage) на 2.56 В | |||
* Режимы одиночного преобразования и автоматического перезапуска | |||
* Прерывание по завершении преобразования ADC | |||
* Механизм подавления шумов в режиме сна | |||
Микроконтроллер ATmega16 имеет встроенный 10-битный 8-канальный АЦП. Разрядность 10 бит означает, что каждый входной аналоговый сигнал (для ATmega16 он должен быть в диапазоне 0-5В) представляется 1024 уровнями дискретного сигнала (2 в степени 10 = 1024), то есть дискретизируется с точностью Uвх/1024. 8-канальный означает что АЦП может быть задействован на 8 контактах микроконтроллера одновременно. | Микроконтроллер ATmega16 имеет встроенный 10-битный 8-канальный АЦП. Разрядность 10 бит означает, что каждый входной аналоговый сигнал (для ATmega16 он должен быть в диапазоне 0-5В) представляется 1024 уровнями дискретного сигнала (2 в степени 10 = 1024), то есть дискретизируется с точностью Uвх/1024. 8-канальный означает что АЦП может быть задействован на 8 контактах микроконтроллера одновременно. | ||
Строка 47: | Строка 34: | ||
[[Файл:Принцип действия АЦП в ATmega16.png|безрамки|центр|Принцип действия АЦП в ATmega16]] | [[Файл:Принцип действия АЦП в ATmega16.png|безрамки|центр|Принцип действия АЦП в ATmega16]] | ||
==Установка регистров АЦП в микроконтроллере ATmega16== | |||
Регистр ADMUX (регистр выбора и мультиплексирования канала АЦП) - предназначен для выбора канала АЦП и опорного напряжения (reference voltage). Структура данного регистра представлена на следующем рисунке. | Регистр ADMUX (регистр выбора и мультиплексирования канала АЦП) - предназначен для выбора канала АЦП и опорного напряжения (reference voltage). Структура данного регистра представлена на следующем рисунке. | ||
Текущая версия от 19:05, 16 мая 2022
Аналого-цифровой преобразователь - устройство, преобразующее входной аналоговый сигнал в цифровой. В электронике - это устройство, которое, например, преобразует ток или напряжение в цифровой код. Он нужен для того, чтобы микроконтроллеры и микропроцессоры способны понимать только бинарные сигналы - 0 или 1. И для того, чтобы микроконтроллер имел способность считывать аналоговый сигнал с помощью преобразования его в цифровой, используют АЦП. Существуют различные типы АЦП, каждый тип удобен для конкретных приложений. Наиболее популярные типы АЦП используют такие типы аппроксимаций как приближенная, последовательная и дельта-аппроксимация.
В данной статье рассмотрим АЦП с последовательной аппроксимацией. В данном случае для каждого фиксированного аналогового уровня последовательно формируется серия соответствующих им цифровых кодов. Внутренний счетчик используется для их сравнения с аналоговым сигналом после конверсии. Генерация цифровых кодов останавливается, когда соответствующий им аналоговый уровень становится чуть-чуть больше чем аналоговый сигнал на входе АЦП. Этот цифровой код и будет представлять собой конвертированное значение аналогового сигнала.
Для рассмотрения принципа работы АЦП используем встроенный в микроконтроллер AVR ATmega16 аналого-цифровой преобразователь. Практически все микроконтроллеры семейства AVR имеют встроенный АЦП. Однако есть микроконтроллеры, у которых нет собственных АЦП – в этом случае необходимо использовать внешние АЦП, выпускаемые в виде одной микросхемы.
АЦП в микроконтроллере AVR ATmega16
Отличительные особенности
- 10-разрядное разрешение
- Интегральная нелинейность 0.5 мл. разр.
- Абсолютная погрешность ±2 мл. разр.
- Время преобразования 13 - 260 мкс. -Частота преобразования до 15 тыс. преобр. в сек. при максимальном разрешении
- 8 мультиплексированных однополярных каналов (входов)
- 7 дифференциальных каналов (входов)
- 2 дифференциальных канала (входа) с подключаемым усилением на 10 и 200
- Представление результата с левосторонним или правосторонним выравниванием в 16-разр. слове
- Диапазон входного напряжения ADC 0…VCC
- Выборочный внутренний ИОН (Reference Voltage) на 2.56 В
- Режимы одиночного преобразования и автоматического перезапуска
- Прерывание по завершении преобразования ADC
- Механизм подавления шумов в режиме сна
Микроконтроллер ATmega16 имеет встроенный 10-битный 8-канальный АЦП. Разрядность 10 бит означает, что каждый входной аналоговый сигнал (для ATmega16 он должен быть в диапазоне 0-5В) представляется 1024 уровнями дискретного сигнала (2 в степени 10 = 1024), то есть дискретизируется с точностью Uвх/1024. 8-канальный означает что АЦП может быть задействован на 8 контактах микроконтроллера одновременно.
Весь порт A (GPIO33-GPIO40) может быть использован для операций АЦП. По умолчанию выводы порта А являются контактами ввода/вывода общего назначения. Чтобы задействовать на них функции АЦП необходимо сконфигурировать специальные регистры, ответственные за функции аналого-цифрового преобразования в микроконтроллере. Поэтому их и называют регистрами АЦП.
ATmega16 содержит 10-разрядный АЦП последовательного приближения. АЦП связан с 8-канальным аналоговым мультиплексором, 8 однополярных (недифференциальных) входов которого связаны с ножками порта A, то есть весь порт А (GPIO33-GPIO40) может быть использован для операций АЦП. Недифференциальные входы измеряют потенциал напряжения относительно провода GND.
ADC также поддерживает 16 вариантов конфигурации для дифференциальных входов. Два дифференциальных входа (ADC1, ADC0 и ADC3, ADC2) содержат каскад со ступенчатым программируемым усилением: 0 дБ (1x), 20 дБ (10x), или 46 дБ (200x) – непосредственно перед аналого-цифровым преобразованием. Семь дифференциальных аналоговых каналов используют общий инвертирующий вход (ADC1), а все остальные входы ADC выполняют функцию неинвертирующих входов.
Установка регистров АЦП в микроконтроллере ATmega16
Регистр ADMUX (регистр выбора и мультиплексирования канала АЦП) - предназначен для выбора канала АЦП и опорного напряжения (reference voltage). Структура данного регистра представлена на следующем рисунке.
Биты 0-4 используются для выбора канала
Бит 5 используется для коррекции результата преобразования вправо или влево.
Биты 6-7 используются для выбора опорного напряжения АЦП.