Ревич, Ю.В. Программирование микроконтроллеров 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 в других моделях будут совпадать.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==