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

Глава 1 1 . Аналоговый компаратор и АЦП 303 ПОДРОБНОСТИ Использование внутреннего источника опорного напряжения часто не столько неудоб­ но из-за его разброса, · сколько из-за заданной величины напряжения 2 , 56 или 1 , 1 вольта . Входное напряжение аналогового сигнала ограничено сверху величиной опорного напряжения Vret , которой соответствует максимальный код согласно разряд­ ности АЦП (см . разд. «Аналого-цифровые операции и их погрешности» в этой главе) . При этом, как мы уже знаем , нежелательно сильно занижать диапазон входного сиг­ нала в сравнении с Vret , чтобы не терять в разрешении . То есть, чтобы «выжать» из АЦП максимум , следует подогнать напряжение ИОН под имеющийся датчик (обратное чаще всего недоступно, если только мы не возьмемся самостоятельно городить мас­ штабирующие усилители) . В основном, это и есть причина того, что нередко прихо­ дится искать подходящий внешний источник . Конечно, возникает искушение повысить точность преобразования с помощью внешнего калиброванного прецизионного ИОН (вроде семейства REF 1 9х фирмы Aпalog Devices или его аналогов) , но, поверьте, что прецизионность в этом случае на втором плане - в большинстве случаев важнее со­ ответствие выходного напряжения датчика и ИОН (соответствующий пример приведен в главе 14) . З адание режима ра б оты АЦП может функционировать в непрерывном режиме (когда по окончании преоб­ разования тут же начинается следующее) или в одиночном (когда каждый раз по­ ступает команда на запуск) . Кроме того, запуск режима ADC Noise Reduction ини­ циирует начало преобразования с одновременным выключением всех остальных цифровых узлов контроллера, а с его окончанием МК автоматически «просыпает­ ся» и переходит к обработчику прерывания АЦП. Режим ADC Noise Reduction останавливает все схемы МК (кроме асинхронного таймера и WDT) до окончания преобразования (т. е. минимум примерно на 20 тактов). Для моделей, где режима ADC Noise Reduction нет, можно использовать режим Idle, в котором, правда, оста­ навливаются не все устройства (см. главу 14) . В любом случае возиться с наворо­ ченным алгоритмом управления этими режимами целесообразно лишь тогда, когда по крайней мере и питание, и опорное напряжение АЦП подаются от отдельных прецизионных источников - иначе эти меры все равно не дадут нужного эффекта. АЦП включается в работу установкой бита ADEN (бит 7) в регистре управления АЦП, который в большинстве моделей Mega и Tiny называется ADCSRA. Режим не­ прерывных измерений включается установкой бита ADFR (бит 5) этого же регистра. В ряде моделей Mega (к ним относится, например, АTmega8535 ) этот бит носит на­ именование ADATE, и управление режимом работы производится сложнее : там до­ бавляются несколько режимов запуска через различные прерывания (в т. ч. преры­ вание от компаратора, при наступлении различных событий от таймера и т. п.), и выбирать их следует, задавая биты ADTSx регистра SFIOR (в некоторых моделях эти биты размещены в дополнительном регистре ADCSRB ) . Установка бита АDАТЕ при этом разрешает запуск АЦП по этим событиям . Так как нулевьiе значения всех битов ADTSx (по умолчанию) означают режим непрерывного преобразования, то в случае, когда вы их значения не трогали, функции бита ADATE и бита ADFR в других моделях будут совпадать.

RkJQdWJsaXNoZXIy MTExODQxMg==