hxESRMeter

[Translate to English]

Статья опубликована на сайте radiokot.ru

 Описание прибора

Прибор предназначен для измерения ёмкости, индуктивности, сопротивления, а также ESR электролитических конденсаторов.

ESR можно измерять в схеме.

Прибор имеет любительское предназначение и не претендует на высокую точность измерений. В любительской практике, в основном, требуется знать примерное значение параметра, чтобы собрать схему. Точность измерений в таблице ниже приведена примерно на основании измерения известных компонентов, разброс параметров которых обычно составляет до 10%.

Таблица. Диапазоны измерений и точность

Параметр Диапазон измерений Точность
Активное сопротивление 1Ом – 2МОм не хуже 10% в диапазоне до 400К, не хуже 20% в диапазоне 400К-2МОм
Ёмкость 1пФ – 3мкФ не хуже 10%
Индуктивность 1мкГ – 100мГ не хуже 10%
ESR 0.01Ом – 10Ом не хуже 20%

 

На передней панели прибора находятся LCD-индикатор ( 8 знаков ), гнездо для измерения R,L,C, гнездо для измерения ESR, и кнопка установки нуля. На боковой панели находятся кнопки переключения режима. В качестве альтернативы можно измерять ESR в схеме щупами, выведенными на верхнюю панель.

В качестве корпуса взят корпус от роутера DLink DI-524.

Принцип работы

hxRLCMetter schematix

Измерение активного сопротивления

Для измерения активного сопротивления элемента, он включается последовательно с известными сопротивлениями. Всего в схеме 4 известных сопротивления (R22-R25) для разных диапазонов, которые по очереди подключаются микроконтроллером.

hxESRMetter_r

Последовательно с измеряемым резистором из-за особенностей схемы включен резистор R21 (100 Ом) для исключения короткого замыкания при переключении выключателей SW1-SW4.

В качестве ключей используются транзисторы 2N7002, выпаянные из материнской платы.

2N7002

На цепочку ( R21 + Rx + Rcal ) подаётся отфильтрованное напряжение питания (Uavcc, 5V) и измеряется падение напряжения на резисторе Rcal (Usence).

Rx = Rcal * Uavcc / Usence – Rcal – R21

Из всех измерений выбирается то, которое даёт наилучшую точность. Для этого прибор упрощённо вычисляет производную указанной функции. Учитывая, что разрядноть АЦП составляет 1024 единицы, достаточно вычислить изменение Rx при увеличении Usence на Uavcc/1024. Значение с наименьшим изменением принимается как самое точное.

hxESRMeter_devSmall

Измерение ёмкости

Измерение ёмкости основано на измерении частоты колебаний LC-контура. Для этого неизвестная ёмкость включается параллельно с известной индуктивностью L1 и ёмкостью C1.

hxESRMeter_c
Собственная частота колебательного контура вычисляется как:

F = 1/ (2 * pi * sqrt ( L * C ) )

Разброс параметров деталей может значительно менять частоту колебаний, поэтому прямое измерение частоты не может дать достоверных результатов.
Прибор калибрует параметры измерения, используя компоненты L1,C1,C4.

Для этого прибор измеряет частоту колебательных контуров L1C1 и L1(C1+C4): Цепочка D4D5C12 позволяет подключать конденсатор C4 к колебательному контуру, меняя потенциал на выводе C1EN микроконтроллера.

Повышенные требования к точности предъявляются только к калибровочному конденсатору C4.

Частота колебательного контура L1C1:

F1 = 1 / ( 2 * pi * sqrt( L1 * C1 ) )

Частота колебательного контура L1( C1 + C4 ):

F2 = 1 / ( 2 * pi * sqrt( L1 * ( C1 + C4 ) ) )

Частота колебательного контура L1( C1 + Cx )

F3 = 1 / ( 2 * pi * sqrt( L1 * ( C1 + Cx ) ) )

Из приведённых выше уравнений выводим значение Cx, зависящее только от C4:

Cx = C4 * ( F1 / F3 )^2 / ( F1 / F2 )^2

Калибровка прибора ( измерение F1 и F2 ) производится при переключении в режим измерения ёмкости, поэтому в этот момент к гнезду прибора ничего не должно быть подключено. Также можно повторно запустить калибровку с помощью кнопки установки нуля ( с пустым гнездом ). Калибровка прибора запоминается в EEPROM.

Значение ёмкости C1 не обязательно должно точно соответствовать значению, указанному в схеме. Вместо этого достаточно измерить C1 заведомо точным прибором и внести значение ёмкости в прошивку.

hxESRMeter_dev2Small

Измерение индуктивности

Измерение индуктивности основано на том же принципе, что и измерение ёмкости. Неизвестная индуктивность подключается последовательно с индуктивностью L1. 

Повышенные требования к точности предъявляются только к калибровочному конденсатору C4.

Частота колебательного контура L1C1:

F1 = 1 / ( 2 * pi * sqrt( L1 * C1 ) )

Частота колебательного контура ( L1C1+С4 ):

F2 = 1 / ( 2 * pi * sqrt( L1 * ( C1 + C4 ) ) )

Частота колебательного контура (L1+Lx)C1:

F2 = 1 / ( 2 * pi * sqrt(  ( L1 + Lx ) * C1 ) )

Выводим формулу вычисления Lx, зависящую только от C4:

  Lx = ( ( F1/F3 ) ^2 – 1 ) * ( ( F2/F3 ) ^2 – 1 ) * ( 1/C4 ) * ( 1 / ( 4 * pi^2 * F1^2 )  ) 

Из-за особенностей схемы, калибровка режиме измерения индуктивности невозможна – она должна осуществляться в режиме измерения ёмкости. Поэтому перед самым первым использованием прибора, или для получения более точных результатов, необходимо кратковременно переключиться в режим измерения ёмкости. В дальнейшем, калибровка сохраняется в EEPROM.

Измерение ESR

Измерение ESR основано на измерении падения напряжения на неизвестном элементе при синусоидальном сигнале 100кГц. На такой частоте реактивное сопротивление конденсатора близко к нулю и может быть проигнорировано. Величина падения напряжения отражает активное сопротивление элемента.

hxESRMeter_esr

Амплитуда подаваемого синусоидального сигнала не превышает 80мВ, что позволяет измерять ESR, не выпаивая конденсаторы из схемы. На таком напряжении кремниевые и германиевые переходы не открываются и не влияют на результат измерений. Однако следует иметь в виду, что низкое сопротивление не является фактом исправности конденсатора, так как измеряется общее сопротивление цепи, например – параллельно включенных конденсаторов. С другой стороны, высокое сопротивление скорее всего свидетельствует о неисправности.

hxESRMeter_dev3Small
Меандр 100кГц формируется микроконтроллером на выводе MOSI и проходит фильтр R28C24 R29C23 R30C25, который оставляет только синусоидальную гармонику 100кГц.

Эмиттерный повторитель Q1 формирует синусоидальный ток на цепочке R27 R14 TR1-1.

Параллельно обмотке TR1-1 включена цепочка R16C37Rx. Таким образом, сопротивление Rx влияет на ток, проходящий через первичную обмотку TR1.

Диоды D5, D7 и конденсатор C16 используются для защиты прибора при подключении к схеме с заряженными конденсаторами.

Резистор R37 нужен для того, чтобы исключить паразитное влияние колебательного контура, образованного конденсатором C16, обмоткой трансформатора и проводами щупов. Вводя дополнительное сопротивление, мы снижаем “добротность” контура и амплитуду резонанса.

Усиленное с помощью трансформатора напряжение выпрямляется цепочкой D8C17 и усиливается операционными усилителями U5:A b U5:B в 3 и 3*21 раз. Первое значение используется для измерения больших значений сопротивления ( > 3 Ом ), второе – малых.

В приборе применяется импульсный трансформатор WYEE-16C из дежурной части блока питания компьютера Codegen-300X, взятый без перемотки.

Измеряемое сопротивление нелинейно влияет на ток, проходящий через обмотку TR1. Также на измеренные напряжения на выходе сильно влияет трансформатор и разброс параметров деталей. Поэтому прибор калибруется по набору известных сопротивлений. Калибровка сохраняется в EEPROM.

Питание

Кратковременное нажатие на кнопку SW5 подаёт питание на прибор, после чего микроконтроллер поддерживает подачу питания с помощью герконового реле RL1. Прибор автоматически отключается после 5 минут неактивности, если к гнёздам ничего не подключено, или через 15 мин, если подключено.

Для принудительного выключения питания необходимо нажать и удерживать SW5, пока экран не погаснет.

Прибор измеряет напряжение батарей ( для индикации разряда ) через резистор RV3.

Плата и схема приведены для варианта с питанием от 9В батареи. В реальном приборе я решил использовать три AA аккумулятора. В этом случае вместо 78L05 ставится перемычка, а стабильное 5В питание подаётся с boost convertor, собранного на mc34063.

hxESRMeter_boost
Замыкающие контакты реле в этом случае должны стоять в цепи “+” с аккумуляторов.
Также необходимо подать “+” аккумуляторов после контактов реле на вывод 3 RV3

Настройка прибора

Для настройки прибора понадобится осциллограф и RS232-TLL кабель, а также набор калибровочных резисторов номиналами 0.1 Ом ( 3 шт), 0.2, 0.3, 0.6, 1.0, 2.2, 3.6,  4.7, 6.6 и 10 Ом.

Настройка измерения активного сопротивления

Настройка измерения активного сопротивления сводится к проверке наличия открывающих импульсов RCAl1-RCAL4.

К резисторам R21-R25 предъявляются повышенные требования по точности, но точное соответствие сопротивления значениям, указанным в схеме, не требуется. Вместо этого достаточно измерить имеющиеся резисторы заведомо точным прибором, и указать измеренные значения сопротивлений в прошивке.

hxESRMeter_dev4Small

Настройка измерения ёмкости

Необходимо убедиться, что на выходе микросхемы U1 есть меандр, частота которого зависит от подключенной ёмкости.

Настройка измерения индуктивности

Необходимо убедиться, что на выходе микросхемы U1 есть меандр, частота которого зависит от подключенной индуктивности. 

Настройка измерения ESR

Настройка режима ESR – наиболее сложная.

9. Подключаем кабель RS232-TTL к разъему J6.

1. Переключаем переключатель SW4 в положение “Включено”.
На ножке 19 U4 устанавливается “0”, прибор переходит в режим “ESR”. На терминале отображаются строки:

MODEESR: ….

 

2. Осциллографом проверяем наличие импульсов меандра 100кГц на ножке 17 U4 ( пачки по 0.5 сек с паузой в 1 сек).

U4_17

3. После прохождения через фильтр R28C24 R29C23 R30C25 импульсы превращаются в почти синусоиду.

R14

и подаются на базу транзистора Q1 через делитель R15R33, который должен быть подобран так, чтобы при подключении к щупам резистора 10 Ом нижняя точка синусоиды немного превышала напряжение открытия транзиcтора (~600мВ), а амплитуда сигнала на базе создавала на резисторе R14 колебания размахом ~80мВ.

Q1_BASE

4. Проверяем наличие синусоиды на второй обмотке трансформатора.

TR1_OUT

5. Проводим калибровку операционных усилителей.
Щупы ESR метра закорачиваем. Регулируем напряжение смещения U5:A резистором RV1. Добиваемся, чтобы при появлении импульсов синусоиды, напряжение на выходе 1 U5:A поднималось до ~300 мВ.

6. После этого проводим такую же регулировку усилителя U5:B резистором RV2, контролируя выход 7 осциллографом.

7. Подключаем щупы ESR метра к калибровочному резистору с сопротивлением 10 Ом ( это верхний предел измерений прибора ).
При появлении импульсов, напряжение на выходе 1 U5:A должно подниматься до уровня ~3.5В. Если напряжение превышает 3.7В, то необходимо подобрать коэффициент усиления, задаваемый сопротивлениями R20R13.

Резисторы R32R18R31 задают коэффициент усиления второго усилителя, который используется при измерении малых значений сопротивлений.

В оригинальной схеме используются коэффициенты усиления 3 и 21. Если они будут меняться – нужно поправить константу ESR2_MUL = 21/3 в прошивке.

8. Подключая разные известные сопротивления к щупам ESR метра, нужно убедиться, что меньшим значениям сопротивлений соответсвуют меньшие значения напряжений на выходе 1 U5:A, и наоборот ( зависимость нелинейная ).

8. Начинаем программную калибровку прибора.
Щупы ESR метра закорачиваем и нажимаем кнопку SB1 (удерживаем 1 сек). Прибор запоминает напряжения на линиях ESR1 и ESR2. Они отображаются в терминале как zero=… и должны быть в пределах 10-200, если уровни на выходах операционных усилителей были корректно настроены.

MODEESR: ESR1=67(zero:67)
ESR2=21(zero:20)
ESR=1
res*1000=0

 

9. Подключаем калибровочное сопротивление 0.05 Ом (два резистора 0.1 параллельно), в терминале посылаем символы “c”, “a”. Таким образом прибор запоминает калибровочные значения для сопротивления 0.1 Ом в EEPROM. В ответ выводится текст:

Done: xx

 

И распечатывается таблица калибровки. Это же повторяем для остальных калибровочных резисторов, соответственно нажимая “c”, “b”,  “c”,”d” и т.д. Номиналы калибровочных резисторов можно поменять в прошивке в таблице s_ESR_CAL_R.

По завершению по полученным значениям неплохо бы построить график, чтобы убедиться, что всё “похоже на правду”.

hxESRMeter_graph

 

Заливка прошивки

Заливка прошивки осуществляется через разъём J3 (нестандарный формат под мой программатор).  При программировании необходимо переключить прибор в любой режим, отличный от ESR, и удерживать кнопку включения питания всё время.

 

Повторение схемы и используемые детали

Я разрабатывал схему под себя, поэтому в ней используются детали, которые у меня были, или которые мне было проще достать. В частности, в приборе используется специфичный LCD индикатор с контроллером mpd7225, взятый из поломанного магнитофона Sony. Очевидно, что при повторении схемы его стоит заменить на любой другой 8-ми сегментный индикатор с интерфейсом SPI, и заменить процедуры общения с индикатором в прошивке( файлы LCD_D7225.h , LCD_D7225.c ). Также можно убрать цепочки R9-R12, D1-D3, U3, служащие для согласования уровней 5V-3.3V.

hxESMeter_pcb

 

Проект с печатной платой( Proteus ) + прошивка, (CVAVR ).

Update: использование контроллера HD74780

Поскольку использованный мной индикатор достать практически невозможно, я доделал схему под индикатор HD74780. 

Необходимо изготовить SPI адаптер для HD44780 по этой статье.

Схема используется без изменений.

Печатная плата может выглядеть так:
SPI_adapter_PCB

На переходник подаётся питание 5В с основной платы (например, с конденсатора С20). К пинам Data,Clock, E подключаются сигналы LCD_DATA, LCD_CLOCK, LCD_CS с основной платы соответственно (минусы диодов D1-D3). Диоды D1-D3 и резисторы R8-R12 на основной плате можно не впаивать.

spiadapter

Прошивка 1.2:
– поддержка HD44780 (убрать комментарий с #define USE_HD44780 в файле LCD_Impl.c)
– улучшен алгоритм измерения сопротивлений.

Исходники(Codevision AVR 2.05):
hxESRMeter1.2_src.zip

Бинарник, скомпилированный для таких компонентов:

=============================
//This file contains definitions for resistors/capacitors used in actual schematics
//Precise value for R22, Ohm * 10, f.e. 97.2 Ohm -> 972
#define RCAL1_VAL 1000 //100
//Precise value for R23, Ohm
#define RCAL2_VAL 10000 //10000
//Precise value for R24, Ohm
#define RCAL3_VAL 100000 //100000
//Precise value for R25, Ohm
#define RCAL4_VAL 1000000 //1000000
//Precise value for C4, Farades
#define CCAL 0.000000001 //0.000000001
//calibration resistors for ESR calibartion, Ohm
flash const float s_ESR_CAL_R[ ESR_CAL_COUNT ] = { 0, 0.05, 0.1, 0.2, 0.33, 0.6, 1.0, 2.2, 3.6, 4.7, 6.6, 10.0 }; 
==============================

hxESRMetter1.2.bin.zip

Схема и плата переходника в Proteus:

HD44780_SPI.zip

Фьюзы:

 Fuses