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

Глава 1 1 . Аналоговый компаратор и АЦП 301 ПОДРОБНОСТИ Неоценимую помощь в освоении любой периферии оказывает одно положительное качество архитектуры AVR : если вы освоили какой-то определенный режим любого устройства , входящего в состав конкретной модели , то в любой другой модели этот режим управляется теми же самыми регистрами и битами , находящимися в них на тех же самых местах. Различия бывают в наименованиях регистров и битов, не более (но при этом часто действуют и оба варианта имени) . Именно поэтому я зачастую, как вы могли заметить , устанавливаю биты в регистрах через двоичное представление, а не заданием имени бита. Хотя последний способ лучше читается , но имя бита можно указать в комментарии вместо того, чтобы рыться в описаниях: а не изменилось ли оно? Исключения из этого правила случаются , но достаточно редкие, и при необходимости их несложно запомнить . Одно из них в рассматриваемой теме относится к заданию режима запуска АЦП по прерыванию от некоторых периферийных устройств, который задается битами ADТDS2 : о , находящимися в зависимости от модели в разных регист­ рах (sпoR или ADCSRВ ) на разных местах. Мы такой режим использовать не будем (а в ATmega8 его и вовсе нет) , потому для нас это несущественно. Но, к сожалению, именно АЦП ярко демонстрирует еще одну разновидность несовместимости моделей AVR - различие в характеристиках некоторых устройств. В нашем случае - это раз­ ная величина внутреннего опорного напряжения у разных моделей. Если в случае компаратора ИОН использовался напрямую, и его величина 1 , 1 -1 ,3 вольта приблизи­ тельно одинакова для любого AVR, то для АЦП в одних моделях она может усили­ ваться до 2 , 56 вольта , а в других остается равной напряжению ИОН. Иначе говоря, прежде чем перейти к практическому применению АЦП, сначала придется разобраться в управлении режимами. Рекомендую также ознакомиться с весьма толковым описанием работы АЦП в [2] - там вы найдете некоторые под­ робности, которые я здесь буду опускать. АЦП есть во всех Mega и в некоторых Тiny (в «нашем» ATtiny23 1 3 АЦП, к сожалению, отсутствует), но мы здесь будем говорить преимущественно о Mega, иначе совсем закопаемся в подробностях. П итание и опорное напряжение Общие сведения об устройстве АЦП в МК АVR приведены в главе 3. Прежде всего следует напомнить, что у АЦП отдельное питание через вывод АVCC. Мы уже го­ ворили, что в некоторых пособиях отдельный вывод GND, находящийся рядом с выводом AVCC, называют AGND (подразумевая некую «аналоговую землю») . На самом деле теоретически никакой разницы между одноименными выводами GND на разных сторонах кристалла (в АTmega8 это выводы 8 и 22) нет, в цифровых функциях вы можете спокойно применять оба. Практически же второй вывод GND действительно физически находится рядом с АЦП, и при аккуратной работе с АЦП его не стоит привлекать к выполнению цифровых функций, а использовать для подключения реальной аналоговой «землю> - общего провода внешнего аналого­ вого питания, которое подается на AVCC (к той же «земле» при необходимости подключаются и внешние аналоговые устройства). Аналоговая «земля» платы (не сам по себе второй вывод GND, а тот общий провод, к которому подключаются аналоговые компоненты схемы помимо контроллера) по правилам должна соединяться с цифровой (обязательно ! ), но только в одной точке, причем вблизи внешних выводов платы. В реальности это достижимо лишь когда

RkJQdWJsaXNoZXIy MTExODQxMg==