Микропроцессоры и микроконтроллеры

 
 
 
«Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.»
Edward V Berard
Русский | Українська


Микропроцессоры и микроконтроллеры :: RISC-мікроконтролери сімейства AVR :: Аналого-цифровий перетворювач у складі мікроконтролера

Аналого-цифровий перетворювач у складі мікроконтролера

Структура та управління АЦП

rn

Мікроконтролери ATmega16 оснащені 10-розрядним АЦП послідовного наближення. Основні параметри цього модуля наступні:

rn

абсолютна похибка: ± 2 МЗР;

rn

інтегральна нелінійність: ± 0.5 МЗР;

rn

швидкодію до 15 тис. вибірок /с.

rn

На вході модуля АЦП всіх моделей є 8-канальний аналоговий мультиплексор, що надає в розпорядження користувача 8 каналів з несиметричними входами.

rn

У моделі ATmega16 входи АЦП можуть також об'єднуватися попарно для формування в общей сложности до 13 каналів з диференційних входом. Два канали при цьому мають можливість 20 - і 200-кратного попереднього посилення вхідного сигналу. При коефіцієнта посилення 1х і 20х дійсна роздільна здатність - 8 розрядів, а при коефіцієнті 200х - 7 розрядів.

rn

В якості джерела опорного напруги для АЦП може використовуватися як напруга живлення мікроконтролера, так і внутрішній або зовнішній джерело напруги.

rn

АЦП може функціонувати в двох режимах:

rn

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

rn

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

rn

Для управління модулем АЦП в мікроконтролера ATmega16 передбачені наступні регістри (табл. 28.2):

rn

Таблиця 28.2

rn

Структура регістрів управління модулем АЦП

rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn
rn

Біт

rn
rn

Назва

rn
rn

Опис призначення

rn
rn

ADCSR - Register управління та стану

rn
rn

7

rn
rn

ADEN

rn
rn

Дозвіл АЦП (1 - включено, 0 - вимкнено)

rn
rn

6

rn
rn

ADSC

rn
rn

Запуск перетворення АЦП (1 - почати перетворення, запис 0 в цей біт ефекту не надає.)

rn
rn

5

rn
rn

ADATE

rn
rn

Вибір режиму роботи АЦП (0 - одиночний режим, 1 - циклічний режим або запуск від переривання)

rn
rn

4

rn
rn

ADIF

rn
rn

Прапор переривання АЦП (Встановлюється в 1 по завершенню циклу перетворення).

rn
rn

3

rn
rn

ADIE

rn
rn

Дозвіл переривання АЦП (При встановлених в стан 1 бите ADIE та бите I регістру SREG виникає переривання по завершенню перетворення).

rn
rn

2 ... 0

rn
rn

ADPS2 .. ADPS0

rn
rn

Завдання коефіцієнта розподілу тактової частоти мікроконтролера для отримання тактової частоти АЦП

rn
rn

rn

Закінчення табл. 28.2

rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn
rn

Біт

rn
rn

Назва

rn
rn

Опис призначення

rn
rn

ADMUX- Регістр вибору мультиплексора АЦП

rn
rn

7,6

rn
rn

REFS1, REFS0

rn
rn

Вибір джерела опорного напруги
(в таблиці біти позначені як S1 і S0)

rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn
rn

S1

rn
rn

S0

rn
rn

Джерело опорного напруги

rn
rn

0

rn
rn

0

rn
rn

Зовнішній ИОН, підключений до висновку AREF;

rn

внутрішній ИОН відключений

rn
rn

0

rn
rn

1

rn
rn

Напруга живлення AVcc *

rn
rn

1

rn
rn

0

rn
rn

Зарезервовано

rn
rn

1

rn
rn

1

rn
rn

Внутрішній ИОН напругою 2.56 В

rn
rn
rn

5

rn
rn

ADLAR

rn
rn

Вирівнювання результату перетворення (мал. 3.2)

rn
rn

4 ... 0

rn
rn

MUX4 .. MUX0

rn
rn

Біти вибору аналогового каналу та коефіцієнта попереднього посилення ( табл.3.15 ).

rn
rn

Регістр спеціальних функцій - SFIOR

rn
rn

7 .. 5

rn
rn

ADTS2 .. ADTS0

rn
rn

Вибір джерела запуску перетворення АЦП
при ADATE = 1 (в таблиці біти позначені як 2,1 і 0)

rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn
rn

2

rn
rn

1

rn
rn

0

rn
rn

Джерело стартового сигналу

rn
rn

0

rn
rn

0

rn
rn

0

rn
rn

Режим безперервного перетворення

rn
rn

0

rn
rn

0

rn
rn

1

rn
rn

Переривання від аналогового компаратор

rn
rn

0

rn
rn

1

rn
rn

0

rn
rn

Зовнішнє переривання INT0

rn
rn

0

rn
rn

1

rn
rn

1

rn
rn

Подія «Режим» таймера /лічильника T0

rn
rn

1

rn
rn

0

rn
rn

0

rn
rn

Переповнення таймера /лічильника T0

rn
rn

1

rn
rn

0

rn
rn

1

rn
rn

Подія «Збіг У» таймера /лічильника T1

rn
rn

1

rn
rn

1

rn
rn

0

rn
rn

Переповнення таймера /лічильника T1

rn
rn

1

rn
rn

1

rn
rn

1

rn
rn

Подія «Захоплення» таймера /лічильника T1

rn
rn
rn

4

rn
rn

ADHSM

rn
rn

Вибір режиму прискореного перетворення

rn
rn

3 .. 0

rn
rn

-

rn
rn

не використовуються

rn
rn

Регістри даних АЦП - ADCL і ADCH - фіксують результат перетворення в залежності від налаштування ADLAR (див. мал. 28.1).

rn

Біти результату перетворення

rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn
rn

-

rn
rn

-

rn
rn

-

rn
rn

-

rn
rn

-

rn
rn

-

rn
rn

9

rn
rn

8

rn
rn

7

rn
rn

6

rn
rn

5

rn
rn

4

rn
rn

3

rn
rn

2

rn
rn

1

rn
rn

0

rn
rn

При ADLAR = 0

rn
rn

ADCH ADCL

rn

Біти результату перетворення

rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn
rn

9

rn
rn

8

rn
rn

7

rn
rn

6

rn
rn

5

rn
rn

4

rn
rn

3

rn
rn

2

rn
rn

1

rn
rn

0

rn
rn

-

rn
rn

-

rn
rn

-

rn
rn

-

rn
rn

-

rn
rn

-

rn
rn

При ADLAR = 1

rn
rn

ADCH ADCL

rn

Рис. 28.1. Принцип вирівнювання результату перетворення АЦП

rn

Робота аналого-цифрового перетворювача

rn

Робота АЦП дозволяється установкою в стан 1 біту ADEN в регістрі ADCSR. Якщо АЦП буде вимкнено під час циклу перетворення, то перетворення завершено не буде (в регістрах даних АЦП залишиться результат попереднього перетворення).

rn

В режимі циклічного перетворення (ADATE = 1) запуск кожного наступного перетворення здійснюється автоматично після закінчення поточного. У режимі одиночного перетворення воно здійснюється по команді користувача.

rn

Перетворення починається з установки в стан «1» біта початку перетворення ADSC регістру ADCSR. Цей біт знаходиться в стані «1» протягом усього циклу перетворення та скидається, після завершення перетворення апаратно. Запуск перетворення за переривання здійснюється при встановленні в «1» прапора вибраного переривання. Розряд ADSC при цьому апаратно встановлюється в «1». Запуск перетворення в цих режимах також може бути здійснений записом «1» в розряд ADSC.

rn

Загальна тривалість циклу становить близько 15 тактів. Коли перетворення завершується, розряд ADSC апаратно скидається у «0» і результат перетворення зберігається в регістрах даних АЦП. Одночасно встановлюється прапор переривання ADIF регістру ADCSR і генерується запит на переривання. Дозвіл переривання здійснюється установкою в «1» розряду ADIE регістру ADCSR при встановленому прапорі I регістру SREG.

rn

Оскільки АЦП формує 10-розрядний результат, то дані розміщуються в двох регістрах даних ADCH і ADCL. При цьому використовується спеціальна логіка захисту: при зчитування даних першим повинен бути вважаю регістр ADCL, після чого звернення ADC до регістру даних блокується. Звернення АЦП до ADCH і ADCL дозволяється по завершенні зчитування вмісту регістра ADCH.

rn

Якщо результат перетворення вирівнюється вліво і досить точності 8-розрядної значення для отримання результату можна прочитати тільки вміст регістру ADCH.

rn

Для каналів з несиметричними входом результат перетворення визначається виразом , де - значення вхідної напруги, а  - величина опорного напруги.

rn

Для каналів з диференційних входом результат перетворення визначається виразом , де - величина напруги на позитивному вході,  - величина напруги на негативному вході,  - коефіцієнт посилення. Результат перетворення представляється в додатковому коді.

rn

Найбільша точність перетворення досягається, якщо АЦП працює з тактовою частотою в діапазоні від 50 до 200 кГц.

rn

Висновки мікроконтролера, підключені до входу АЦП, визначаються станом розрядів MUX4 .. 0 регістру ADMUX. Для каналів з диференційних входом зазначені розряди визначають також коефіцієнт попереднього посилення вхідного сигналу. Принцип вибору вхідного каналу представлений в табл.28.3.

rn

Стан розрядів MUX4 .. 0 можна змінити в будь-який момент, однак, якщо це буде зроблено під час циклу перетворення, зміна каналу відбудеться тільки після завершення перетворення.

rn

Таблиця 28.3

rn

Управління вхідними мультиплексорів в моделі ATmega16

rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn
rn

MUX4 .. MUX0

rn
rn

несиметричний

rn

вхід

rn
rn

Диференціальні вхід

rn
rn

Посилення

rn
rn

(позитивний)

rn
rn

(негативний)

rn
rn

00000

rn
rn

ADC0

rn
rn

Не придатне

rn
rn

00001

rn
rn

ADC1

rn
rn

00010

rn
rn

ADC2

rn
rn

00011

rn
rn

ADC3

rn
rn

00100

rn
rn

ADC4

rn
rn

00101

rn
rn

ADC5

rn
rn

00110

rn
rn

ADC6

rn
rn

00111

rn
rn

ADC7

rn
rn

01000

rn
rn

НЕ

rn

применимо

rn
rn

ADC0

rn
rn

ADC0

rn
rn

10x

rn
rn

01001

rn
rn

ADC1

rn
rn

ADC0

rn
rn

10x

rn
rn

01010

rn
rn

ADC0

rn
rn

ADC0

rn
rn

200x

rn
rn

01011

rn
rn

ADC1

rn
rn

ADC0

rn
rn

200x

rn
rn

01100

rn
rn

ADC2

rn
rn

ADC2

rn
rn

10x

rn
rn

01101

rn
rn

ADC3

rn
rn

ADC2

rn
rn

10x

rn
rn

01110

rn
rn

ADC2

rn
rn

ADC2

rn
rn

200x

rn
rn

01111

rn
rn

ADC3

rn
rn

ADC2

rn
rn

200x

rn
rn

10000

rn
rn

ADC0

rn
rn

ADC1

rn
rn

1x

rn
rn

10001

rn
rn

ADC1

rn
rn

ADC1

rn
rn

1x

rn
rn

10010

rn
rn

ADC2

rn
rn

ADC1

rn
rn

1x

rn
rn

10011

rn
rn

ADC3

rn
rn

ADC1

rn
rn

1x

rn
rn

10100

rn
rn

ADC4

rn
rn

ADC1

rn
rn

1x

rn
rn

10101

rn
rn

ADC5

rn
rn

ADC1

rn
rn

1x

rn
rn

10110

rn
rn

ADC6

rn
rn

ADC1

rn
rn

1x

rn
rn

10111

rn
rn

ADC7

rn
rn

ADC1

rn
rn

1x

rn
rn

11000

rn
rn

ADC0

rn
rn

ADC2

rn
rn

1x

rn
rn

11001

rn
rn

ADC1

rn
rn

ADC2

rn
rn

1x

rn
rn

11010

rn
rn

ADC2

rn
rn

ADC2

rn
rn

1x

rn
rn

11011

rn
rn

ADC3

rn
rn

ADC2

rn
rn

1x

rn
rn

11100

rn
rn

ADC4

rn
rn

ADC2

rn
rn

1x

rn
rn

11101

rn
rn

ADC5

rn
rn

ADC2

rn
rn

1x

rn
rn

11110

rn
rn

1.22 В

rn
rn

Не придатне

rn
rn

11111

rn
rn

0 В (GND)

rn