Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

302 Часть 111. Практическое программирование микроконтроллеров А VR аналоговое питание подается от отдельного источника, но обычно это не так, и та­ кое требование можно не учитывать. Питание АVCC не должно отличаться от пи­ тания цифровой части более, чем на 0,3 В в большую или меньшую сторону, и обычно это то же самое питание VCC, только дополнительно развязанное отдель­ ным конденсатором 0, 1 мкФ непосредственно между вторым выводом GND (к ко­ торому подключена аналоговая «земля» платы) и выводом AVCC. Фирменные опи­ сания контроллеров рекомендуют дополнительно к конденсатору ставить между VCC и АVCC еще и дроссель индуктивностью 1 О микрогенри. Напомним, что если АЦП не используется, то подключать АVCC необязательно. ПОДРОБНОСТИ На входе АЦП установлено устройство выборки-хранения , которое интегрирует на­ пряжение входного сигнала с помощью RС-цепочки (оно призвано не допускать резких изменений сигнала во время преобразования) . Из-за этого источник сигнала не дол­ жен иметь слишком высокое сопротивление - документация рекомендует не более 1 О кОм . Но не следует воспринимать эту величину как предельно допустимое значе­ ние - при медленных изменениях сигнала и с более высокоомными источниками существенной ошибки возникать не будет. Не стоит только увлекаться и подключать ко входу мегаомные делители напряжения: АЦП все-таки не компаратор, и создавать таким образом лишние источники возможных погрешностей не следует. В связи с АЦП встает вопрос об источнике опорного напряжения. Выбор источника производится битами REFS l : о регистра ADМUX (старшие биты 7 и б), причем их нуле­ вое значение (по умолчанию) соответствует внешнему ИОН, подключенному к вы­ воду AREF. Напряжение этого внешнего источника может лежать в пределах от 2 В до напряжения питания аналоговой части AVCC. По умолчанию этот режим вы­ бран для безопасного включения контроллера, т. к. при подключенном внутреннем ИОН (единичное состояние обоих битов REFS ) к выводу AREF нельзя подключать какое-то напряжение . В случае выбора внутреннего источника к этому выводу сле­ дует также подключить керамический конденсатор О, 1 - 1 ,0 мкФ, что должно суще­ ственно снизить «дребезг» результатов преобразования . Из-за запрета на одновре­ менное подключение внутреннего и внешнего ИОН чисто программное переклю­ чение по ходу работы между ними невозможно. С вывода AREF можно измерить напряжение внутреннего ИОН, что полезно для проведения предварительных рас­ четов при индивидуальной калибровке, но в общем случае не рекомендуется к нему подключать какие-то внешние схемы. Напряжение внутреннего источника для «наших» ATmega8 и ATmega8535 в случае АПЦ усиливается отдельным усилите­ лем до 2, 56 В (с разбросом приблизительно от 2,4 до 2,7 В), а в других моделях (в ардуиновском ATmega328, например) составляет все те же самые 1 , 1 - 1 ,2 вольта. Самый простой путь, по которому пошли и в Arduino, - выбрать в качестве опор­ ного питание самой аналоговой части АVCC. Причем это можно сделать двумя способами : либо просто соединить выводы AREF и АVCC микросхемы, оставив настройки «по умолчанию», либо установить биты REFS l : о в состояние 0 1 (тогда соединение осуществляется внутренними схемами) . Конечно, второй способ удоб­ нее и надежнее, и к тому же позволяет безболезненно переключаться между АVCC и внешним или внутренним ИОН.

RkJQdWJsaXNoZXIy MTExODQxMg==