Использование АЦП в микроконтроллере AVR ATmega16: различия между версиями

Материал из MIK32 микроконтроллер
(Новая страница: «===Что такое аналогово-цифровой преобразователь=== '''Аналого-цифровой преобразователь''' -...»)
 
Нет описания правки
 
(не показаны 2 промежуточные версии 2 участников)
Строка 1: Строка 1:
===Что такое аналогово-цифровой преобразователь===
'''Аналого-цифровой преобразователь''' - устройство, преобразующее входной аналоговый сигнал в цифровой. В электронике - это устройство, которое, например, преобразует ток или напряжение в цифровой код. Он нужен для того, чтобы микроконтроллеры и микропроцессоры способны понимать только бинарные сигналы - 0 или 1. И для того, чтобы микроконтроллер имел способность считывать аналоговый сигнал с помощью преобразования его в цифровой, используют АЦП. Существуют различные типы АЦП, каждый тип удобен для конкретных приложений. Наиболее популярные типы АЦП используют такие типы аппроксимаций как приближенная, последовательная и дельта-аппроксимация.  
'''Аналого-цифровой преобразователь''' - устройство, преобразующее входной аналоговый сигнал в цифровой. В электронике - это устройство, которое, например, преобразует ток или напряжение в цифровой код. Он нужен для того, чтобы микроконтроллеры и микропроцессоры способны понимать только бинарные сигналы - 0 или 1. И для того, чтобы микроконтроллер имел способность считывать аналоговый сигнал с помощью преобразования его в цифровой, используют АЦП. Существуют различные типы АЦП, каждый тип удобен для конкретных приложений. Наиболее популярные типы АЦП используют такие типы аппроксимаций как приближенная, последовательная и дельта-аппроксимация.  


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


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


===АЦП в микроконтроллере AVR ATmega16===
==АЦП в микроконтроллере AVR ATmega16==
'''''Отличительные особенности'''''
'''''Отличительные особенности'''''


- 10-разрядное разрешение
* 10-разрядное разрешение
 
* Интегральная нелинейность 0.5 мл. разр.
- Интегральная нелинейность 0.5 мл. разр.
* Абсолютная погрешность ±2 мл. разр.
 
* Время преобразования 13 - 260 мкс. -Частота преобразования до 15 тыс. преобр. в сек. при максимальном разрешении
- Абсолютная погрешность ±2 мл. разр.
* 8 мультиплексированных однополярных каналов (входов)
 
* 7 дифференциальных каналов (входов)
- Время преобразования 13 - 260 мкс. -Частота преобразования до 15 тыс. преобр. в сек. при максимальном разрешении
* 2 дифференциальных канала (входа) с подключаемым усилением на 10 и 200
 
* Представление результата с левосторонним или правосторонним выравниванием в 16-разр. слове
- 8 мультиплексированных однополярных каналов (входов)
* Диапазон входного напряжения ADC 0…VCC
 
* Выборочный внутренний ИОН (Reference Voltage) на 2.56 В
- 7 дифференциальных каналов (входов)
* Режимы одиночного преобразования и автоматического перезапуска
 
* Прерывание по завершении преобразования ADC
- 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===
==Установка регистров АЦП в микроконтроллере 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 контактах микроконтроллера одновременно.

АЦП в ATmega16

Весь порт 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

Установка регистров АЦП в микроконтроллере ATmega16

Регистр ADMUX (регистр выбора и мультиплексирования канала АЦП) - предназначен для выбора канала АЦП и опорного напряжения (reference voltage). Структура данного регистра представлена на следующем рисунке.

Регистры ATmega16

Биты 0-4 используются для выбора канала

Выбор канала.png

Бит 5 используется для коррекции результата преобразования вправо или влево.

Бит5.png

Биты 6-7 используются для выбора опорного напряжения АЦП.

Биты6-7.png