Программирование AVR AVR-USB-MEGA16: замена GC7137AD (ICL7137) на ATmega32 и OP291 Thu, November 21 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


AVR-USB-MEGA16: замена GC7137AD (ICL7137) на ATmega32 и OP291 Печать
Добавил(а) microsin   

Один микроконтроллер ATmega32 и сдвоенный операционный усилитель заменяет две дефицитные микросхемы GC7137AD (урезанный аналог микросхемы-мультиметра ICL7137). Другими словами, на микроконтроллере ATmega32 собран цифровой трехразрядный вольтметр и амперметр, который можно использовать для контроля параметров лабораторных источников тока.

Недавно мне написали про неудачную переделку блока питания DAZHENG PS-1502DD [2]. Парень неправильно запитал блок индикации YIZHAN-3000BTB (напряжение питания взял без развязки), и у него погорели микросхемы GC7137AD. Этот случай подсказал мне сделать программу для ATmega32, которая заменяла бы весь блок индикации YIZHAN-3000BTB. В этой статье описывается, как работает этот новый блок индикации, и чем он отличается от старого.

[Блок индикации YIZHAN-3000BTB]

Полная принципиальная схема блока индикации YIZHAN-3000BTB есть в статье [2]. Здесь я привожу только краткую структурную схему этого узла, чтобы было проще понять, как он работает.

YIZHAN-3000BTB-diagram-original.png

Постоянное стабилизированное напряжение питания 5 вольт этого блока индикации должно иметь обязательную развязку от всей остальной схемы блока питания (от проводов КРАСНЫЙ, ЧЕРНЫЙ и СИНИЙ, которыми блок индикации соединен со силовым стабилизатором напряжения). Это достигается применением отдельной обмотки силового трансформатора и отдельного выпрямителя со стабилизатором.

[Блок индикации на ATmega32 и OP291]

Ниже приведена новая схема блока индикации и его принципиальная схема. Блок индикации был собран на макетной плате AVR-USB-MEGA16, поэтому конструкция получилась очень простая. Несмотря на то, что точность АЦП ATmega32 всего лишь 10 бит, блок индикации благодаря интегрированию нескольких результатов дает точность примерно 12 бит. Т. е. точность измерения превышает величину единицы младшего разряда отображаемых цифр. Коэффициенты усиления буферных каскадов каналов тока и напряжения (построенных на операционных усилителях постоянного тока) грубо подобраны таким образом, что постоянное выходное напряжение на входе ADC (порты PA1 и PA3 микроконтроллера) не превышает уровень опорного напряжения ADC (используется внутренний источник опорного напряжения 2.56 вольт, встроенный в микроконтроллер ATmega32).

YIZHAN-3000BTB-diagram-new.png YIZHAN-3000BTB-sch-new.png

Основное отличие от YIZHAN-3000BTB в том, что в качестве датчика тока используется резистор 0.1 Ом, подключенный по минусовому проводу силового стабилизатора. Второе отличие - питание блока индикации на ATmega16 (5 вольт) не требует развязки от силового стабилизатора, оно имеет с ним общий минусовой провод. Третье отличие - для калибровки канала тока и напряжения отсутствуют подстроечные резисторы - теперь калибровка производится с помощью управляющей консоли через USB (в программе ATmega32 зашита подсистема CDC USB, реализующая виртуальный COM-порт). Четвертое отличие - запятые на индикаторах плавающие, их положение зависит от уровня измеряемого тока и напряжения.

VA-meter-IMG_0750.JPG VA-meter-IMG_0755.JPG VA-meter-IMG_0749.JPG VA-meter-IMG_0758.JPG VA-meter-IMG_0762.JPG VA-meter-IMG_0763.JPG VA-meter-IMG_0776.JPG

[Блок индикации на ATmega32 и OP482]

YIZHAN-3000BTB-sch-op482-new.png

Это вариант схемы с буферным усилителем на OP482. Отличается от варианта с OP291 незначительным усложнением схемы - добавился генератор отрицательного напряжения питания для OP482. Зато этот вариант ПОЛНОСТЬЮ эквивалентен по схеме подключения оригинальному индикатору YIZHAN-3000BTB, и запитывается точно так же. Внимание! Источник питания +5 В индикатора на OP482 должен иметь развязку от всех остальных цепей лабораторного блока питания, в отличие от схемы на OP291. Т. е. "земля" или общий провод схемы индикатора должен соединяться исключительно с выходной клеммой "+" схемы блока питания DAZHENG PS-1502DD (точно так же, как и в случае индикатора YIZHAN-3000BTB на микросхемах GC7137AD).

VA-meter-OP482-IMG_0785.JPG

[Конфигурирование каналов тока и напряжения]

Блок индикации на ATmega32 конфигурируется простой консолью, которая подключается к виртуальному COM-порту, сконфигурированные параметры записываются в EEPROM ATmega32 и сохраняются при выключении питания. Когда Вы подключаете блок индикации к компьютеру через разъем miniUSB (он установлен на макетной плате AVR-USB-MEGA16), то в компьютере появляется новый COM-порт. Если подключиться к нему обычной консолью (SecureCRT, HyperTerminal, TerraTerm и проч.), то становится доступной командная строка, которой конфигурируется устройство. Подсказка выводится при вводе символа ?, информация о настройках - при вводе I. Собственно нужно сконфигурировать только два параметра - коэффициенты пересчета тока KI и напряжения KU. Они вводятся в текстовом формате, в виде числа с плавающей точкой.

VA-meter-config.png

[Ссылки]

1. Проект (исходники и прошивка) для AVR Studio блока индикации на ATmega32.
2. Китайский лабораторный источник питания DAZHENG PS-1502DD.
3. Макетная плата AVR-USB-MEGA16.
4. ATmega16 (32): аналого-цифровой преобразователь (ADC).

 

Комментарии  

 
0 #7 Сергей 19.12.2018 11:22
Спасибо за ответ, но есть к Вам ещё вопрос. На макетной плате заметил ограничивающие резисторы в цепях катодов индикаторов, на схеме их нет. 240 Ом - верно?

microsin: уже не помню таких тонкостей. Да, 240 Ом. Скорее всего схема упрощенная, с акцентом на измерение тока и напряжения.
Цитировать
 
 
0 #6 Сергей 18.12.2018 19:08
Хотел бы повторить Ваш проект, но есть вопросы. Как изменить ограничение тока с 3A до 5A, и напряжения с 16V до 30V? Чем обусловлено применение OP482, ведь используется только два операционных усилителя и можно эту микросхему заменить на другую?

microsin: нет никаких ограничений на изменение измерения тока и напряжения. Показания зависят от сопротивления токового шунта (датчика тока, падение напряжения на нем измеряет левый по схеме ОУ) и от делителя напряжения (напряжение на его выходе измеряет правый ОУ), а также от коэффициентов KI и KV, которые можно поменять из командной строки терминала. Читайте файл readme.txt, статью и исходный код, там все понятно описано. И конечно же операционный усилитель может быть любым с двуполярным питанием относительно общего провода, необходимо только обеспечить для него требуемые напряжения питания.
Цитировать
 
 
0 #5 Владимир 27.02.2015 10:26
Попробовал собрать вашу схему, прошил контроллер программатором PonyProg в некоторых цифрах (1, 4, 5, 6) отображаются не все сегменты. Подскажите, в чем может быть дело?

microsin: либо битые сегменты в индикаторе, либо неправильно его подключили. Проверьте индикатор и схему.
Цитировать
 
 
0 #4 FDoich 17.04.2011 18:58
Интересный проект. Так можно использовать в обоих вариантах Atmega16?

microsin: да, конечно, ничего не мешает.
Цитировать
 
 
0 #3 OLEG 16.09.2010 04:03
У меня БП BAKKU BK-1502D+
Дополнительно в нем есть индикатор RF-уровня, остальные параметры ничем не отличаются. Блок индикации собран на каком-то китайском контроллере (даже намёков на обозначение нет на корпусе), но RF на 7 "делений" он тоже обслуживает.

Кто такие разбирал? Что за контроллер?
Цитировать
 
 
0 #2 Виталий 30.05.2010 02:41
А как расположить операционные усилители, если по земле идет ШИМ, и надо замерять напряжение?

microsin: без принципиальной схемы что-либо посоветовать невозможно.
Цитировать
 
 
0 #1 Виталий 09.05.2010 11:28
Так же напряжение будет врать на 0.1*I Вольт , соответственно если ток 10А, то на индикаторе будет 5В, а на выходе 4В... или я не прав :o

microsin: Вы правы, только максимальный ток будет не 10 А, а 2 А, поэтому ошибка составит 0.2 вольта. Причем эту ошибку легко исправить программно (пока это не реализовано) - ATmega32 может просто добавлять падение напряжения на датчике тока 0.1 Ом к показанию вольтметра. Кстати, сопротивление датчика тока при желании можно еще уменьшить, скорректировав коэффициент усиления на операционном усилителе OP291.

От этого недостатка полностью свободна схема индикатора на ATmega32 с применением OP482 - подключение точно такое же, как и у "родного" индикатора.
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Top of Page