АЦП прежде всего предназначен для преобразования аналогового сигнала в цифровой. В микроконтроллере ATmega328p в корпусе PDIP-28 есть возможность выбрать один из 6 входов, для преобразования, а также ИОН или датчик температуры микроконтроллера (только для ATmega328P). В качестве опорного напряжения также можно выбирать внутренний ИОН и внешний ИОН.
Характеристики модуля АЦП:
Биты REFS1 (7) и REFS0 (6) устанавливают какой источник опорного напряжения будет выбран:
Бит ADEN (7) регистра ADCSRA включает или выключает АЦП (1-включен).
Бит ACME (6) регистра ADCSRB позволяет использовать мультиплексор АЦП в качестве входов аналогового компаратора при установке 1 ( при этом АЦП должен быть выключен).
Биты ADC5D - ADC0D (5 - 0) регистра DIDR0 запрещают использование входов ADC5 - ADC0 (28 - 23 ножки) если в них установить 1.
Характеристики модуля АЦП:
- 10-бит разрешение преобразования
- Абсолютная погрешность - 2
- Интегральная нелинейность - 0.5
- Скорость преобразования 13 - 260 микросекунд
- 6 мультиплексированный каналов преобразования
- Встроенный датчик температуры
- Входное напряжение - от 0 до Vпитания
- Возможность подключить внутренний ИОН 1.1 В
- Независимость от ЦП
- Генерация прерывания по завершению преобразования
- Режим подавления шумов
Регистры АЦП:
- ADMUX - регистр выбора входа мультиплексора
- ADCSRA - регистр управления АЦП A
- ADCSRB - регистр управления АЦП B
- ADCL и ADCH - регистры с результатом преобразования АЦП
- DIDR0 - регистр управления входами мультиплексора
Регистр ADMUX управляет выбором опорного напряжения, а также входа мультиплексора.
Регистр ADMUX:
7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
REFS1
|
REFS0
|
ADLAR
|
-
|
MUX3
|
MUX2
|
MUX1
|
MUX0
|
Биты REFS1 (7) и REFS0 (6) устанавливают какой источник опорного напряжения будет выбран:
- 00 - опорное напряжение на входе AREF (21 ножка)
- 01 - Vпитания (вход AREF должен быть отключен. или к нему можно подключить фильтрующий конденсатор)
- 10 - резерв
- 11 - внутренний ИОН 1.1 В (к входу AREF можно подключить фильтрующий конденсатор)
Бит ADLAR (5) регистра ADMUX позволяет выравнивать результат преобразования по левому краю при записи в него 1.
Биты MUX3 - MUX0 (3 - 0) - управляют мультиплексором:
- 0000 - вход ADC0 (23 ножка)
- 0001 - вход ADC1 (24 ножка)
- 0010 - вход ADC2 (25 ножка)
- 0011 - вход ADC3 (26 ножка)
- 0100 - вход ADC4 (27 ножка)
- 0101 - вход ADC5 (28 ножка)
- 0111 - резерв
- 1000 - датчик температуры
- 1001 - 1101 - резерв
- 1110 - 1.1 В
- 1111 - 0 В (земля)
Регистр ADCSRA:
7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
ADEN
|
ADSC
|
ADATE
|
ADIF
|
ADIE
|
ADPS2
|
ADPS1
|
ADPS0
|
Бит ADEN (7) регистра ADCSRA включает или выключает АЦП (1-включен).
Бит ADSC (6) регистра ADCSRA запускает преобразование если в него записать 1 (для многоразового режима запуск первого преобразования).
Бит ADATE (5) регистра ADCSRA позволяет запускать преобразование по прерыванию от переферийных устройств микроконтроллера если установить в 1.
Бит ADIF (4) регистра ADCSRA - флаг прерывания от АЦП.
Бит ADIE (3) регистра ADCSRA - разрешает прерывания от АЦП если установлен в 1.
Биты ADPS2 - ADPS0 (2 - 0) регистра ADCSRA выбирают режим работы предделителя тактовой частоты:
- 000 - CLK/2
- 001 - CLK/2
- 010 - CLK/4
- 011 - CLK/8
- 100 - CLK/16
- 101 - CLK/32
- 110 - CLK/64
- 111 - CLK/128
Регистр ADCSRB:
7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
-
|
ACME
|
-
|
-
|
-
|
ADTS2
|
ADTS1
|
ADTS0
|
Бит ACME (6) регистра ADCSRB позволяет использовать мультиплексор АЦП в качестве входов аналогового компаратора при установке 1 ( при этом АЦП должен быть выключен).
Биты ADTS2 - ADTS0 (2 - 0) регистра ADCSRB выбирают источник сигнала по которому будет начинаться преобразование АЦП:
- 000 - непрерывное преобразование
- 001 - прерывание от аналогового компаратора
- 010 - внешнее прерывание INT0
- 011 - прерывание по совпадению таймера/счетчика T0 с A
- 100 - прерывание по переполнению таймера/счетчика T0
- 101 - прерывание по совпадению таймера/счетчика T1 с B
- 110 - прерывание по переполнению таймера/счетчика T1
- 111 - прерывание по захвату таймера/счетчика T1
Регистр DIDR0:
7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
-
|
-
|
ADC5D
|
ADC4D
|
ADC3D
|
ADC2D
|
ADC1D
|
ADC0D
|
Биты ADC5D - ADC0D (5 - 0) регистра DIDR0 запрещают использование входов ADC5 - ADC0 (28 - 23 ножки) если в них установить 1.
Если подать опорное напряжение менее пол вольта, ухудшится ли точность измерений? А если 0,1 В?
ОтветитьУдалитьЕсли посмотреть по даташиту, минимальное опорное напряжение для ATmega328p 1В.
УдалитьПри чтении ADCL регистр данных ADC не обновляется до тех пор, пока не будет прочитан ADCH
ОтветитьУдалить