Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру
292 Часть 111. Практическое программирование микроконтроллеров А VR рейтом и об искажениях частотного спектра сигнала. С помощью встроенных средств АVR подобные преобразования осуществимы лишь для относительно мед ленно меняющихся сигналов (для качественной оцифровки звука АЦП и аналого вый компаратор в АVR недостаточно скоростные), потому мы остановимся лишь на задаче, когда требуется преобразовывать статический сигнал при измерении аналоговой величины (т. е. когда измерения проводятся дост аточно редко, и сама по себе их регулярность роли не играет). Обратная задача (цифроаналоговое преобразование) проиллюстрирована на рис . 1 1 . 1 , 6. Сущность ЦАП в том, что мы выражаем двоичное число в виде про порциональной величины напряжения, т. е. занимаемся, с точки зрения теории, все го лишь преобразованием масштабов или, иначе, физическим моделированием аб страктной величины - числа. Вся аналоговая шкала поделена на кванты - града ции, соответствующие разрешающей способности нашей двоичной «линейки» . Как мы видим из рис. 1 1 . 1 , правый график представляет левый, мягко говоря, весьма приблизительно. Чтобы повысить степень достоверности полученной кривой, сле дует увеличить разрядность преобразования . Тогда ступеньки будут все меньше и меньше, и есть надежда, что при некотором достаточно высоком разрешении кри вая станет, в конце концов, неотличимой от исходной непрерывной аналоговой линии. Ясно, что сколь угодно увеличивать разрешение нельзя - число разрядов АЦП ог раничено. Поэтому в любом АЦ-преобразовании обязательно присутствует по грешность квантования, связанная с разрядностью АЦП. Но это не единственная составляющая общей погрешности преобразования . Кроме нее есть случайная по грешность - абсолютная погрешность по всей шкале, которая для встроенного АЦП МК АVR может составлять, согласно документации, до ±2 младших разрядов (LSB), погрешность нелинейности шкалы (в АПЦ AVR она достаточно мала: ±0,5 LSB) и дополнительная случайная погрешность, связанная с наводками и шу мами. Дr�я борьбы с последней принимают специальные меры. На сигнальном входе сле дует фильтровать сигнал, устанавливая небольшой конденсатор. Если аналоговая часть МК питается от того же источника, что и цифровая, то аналоговое питание следует также фильтровать установкой LC- или RС-фильтров. Не рекомендуется использовать свободные выводы того же порта, к которому подсоединен АЦП (обычно это PortC или PortA), для обработки цифровых сигналов во время преобра зования . Кроме того, имеется возможность вообще остановить МК на время преоб разования через режим ADC Noise Reduction, о котором далее. ЗАМЕТКИ НА ПОЛЯХ Не следует забывать и о том , что для более полной реализации возможностей имею щегося АЦП нужно стремиться к тому, чтобы пределы изменения измеряемой величи ны были как можно ближе к диапазону АЦП - длине нашей двоичной линейки. При чем именно пределы изменения , которые несут информацию, а не полный размах аналогового сигнала: если сигнал изменяется , к примеру, от 4 до 4,5 В, и мы его будем измерять с помощью АЦП с диапазоном от О до 5 В и разрешением 1 О двоичных раз рядов (что соответствует минимальному делению линейки в 5 8/1 024 "' 5 мВ) , то мы ухудшим результат с точки зрения разрешения ровно в 10 раз: на 0 , 5 В реального
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==