АЦП МК ATMega16. Основные регистры. Понятие преобразования и прерывания

Содержание

Слайд 2

Что такое АЦП?

Что такое АЦП?

Слайд 3

Основные характеристики АЦП разрешающая способность; абсолютная точность; предельная частота дискретизации; диапазон

Основные характеристики АЦП

разрешающая способность;
абсолютная точность;
предельная частота дискретизации;
диапазон входных напряжений
На вход

АЦП подается непрерывный аналоговый сигнал, а на выходе получается последовательность цифровых значений.
Слайд 4

Разрешающая способность Разрешающая способность (разрешение) – это способность АЦП различать два

Разрешающая способность

Разрешающая способность (разрешение)  – это способность АЦП различать два значения

входного сигнала. Определяется как величина обратная максимальному числу кодовых комбинаций на выходе АЦП.
У AVRа АЦП 10-ти разрядный. Максимальное число кодовых комбинаций равно 210 = 1024. Разрешающая способность равна 1/1024 от всей шкалы допустимых входных напряжений.
Для работы АЦП необходим источник опорного напряжения (ИОН). Микроконтроллеры AVR позволяют в качестве ИОНа использовать напряжение питания, внутренний опорный источник на 2,56 В и напряжение на выводе AREF (внешний ИОН).
Слайд 5

Абсолютная точность Абсолютная точность – отклонение реального преобразования от идеального. Это

Абсолютная точность

Абсолютная точность – отклонение реального преобразования от идеального. Это

составной результат нескольких погрешностей АЦП. Выражается в количестве младших значащих разрядов (LSB - least significant bit) АЦП. Для AVR абсолютная погрешность АЦП  =  ±2LSB.
Слайд 6

Предельная частота дискретизации Предельная частота дискретизации определяет быстродействие АЦП и измеряется

Предельная частота дискретизации

Предельная частота дискретизации определяет быстродействие АЦП и измеряется

в герцах или количестве выборок в секунду (SPS – samples per second). Для микроконтроллеров AVR эта величина равна 15 kSPS.
Диапазон входных напряжений – это минимальное и максимальное значение напряжения, которое можно подавать на вход АЦП. Для микроконтроллера AVR он равен 0 – Vcc (напряжение питания)
Слайд 7

Пример работы АЦП

Пример работы АЦП

Слайд 8

Алгоритм работы АЦП МК ATMega16 Основная программа Инициализация портов Инициализация АЦП

Алгоритм работы АЦП МК ATMega16

Основная программа    Инициализация портов    Инициализация АЦП   

Разрешение прерываний    Бесконечный цикл    {     Если кнопка нажата, зажечь нужный светодиод     Если нет, погасить все светодиоды    }   Обработчик прерывания АЦП      Считать напряжение на входе АЦП      Определить в какой диапазон оно попадает      Записать номер кнопки в буфер
Слайд 9

Инициализация АЦП Чтобы запустить модуль АЦП, его нужно предварительно настроить. За

Инициализация АЦП

Чтобы запустить модуль АЦП, его нужно предварительно настроить. За это

отвечают три регистра: Регистр управления мультиплексором - ADMUX Регистр управления и состояния - ADCSRA Регистр специальных функций - SFIOR
Слайд 10

Регистр ADMUX За выбор ИОНа отвечают биты REFS1, REFS0. Результат преобразования

Регистр ADMUX

За выбор ИОНа отвечают  биты REFS1, REFS0.
Результат преобразования хранится

в двух регистрах (ADCH, ADCL). Бит ADLAR задает направление выравнивания результата преобразования. 0 – выравнивание вправо (в ADCH заняты 2 младших бита,  ADCL занят весь), 1 – выравнивание влево (ADCH занят весь, в ADCL только 2 старших бита).
Слайд 11

Регистр ADMUX

Регистр ADMUX

Слайд 12

Регистр ADMUX Номер выбранного в данный момент канала мультиплексора задается битами

Регистр ADMUX

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

MUX3, MUX2, MUX1, MUX0
ADMUX =(0<
Слайд 13

Регистр ADCSRA Чтобы АЦП заработал его надо включить, установить бит ADEN

Регистр ADCSRA

Чтобы АЦП заработал его надо включить, установить бит ADEN –

1
Запуск преобразования осуществляется установкой бита ADSC -1.
АЦП может работать в двух режимах: одиночное преобразование и непрерывное. Если преобразование одиночное, бит ADATE – 0.
Когда АЦП закончил преобразование, он подает запрос на прерывание. Разрешить прерывание: ADIE установить 1.
Тактовый сигнал АЦП формируется из тактового сигнала микроконтроллера путем деления на фиксированные коэффициенты.
Слайд 14

Для установки коэффициентов предделителя тактового сигнала предназначены биты ADSP2, ADSP1, ADSP0.

Для установки коэффициентов предделителя тактового сигнала предназначены биты ADSP2, ADSP1, ADSP0.


ADIF - это флаг прерывания. Он устанавливается аппаратно, когда преобразование завершено.
ADCSRA = (1<

Регистр ADCSRA

Слайд 15

Регистр SFIOR

Регистр SFIOR

Слайд 16

Работа АЦП

Работа АЦП

Слайд 17

Код программы Код программы //программирование микроконтроллеров AVR на Си - осваиваем

Код программы

Код программы
//программирование микроконтроллеров AVR на Си - осваиваем АЦП #include #include   #defineStartConvAdc()

ADCSRA |= (1<
Слайд 18

Продолжение //инициализируем АЦП //ион - напряжение питания, выравнивание влево, нулевой канал

Продолжение

  //инициализируем АЦП   //ион - напряжение питания, выравнивание влево, нулевой канал  

ADMUX = (0<  //основной цикл программы - опрос кнопочного буфера   while(1)   {     tmp = KeyBuf;     if(tmp)     {       tmp--;       PORTC = ~(1<