Предлагается проверить методику повышения точности АЦП на «копеечном» микроконтроллере (МК) ATtiny13. В журнале РадиоЛоцман №07-08 за 2020 г. [1] представлен цифровой вольтметр (ЦВ) с разрешением 18 бит, выполненный на базе «новейшего МК EFM8LB12, оснащенного высокоскоростным 14-разрядным SAR АЦП». Метод повышения точности хорошо описан и подтвержден автором в реальных испытаниях.
Если опираться на выводы вышеупомянутой публикации, повышение разрешающей способности 10-разрядного АЦП до 12 бит потребует оперировать с 16-битной разрядностью. Это необременительно даже для 8-разрядного ядра.
В свое время автор использовал цифровой вольтметр с двумя каналами на ATtiny13 [2, 3], в котором для повышения стабильности показаний использовалось усреднение по 64 отсчетам. Деление 16-разрядной суммы на некий удобный коэффициент давало возможность отображать на дисплее напряжение до 40 В с разрешением в младшем разряде 10 мВ. Точность, естественно, оставалась паспортной для данной разрядности АЦП. Однако вольтметр стал более комфортен и информативен в работе, появилось доверие к младшему разряду.
Эта разработка оказалась очень удобной для изучения возможностей метода повышения разрядности АЦП по причине предельной простоты (Рисунок 1). В аппаратном плане из соображений доступности заменен только дисплей. Изменения в программе в основном коснулись обработки данных аналого-цифрового преобразования и драйвера индикатора.
Рисунок 1. | Схема двухканального цифрового вольтметра. |
Высокая частота преобразований, около 50 Гц на канал, обеспечивает необходимую передискретизацию. Суммируются последовательно каждые 8 10-разрядных результатов преобразования и отбрасывается самый младший бит. Получаем один 12-битный отсчет.
Эта операция называется прореживанием. 16 таких отсчетов суммируем и, как уже реализовано ранее, делим на удобный коэффициент, который учитывает делитель (или усилитель) напряжения на аналоговом входе МК. Можно назвать это усреднением с нецелым коэффициентом. Показания вольтметра после доработки программы не изменились, но поведение младшего разряда стало иным и субъективно лучше предыдущего. Может этому способствует то обстоятельство, что теперь текущее показание вольтметра строится на 128 элементарных измерениях, т.е. больше в два раза?
На многих интернет-площадках предлагаются 4-разрядные 7-сегментные светодиодные индикаторы на базе ИС TM1637. Обращает внимание невысокая цена индикаторов с двоеточием посередине, предназначенных для часов. Двух размеров 0.36/0.56", широкой гаммы цветов, удобного двухпроводного интерфейса и возможности подключить несколько кнопок более чем достаточно, чтобы выбрать этот дисплей для вольтметра. Небольшой размер программ обслуживания TM1637 (около 80 байт) позволяет применять недорогие ATtiny13 и строить на них измерители, которые превосходят по удобству и точности предлагаемые там же трехразрядные модули вольтметров.
Для управления TM1637 используется усеченный вариант шины I2C, в протоколе которого отсутствует адресация подчиненного устройства. Достоинством здесь является простой протокол и малые затраты программной памяти. Недостатком модуля оказалась низкая скорость обмена данными, но его несложно инвертировать. Каждый информационный вход имеет RC цепь с постоянной времени около 0.1 мс. В данном случае это ощутимо увеличивало время обновления и, хоть и немного, программную память. Уменьшая емкость конденсаторов, скорость передачи данных можно существенно увеличить. Без них модуль работает с микроконтроллером, тактируемым 10 МГц, без временных задержек в подпрограммах и обеспечивает обмен данными за 1 мс, в том числе и опрос состояния кнопок. С заклеенной крохотным кусочком черной изоляционной ленты верхней точкой и удаленными входными конденсаторами часовой индикатор использован в цифровом вольтметре (Рисунок 2).
Рисунок 2. | Макет вольтметра. |
Кнопки подключены по схеме, приведенной в техническом описании, проводники подпаяны к выводам индикатора и микросхемы модуля TM1637, которые обозначены на Рисунке 3. На схеме четыре кнопки (для расширения возможностей управления), но демонстрационной программе будет достаточно даже одной. Нажатие на любую их них зажигает/гасит светодиод и переключает канал вольтметра.
Рисунок 3. | Подключение кнопок к модулю TM1637. |
Настройку в любой точке шкалы можно выполнить, изменяя сопротивления в делителях и/или подбирая константы (Coef) в программе для каждого канала. Значение константы в исходнике (vm05.asm) и отношение сопротивлений резисторов R1/R2 = 2.28 определяют входное напряжение около 20 В. Делитель рассчитывается из условия непревышения напряжения питания на аналоговом входе МК (диоды на землю и на питание приветствуются). Максимальное напряжение на входе вольтметра желательно ограничить 40 В. Программная память микроконтроллера использована наполовину и позволит при необходимости расширить возможности приборчика. Исходный текст на ассемблере и код для загрузки доступны.
Ссылки
- Кузьминов А. Цифровой вольтметр с повышенной разрешающей способностью.
- Бабанин В. Новые возможности последовательных интерфейсов ЖКИ.
- Бабанин В. Термостатирование элементов микроконтроллерных устройств.