![]() |
![]() |
|||||||||||||||
"Странный" вольтметр на AD7819
Автор: ejsanyo Приветствую любителей аппаратной логики! А давайте сегодня сделаем...вольтметр? Вот на чём нормальные люди обычно делают вольтметры? Нормальные люди "велосипеды" не изобретают. Как правило, берётся либо специализированный чип, вроде ICL7107 или его многочисленных клонов, включается по типовой схеме, и, в общем-то, всё, готов измеритель на 3,5 разряда. Те, кому этого недостаточно, берут микроконтроллер и измеряют его встроенным АЦП. Кому и этого недостаточно (например, требуется выше точность или гальваническая развязка измерительной части) берут и вешают на контроллер внешний АЦП, коих на сегодняшний день существует великое множество. А сможем ли мы заставить какой-нибудь из этих АЦП работать без контроллера? Что-ж, попробуем. Достался мне тут чип под названием AD7819. Это неплохой для своего времени, функционально законченный униполярный восьмибитный АЦП с очень простым параллельным интерфейсом. Как следует из документации, цикл преобразования делается в три этапа:
Всё основную работу чип делает сам. Кажется, что тут контроллер не очень-то и нужен? Набросаем схему на логике попроще: Таймер DA2 формирует импульсы с небольшой скважностью при частоте около 44 Гц. Далее схема на DD1A, DD1B, DD2A забрасывает эти импульсы по очереди то на вход CONVST, то на RD. Поскольку длительность преобразования у AD7819 даже в худшем случае гораздо меньше периода следования импульсов, можно немного упростить себе жизнь и не проверять состояния BUSY. По переднему фронту RD данные с шины АЦП захватываются регистром DD4 на время между циклами преобразования. AD7819 почти всё имеет в своём составе, кроме источника опорного напряжения. Исправим этот недостаток внешним ИОН параллельного типа. В нашем случае это "китайская версия" TL432 на напряжение стабилизации около 1,25В. Внимательно смотрите даташит конкретного производителя. Из чипов аналогичного класса от не-китайских производителей можно предложить, скажем, LMV431 или TS431. Теперь эти данные надо каким-то образом показать пользователю устройства в доступной для его понимания форме. Но вот беда: AD7819 выдаёт простой двоичный код, и если вы не обладаете специфическими способностями, то воспринимается этот код не очень наглядно. Поможем нашему пользователю, сначала преобразовав код в двоично-десятичную форму, после чего выведем его с помощью дешифраторов на привычные светодиодные "восьмёрки". Поскольку восемью битами можно представить коды от 0 до 255, получается три двоично-десятичных знакоместа. Соответственно, понадобится три индикатора и три дешифратора к ним. Вообще двоично-десятичное преобразование - не такая уж простая операция. Для её осуществления используем специальные ПЗУ с прошитыми таблицами К155ПР7, включив их по одной из типовых схем. Отмечу некоторые нюансы, выявившиеся при работе с ними:
В качестве дешифраторов возьмём старые добрые КР514ИД1. Они имеют встроенные ограничители выходного тока на несколько мА, чего как раз хватает, чтобы зажечь современные светодиодные "восьмёрки" с общим катодом небольшого размера. Перечисленного достаточно, чтобы уже можно было чего-то как-то измерять. Но всё-же немного расширим функциональность. Добавим гашение незначащего старшего нуля при выводе кодов от 0 до 99. Поскольку для вывода старшего разряда используется всего два двоично-десятичных разряда (цифры 0, 1 или 2), достаточно было бы объединить их в логическое ИЛИ и подать на вход разрешения индикации ИД1, что и делает элемент DD3A. Но мы пойдём немного дальше и сделаем индикацию максимального значения напряжения, намекающую пользователю, что сигнал вышел за допустимый диапазон. Определить максимальное значение отсчёта АЦП нам поможет восьмивходовой элемент И-НЕ DD5. Чтобы сделать индикацию заметнее, сделаем так, чтобы индикаторы мигали. Для этого триггером DD2B ещё раз поделим тактовый сигнал на 2 и смешаем его с выходом DD5 на элементе DD1D. При этом для дешифратора старшего разряда логикой DD3B, DD3D дополнительно добавляется сигнал гашения нуля. А элементы DD3C и DD1C, оставшись немного лишними, просто...делают логическую ТТЛ-совместимую единицу для неиспользуемых входов триггеров. Разумеется, их роль могла бы выполнить пара обычных резисторов на 1 кОм. В левом верхнем углу у нас, кстати, притаился ещё один иноагент т.н. преобразователь True RMS to DC AD736. Он преобразует действующее значение переменного тока в близкое к нему значение постоянного напряжения, что позволяет измерять устройством переменное напряжение. Пойдёт ли сигнал с него, или напрямую со входа, можно выбрать джампером на контактах XP2. Учитывая, что AD736 сохраняет приличную линейность преобразования лишь при уровне сигнала в районе примерно до вольта, теперь становится понятно, почему мы выбрали такое низкое напряжение для ИОН. Поскольку для нормальной работы AD736 рекомендуется использовать двухполярное питание, добавлен конденсаторный инвертор напряжения на ICL7660. Кроме того, в качестве C4, C9, C12 в "обвязке" чипа рекомендуется использовать качественные танталовые конденсаторы, иначе возможно значительное ухудшение точности преобразования. Разумеется, если планируется измерение лишь постоянного напряжения, эти чипы можно не устанавливать. Входной делитель напряжения подобран под коэффициент деления, близкий к 20,4, что с установленным ИОН позволяет без каких-либо дополнительных преобразований измерять напряжение в диапазоне 0...25,5В. Поэтому возьмём резистор R7 и зажжём точку на втором индикаторе, чтобы подчеркнуть этот факт. Подстроечник R4 позволяет скорректировать показания устройства в пределах нескольких процентов по калибратору, или образцовому вольтметру, скомпенсировав погрешности сопротивлений делителя и преобразования AD736. Таким образом, мы смогли приблизиться к функционалу, предоставляемому, скажем, хорошо знакомыми вам китайскими встраиваемыми вольтметрами, вроде таких.
Посмотрим, какой же ценой мы этого достигли? У меня в работе изделие с аппетитом пожирает почти 400 мА, так что из-за нагрева в качестве DA4 ставить классическую КР142ЕН5 aka LM7805 с небольшим радиатором более-менее приемлемо получается только при напряжении питания где-то до 7,6В, иначе лучше будет поставить модуль импульсного понижающего преобразователя вроде N7805 от MeanWell или K7805M от Mornsun. В принципе потребление можно немного снизить, если использовать не классическую 155 логику, а что-нибудь посовременнее, например, серию КР1533. Если кто-либо заинтересуется данным проектом, захочет его повторить и улучшить - полный проект платы выложен в конце статьи.
Файлы: Все вопросы в Форум.
|
|
|||||||||||||||
![]() |
![]() |


![]() |
![]() |
|||
|
||||
![]() |
![]() |