atmega8 avcc что такое

ATMega8: зачем подключаться VCC и AVCC?

Я часто читал, что хорошей практикой является подключение VCC к AVCC. Даже в таблице ATMega8 он говорит так:

Но нигде я не могу найти объяснения по поводу почему они должны быть связаны. Простая схема для мигания светодиода работает без подключения VCC и AVCC.

Я просто должен принять это или есть веская причина?

5 ответов

В основном, он должен быть подключен, потому что производитель говорит, что он должен.

Кроме того, они должны полностью работать с чипом (все порты /контакты), чтобы предотвратить проблемы с плавающим штырем на стороне AVCC, чтобы предотвратить шум на цифровой стороне. Существуют проблемы, при которых отказ от сбоев на стороне AVCC вызывает паразитную подачу мощности и может дестабилизировать внутренние часы или может предотвратить стабильный запуск.

Хорошо, что вы просите причину!

AVCC определяется как независимый контакт, поскольку он подключается к основным аналоговым компонентам внутри и, как таковые, должен иметь отдельные фильтрующие конденсаторы.

Простые проекты «blinkenlights» не имеют требований к шуму и точности.

Теперь, если вы имеете в виду, если они должны быть подключены к одному и тому же НАПРЯЖЕНИЮ, ответ да в пределах +/- 0,3 В от VCC

«АЦП имеет отдельный аналоговый вывод напряжения питания AVCC. AVCC не должен отличаться более чем на ± 0,3 В от VCC». и «AVCC является пиком напряжения питания для АЦП»

Напомним: AVCC и VCC должны находиться на одинаковом напряжении (в пределах +/- 0,3 вольта), и он идентифицируется как отдельный контакт, чтобы позволить дизайнеру размещать дополнительные фильтры на этом входе, чтобы избежать шума из чувствительного A /D-преобразователь части IC.

Надеюсь, что это поможет!

Часто время, цифровое питание и штыри заземления будут в конечном итоге с небольшим количеством шума на них. Трудно устранить весь такой шум, когда цифровая схема переключает значительные объемы тока, а 150 мВ или около того шума питания вряд ли повлияет на схему, питаемую цифровыми штырьками питания. Тем не менее, наличие 150 мВ шума на аналоговых штыревых разъемах сделало бы очень трудным или невозможным для аналоговой схемы достичь точности доли процента. Тот факт, что аналоговые контакты разделены, означает, что можно принимать точные показания, даже если на цифровом источнике питания имеется шум 150 мВ, при условии, что цифровая подача не размахивается более чем на 300 мВ, а у одного есть аналоговое питание, которое где-то в пределах 300 мВ обеих крайностей диапазона цифрового питания. Устранение 99% шума от источника питания, который подает только штырь аналогового питания, и обеспечения того, что напряжение источника близко к цифровому напряжению питания, часто намного проще, чем устранение всех помех от цифрового питания.

Просто добавьте еще одну причину, по которой AVCC должен быть подключен даже в простых проектах.

Когда вы используете схему обнаружения Brown-out, которая опирается на справочное руководство по внутреннему напряжению, вы можете получить неожиданное поведение и ненадежный запуск устройства. Он может проявляться в виде странных порогов напряжения, запускающих сброс БПК или даже устройства, не начинающегося с правильного напряжения.

Я просто столкнулся с этой проблемой в одном из моих «быстрых и грязных» проектов взлома с использованием ATmega88P.

Причина связана с внутренним процессом устройства и его построением. Поскольку они указывают, что AVCC и VCC должны быть в пределах 0,3 В, это похоже на напряжение защиты внутренних диодов, используемых в чипах. Если диоды смещены выше 0,3 В (например, если AVCC не подключен), эти диоды могут работать, вызывая проблемы и, возможно, повреждая устройство.

Источник

Аналого-цифровой преобразователь микроконтроллеров AVR

Аналого-цифровые преобразователи (АЦП) являются устройствами, которые принимают входные аналоговые сигналы и генерируют соответствующие им цифровые сигналы, пригодные для обработки микропроцессорами и другими цифровыми устройствами. АЦП входит во многие современные модели МК AVR, он многоканальный. Обычно число каналов равно 8, но в разных моделях оно может варьировать от 4 каналов в младших моделях семейства Tiny, 6 в ATmega8, до 16 каналов в ATmega2560.

Многоканальность означает, что на входе единственного модуля АЦП установлен аналоговый мультиплексор, который может подключать этот вход к различным выводам МК для осуществления измерений нескольких независимых аналоговых величин с разнесением по времени. Входы мультиплексора могут работать по отдельности (в несимметричном режиме для измерения напряжения относительно «земли») или (в некоторых моделях) объединяться в пары для измерения дифференциальных сигналов. Иногда АЦП дополнительно снабжается усилителем напряжения с фиксированными значениями коэффициента усиления 10 и 200.

Сам АЦП представляет собой преобразователь последовательного приближения с устройством выборки-хранения и фиксированным числом тактов преобразования, равным 13 (или 14 для дифференциального входа; первое преобразование после включения потребует 25 тактов для инициализации АЦП). Тактовая частота формируется аналогично тому, как это делается для таймеров— с помощью специального предделителя тактовой частоты МК, который может иметь коэффициенты деления от 1 до 128. Но в отличие от таймеров, выбор тактовой частоты АЦП не совсем произволен, т. к. быстродействие аналоговых компонентов ограничено. Поэтому коэффициент деления следует выбирать таким, чтобы при заданном «кварце» тактовая частота АЦП укладывалась в рекомендованный диапазон 50-200 кГц (т. е. максимум около 15 тыс. измерений в секунду). Увеличение частоты выборки допустимо, если не требуется достижение наивысшей точности преобразования.

Разрешающая способность АЦП в МК AVR — 10 двоичных разрядов, чего для большинства типовых применений достаточно. Абсолютная погрешность преобразования зависит от ряда факторов и в идеальном случае не превышает ±2 младших разрядов, что соответствует общей точности измерения примерно 8 двоичных разрядов. Для достижения этого результата необходимо принимать специальные меры: не только «вгонять» тактовую частоту в рекомендованный диапазон, но и снижать по максимуму интенсивность цифровых шумов. Для этого рекомендуется, как минимум, не использовать оставшиеся выводы того же порта, к которому подключен АЦП, для обработки цифровых сигналов, правильно разводить платы, а как максимум — дополнительно к тому еще и включать специальный режим ADC Noise Reduction.

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

Регистры управления АЦП

Ниже приведена таблица с описанием регистра ADCSR

atmega8 avcc что такое. Смотреть фото atmega8 avcc что такое. Смотреть картинку atmega8 avcc что такое. Картинка про atmega8 avcc что такое. Фото atmega8 avcc что такое

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

Режим непрерывных измерений активизируется установкой бита ADFR (бит 5) этого же регистра. В ряде моделей Mega этот бит носит наименование ADATE, и управление режимом работы производится сложнее: там добавляются несколько режимов запуска через различные прерывания (в т. ч. прерывание от компаратора, при наступлении различных событий от таймера и т. п.), и выбирать их следует, задавая биты ADTS регистра SFIOR, а установка бита ADATE разрешает запуск АЦП по этим событиям.

РазрядНазваниеОписание
5ADFR(ADATE)Выбор режима работы АЦП

Так как нулевые значения всех битов ADTS (по умолчанию) означают режим непрерывного преобразования, то в случае, когда вы их значения не трогали, функции битов ADATE и ADFR в других моделях будут совпадать.

ADTS2ADTS1ADTS0Источник стартового сигнала
000Режим непрерывного преобразования
001Прерывание от аналогового компаратора
010Внешнее прерывание INT0
011Прерывание по событию «Совпадение» таймера/счетчика Т0
100Прерывание по переполнению таймера/счетчика Т0
101Прерывание по событию «Совпадение» таймера/счетчика Т1
110Прерывание по переполнению таймера/счетчика Т1
111Прерывание по событию «Захват» таймера/счетчика Т1

Если выбран режим запуска не от внешнего источника, то преобразование запускается установкой бита ADSС (бит 6). При непрерывном режиме установка этого бита запустит первое преобразование, затем они будут автоматически повторяться. В режиме однократного преобразования, а также независимо от установленного режима при запуске через прерывания (в тех моделях, где это возможно) установка бита ADSС просто запускает одно преобразование. При наступлении прерывания, запускающего преобразование, бит ADSС устанавливается аппаратно. Отметим, что преобразование начинается по-фронту первого тактового импульса (тактового сигнала АЦП, а не самого контроллера!) после установки ADSС. По окончании любого преобразования (и в одиночном, и в непрерывном режиме) устанавливается бит ADIF (бит 4. флаг прерывания). Разрешение прерывания АЦП осуществляется установкой бита ADIE (бит 3) все того же регистра ADCSR/ADCSRA.

Для работы с АЦП необходимо еще установить его тактовую частоту. Это делается тремя младшими битами регистра ADCSR/ADCSRA под названием ADPS0..2. Коэффициент деления частоты тактового генератора МК устанавливается по степеням двойки, все нули в этих трех битах соответствуют коэффициенту 2, все единицы — 128. Оптимальная частота преобразования лежит в диапазоне 50-200 кГц, так что, например, для тактовой частоты МК, равной 4 МГц, коэффициент может иметь значение только 32 (состояние битов ADPS0..2 = 101, частота 125 кГц) или 64 (состояние битов ADPS0..2 = 110, частота 62,5 кГц). При тактовой частоте 16 МГц в допустимый диапазон укладывается только коэффициент 128.

ADPS2ADPS1ADPS0Коэффициент деления
0002
0012
0104
0118
10016
10132
11064
111128

Ниже приведена таблица с описанием регистра ADMUX.

atmega8 avcc что такое. Смотреть фото atmega8 avcc что такое. Смотреть картинку atmega8 avcc что такое. Картинка про atmega8 avcc что такое. Фото atmega8 avcc что такое

Выборка источника опорного напряжения производится битами REFS1..0 регистра ADMUX (старшие биты 7 и 6), причем их нулевое значение (по умолчанию) соответствует внешнему источнику. Напряжение этого внешнего источника может лежать в пределах от 2 В до напряжения питания аналоговой части AVcc (а оно, в свою очередь, не должно отличаться от питания цифровой части более чем на 0,3 В в большую или меньшую сторону). Можно выбрать в качестве опорного и питание самой аналоговой части, причем двояким способом: либо просто соединить выводы AREF и AVcc микросхемы, либо установить биты REFS1..0 в состояние 01 (тогда соединение осуществляется внутренними схемами, но заметим, что внешний опорный источник при этом должен быть отключен). Предусмотрен и встроенный источник (задается REFS1..0 в состоянии 11, при этом к выводу AREF рекомендуется подключать фильтрующий конденсатор), имеющий номинальное напряжение 2,56В с большим разбросом от 2,4 до 2,7 В.

REFS1REFS0Источник опорного напряжения
00Внешний ИОН, подключенный к выводу AREF, внутренний ИОН отключен
01Напряжение питания AVcc*
10Зарезервировано
11Внутренний ИОН напряжением 2,56V, подключенный к ввыводу AREF*
*Если к выводу AREF подключен источник напряжения, данные варианты использоваться не могут

Результат преобразования АЦП оказывается в регистрах ADCH:ADCL. Поскольку результат 10-разрядный, то по умолчанию старшие 6 битов в регистре ADCH оказываются равными нулю. Чтение этих регистров производится, начиная с младшего ADCL, после чего регистр ADCH блокируется, пока не будет прочитан. Следовательно, даже если момент между чтением регистров попал на фронт 14 (15) такта АЦП, когда данные в них должны меняться, значения прочитанной пары будут соответствовать друг другу, пусть и результат этого преобразования пропадет. В противоположном порядке читать эти регистры не рекомендуется. Но бит ADLAR (бит 5 регистра ADMUX) предоставляет интересную возможность: если его установить в 1, то результат преобразования в регистрах ADCH:ADCL выравнивается влево: бит 9 результата окажется в старшем бите ADCH, а незначащими будут младшие 6 битов регистра ADCL. В этом случае, если хватает 8-разрядного разрешения результата, можно прочесть только значение ADCH.

Выбор каналов и режимов их взаимодействия в АЦП производится битами MUX0..3 в регистре ADMUX. Их значения выбирают нужный канал в обычном (недифференциальном) режиме, когда измеряемое напряжение отсчитывается от «земли». Последние два значения этих битов для семейства Mega (11110 и 11111 в большинстве моделей или 1110 и 1111 для ATmega8) выбирают режимы, когда вход АЦП подсоединяется к опорному источнику компаратора (1,22 В) или к «земле» соответственно, что может использоваться для автокалибровки устройства.

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

*8-ми разрядное преобразование

**Имеются только в корпусах TQFP-32 и MLF-32.

Остальные комбинации разрядов MUX предназначены для установки различных дифференциальных режимов — в тех моделях, где они присутствуют, в других случаях эти биты зарезервированы (как в моделях Atmega8, ATmega163 и др.). В дифференциальном режиме АЦП измеряет напряжение между двумя выбранными выводами (например, между ADC0 и ADC1), причем не все выводы могут быть в таком режиме задействованы. В том числе дифференциальные входы АЦП можно подключать к одному и тому же входу для коррекции нуля. Дело в том, что в ряде моделей на входе АЦП имеется встроенный усилитель, с коэффициентом 1х, 10х и 200х (коэффициент выбирается теми же битами MUX0..4), и такой режим используется для его калибровки — в дальнейшем значение выхода при соединенных входах можно просто вычесть.

После завершения преобразования (при установке в «1» флага ADIF регистра ADCSR) его результат сохраняется в регистре данных АЦП. Поскольку АЦП имеет 10 разрядов, этот регистр физически размещен в двух регистрах ввода/вывода ADCH:ADCL, доступных только для чтения. По умолчанию результат преобразования выравнивается вправо (старшие 6 разрядов регистра ADCH — незначащие). Однако он может выравниваться и влево (младшие 6 разрядов регистра ADCL — незначащие). Для управления выравниванием результата преобразования служит разряд ADLAR регистра ADMUX. Если этот разряд установлен в «1», результат преобразования выравнивается по левой границе 16-разрядного слова, если сброшен в «0» — по правой границе.

Обращение к регистрам ADCH и ADCL для получения результата преобразования должно выполняться в определенной последовательности: сначала необходимо прочитать регистр ADCL, а затем ADCH. Это требование связано с тем, что после обращения к регистру ADCL процессор блокирует доступ к регистрам данных со стороны АЦП до тех пор, пока не будет прочитан регистр ADCH. Благодаря этому можно быть уверенным, что при чтении регистров в них будут находиться составляющие одного и того же результата. Соответственно, если очередное преобразование завершится до обращения к регистру ADCH, результат преобразования будет потерян. С другой стороны, если результат преобразования выравнивается влево и достаточно точности 8-разрядного значения, для получения результата можно прочитать только содержимое регистра ADCH.

Для недифференциального режима АЦП, когда напряжение отсчитывается от «земли», результат преобразования определяется формулой:

Ка = 1024Uвх/Uref

, где Ка — значение выходного кода АЦП, Uвх и Uref — входное и опорное напряжения.

Дифференциальному измерению соответствует такая формула:

Делаем светодиодный индикатор напряжения

Для практического изучения АЦП напишем программу светодиодного индикатора напряжения. Как и в прошлых примерах будем использовать микроконтроллер Atmega8. Восемь индикаторов подключаем к порту D контроллера, это будет линейная шкала уровня сигнала от 0 до 5V. Входом АЦП у нас будет вывод PC0(ADC0), к которому через переменный резистор сопротивлением 10кОм подается напряжение. Схема устройства представлена ниже:

atmega8 avcc что такое. Смотреть фото atmega8 avcc что такое. Смотреть картинку atmega8 avcc что такое. Картинка про atmega8 avcc что такое. Фото atmega8 avcc что такое

Режим индикации работает следующим образом: после окончания преобразования, которое работает в непрерывном режиме, считываем биты ADCH и ADCL. Это значение потом сравниваем с предварительно расчитанными константами. Если значение ADC больше константы загорается один светодиод, если значение ADC больше второй константы загораются уже два светодиода и т.д.

Константы высчитываются так: так как АЦП 10-ти битный, число 1024 раскладываем на 8 равных частей, а по формуле уже вычисляем эти значения в Вольтах.

Полный код программы показан ниже. Частота тактового генератора контроллера 8MHz.

atmega8 avcc что такое. Смотреть фото atmega8 avcc что такое. Смотреть картинку atmega8 avcc что такое. Картинка про atmega8 avcc что такое. Фото atmega8 avcc что такое

В следующем примере мы разберем принципы создания вольтметра 0-30V на микроконтроллере Atmega8.

MUX3-MUX0Несимметричный вход
0000ADC0
0001ADC1
0010ADC2
0011ADC3
0100ADC4*
0101ADC5*
0110ADC6**
0111ADC7**
1000-1101Зарезервировано
11101,22V
11110V(GND)
Архив для статьи «Аналого-цифровой преобразователь микроконтроллеров AVR»
Описание: Проект AVRStudio4
Размер файла: 17.08 KB Количество загрузок: 1 124Скачать

Аналого-цифровые преобразователи (АЦП) являются устройствами, которые принимают входные аналоговые сигналы и генерируют соответствующие им цифровые сигналы, пригодные для обработки микропроцессорами и другими цифровыми устройствами.

АЦП входит во многие современные модели МК AVR, он многоканальный. Обычно число каналов равно 8, но в разных моделях оно может варьировать от 4 каналов в младших моделях семейства Tiny, 6 в ATmega8, до 16 каналов в ATmega2560. Многоканальность означает, что на входе единственного модуля АЦП установлен аналоговый мультиплексор, который может подключать этот вход к различным выводам МК для осуществления измерений нескольких независимых аналоговых величин с разнесением по времени. Входы мультиплексора могут работать по отдельности (в несимметричном режиме для измерения напряжения относительно «земли») или (в некоторых моделях) объединяться в пары для измерения дифференциальных сигналов. Иногда АЦП дополнительно снабжается усилителем напряжения с фиксированными значениями коэффициента усиления 10 и 200.

Сам АЦП представляет собой преобразователь последовательного приближения с устройством выборки-хранения и фиксированным числом тактов преобразования, равным 13 (или 14 для дифференциального входа; первое преобразование после включения потребует 25 тактов для инициализации АЦП). Тактовая частота формируется аналогично тому, как это делается для таймеров— с помощью специального предделителя тактовой частоты МК, который может иметь коэффициенты деления от 1 до 128. Но в отличие от таймеров, выбор тактовой частоты АЦП не совсем произволен, т. к. быстродействие аналоговых компонентов ограничено. Поэтому коэффициент деления следует выбирать таким, чтобы при заданном «кварце» тактовая частота АЦП укладывалась в рекомендованный диапазон 50-200 кГц (т. е. максимум около 15 тыс. измерений в секунду). Увеличение частоты выборки допустимо, если не требуется достижение наивысшей точности преобразования.

Разрешающая способность АЦП в МК AVR — 10 двоичных разрядов, чего для большинства типовых применений достаточно. Абсолютная погрешность преобразования зависит от ряда факторов и в идеальном случае не превышает ±2 младших разрядов, что соответствует общей точности измерения примерно 8 двоичных разрядов. Для достижения этого результата необходимо принимать специальные меры: не только «вгонять» тактовую частоту в рекомендованный диапазон, но и снижать по максимуму интенсивность цифровых шумов. Для этого рекомендуется, как минимум, не использовать оставшиеся выводы того же порта, к которому подключен АЦП, для обработки цифровых сигналов, правильно разводить платы, а как максимум — дополнительно к тому еще и включать специальный режим ADC Noise Reduction.

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

Регистры управления АЦП

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

Режим непрерывных измерений активизируется установкой бита ADFR (бит 5) этого же регистра. В ряде моделей Mega этот бит носит наименование ADATE, и управление режимом работы производится сложнее: там добавляются несколько режимов запуска через различные прерывания (в т. ч. прерывание от компаратора, при наступлении различных событий от таймера и т. п.), и выбирать их следует, задавая биты ADTS регистра SFIOR, а установка бита ADATE разрешает запуск АЦП по этим событиям. Так как нулевые значения всех битов ADTS (по умолчанию) означают режим непрерывного преобразования, то в случае, когда вы их значения не трогали, функции битов ADATE и ADFR в других моделях будут совпадать.

Если выбран режим запуска не от внешнего источника, то преобразование запускается установкой бита ADTS (бит 6 того же регистра ADCSR/ADCSRA). При непрерывном режиме установка этого бита запустит первое преобразование, затем они будут автоматически повторяться. В режиме однократного преобразования, а также независимо от установленного режима при запуске через прерывания (в тех моделях, где это возможно) установка бита ADCS просто запускает одно преобразование. При наступлении прерывания, запускающего преобразование, бит ADCS устанавливается аппаратно. Отметим, что преобразование начинается по-фронту первого тактового импульса (тактового сигнала АЦП, а не самого контроллера!) после установки ADCS. По окончании любого преобразования (и в одиночном, и в непрерывном режиме) устанавливается бит ADIF (бит 4. флаг прерывания). Разрешение прерывания АЦП осуществляется установкой бита ADIE (бит 3) все того же регистра ADCSR/ADCSRA.

Для работы с АЦП необходимо еще установить его тактовую частоту. Это делается тремя младшими битами регистра ADCSR/ADCSRA под названием ADPS0..2. Коэффициент деления частоты тактового генератора МК устанавливается по степеням двойки, все нули в этих трех битах соответствуют коэффициенту 2, все единицы — 128. Оптимальная частота преобразования лежит в диапазоне 50-200 кГц, так что, например, для тактовой частоты МК, равной 4 МГц, коэффициент может иметь значение только 32 (состояние битов ADPS0..2 = 101, частота 125 кГц) или 64 (состояние битов ADPS0..2 = 110, частота 62,5 кГц). При тактовой частоте 16 МГц в допустимый диапазон укладывается только коэффициент 128.

Выборка источника опорного напряжения производится битами REFS1..0 регистра ADMUX (старшие биты 7 и 6), причем их нулевое значение (по умолчанию) соответствует внешнему источнику. Напряжение этого внешнего источника может лежать в пределах от 2 В до напряжения питания аналоговой части AVcc (а оно, в свою очередь, не должно отличаться от питания цифровой части более чем на 0,3 В в большую или меньшую сторону). Можно выбрать в качестве опорного и питание самой аналоговой части, причем двояким способом: либо просто соединить выводы AREF и AVcc микросхемы, либо установить биты REFS1..0 в состояние 01 (тогда соединение осуществляется внутренними схемами, но заметим, что внешний опорный источник при этом должен быть отключен). Предусмотрен и встроенный источник (задается REFS1..0 в состоянии 11, при этом к выводу AREF рекомендуется подключать фильтрующий конденсатор), имеющий номинальное напряжение 2,56В с большим разбросом от 2,4 до 2,7 В.

Результат преобразования АЦП оказывается в регистрах ADCH:ADCL. Поскольку результат 10-разрядный, то по умолчанию старшие 6 битов в регистре ADCH оказываются равными нулю. Чтение этих регистров производится, начиная с младшего ADCL, после чего регистр ADCH блокируется, пока не будет прочитан. Следовательно, даже если момент между чтением регистров попал на фронт 14 (15) такта АЦП, когда данные в них должны меняться, значения прочитанной пары будут соответствовать друг другу, пусть и результат этого преобразования пропадет. В противоположном порядке читать эти регистры не рекомендуется. Но бит ADLAR (бит 5 регистра ADMUX) предоставляет интересную возможность: если его установить в 1, то результат преобразования в регистрах ADCH:ADCL выравнивается влево: бит 9 результата окажется в старшем бите ADCH, а незначащими будут младшие 6 битов регистра ADCL. В этом случае, если хватает 8-разрядного разрешения результата, можно прочесть только значение ADCH.

Выбор каналов и режимов их взаимодействия в АЦП производится битами MUX0..3 в регистре ADMUX. Их значения выбирают нужный канал в обычном (недифференциальном) режиме, когда измеряемое напряжение отсчитывается от «земли». Последние два значения этих битов для семейства Mega (11110 и 11111 в большинстве моделей или 1110 и 1111 для ATmega8) выбирают режимы, когда вход АЦП подсоединяется к опорному источнику компаратора (1,22 В) или к «земле» соответственно, что может использоваться для автокалибровки устройства.

Остальные комбинации разрядов MUX предназначены для установки различных дифференциальных режимов — в тех моделях, где они присутствуют, в других случаях эти биты зарезервированы (как в моделях Atmega8, ATmegal63 и др.). В дифференциальном режиме АЦП измеряет напряжение между двумя выбранными выводами (например, между ADC0 и ADC1), причем не все выводы могут быть в таком режиме задействованы. В том числе дифференциальные входы АЦП можно подключать к одному и тому же входу для коррекции нуля. Дело в том, что в ряде моделей на входе АЦП имеется встроенный усилитель, с коэффициентом 1х, 10х и 200х (коэффициент выбирается теми же битами MUX0..4), и такой режим используется для его калибровки — в дальнейшем значение выхода при соединенных входах можно просто вычесть.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *