Найти в Дзене

Модернизация LCR-T7, замена LGT8F328 на Atmega328P

Приветствую всех читателей моего блога. В этой статье речь пойдёт о модернизации тестера радиодеталей LCR-T7 собранного на китайском микроконтроллере LGT8F328. Тут следует сказать, что само по себе название «T7» мало о чём говорит, так как под таким именем существуют тестеры с разной схемой питания, разными характеристиками и на разных микроконтроллерах. Первые модели, на сколько я знаю, выпускались на ATMEGA324, они могли проверять стабилитроны до 30В и лично я не знаю, чем они отличаются от LCR TC1? Судя по той информации, которую я смог найти в интернете – ничем. Мой тестер выполнен в том-же корпусе, но собран на китайском контроллере LGT8F328, а стабилитроны может проверять только до 25В. Это связано с изменением схемы питания, в прошлом варианте был один DC-DC контроллер и один двухобмоточный дроссель, который выдавал 7 и 35В. В моём варианте, а также в TC2, T7H установлено два DC-DC контроллера, соответственно два однообмоточных дросселя по 10 мкГн, первый преобразователь выдаёт 7,5В для питания логики - это напряжение поступает на линейный стабилизатор 78L05 и понижается до 5В, а второй выдаёт 28В для проверки стабилитронов, большее напряжение сделать без второй обмотки дросселя нельзя. Такие изменения в схеме связаны с желанием понизить ток потребления и действительно, с первой схемой он достигает 300 мА, а со второй - 90 мА. Разница существенная.

-2

На фотографии плата моего тестера, именно о нём пойдёт речь дальше. Впрочем, если у кого-то плата другая, но микроконтроллер в корпусе TQFP32 – можно сравнить её схему с моей, возможно информация будет актуальна и для вашей платы. Маркировка на процессоре затёрта, о том, что это именно LGT8, мне сообщил продавец, позже срисовав схему я ещё раз убедился в этом по распиновке.

-3

Прежде чем говорить о самой модернизации – следует определиться с её необходимостью. И так, сам по себе контроллер LGT8F328 работает вполне нормально, поэтому если тестер полностью соответствует требования конкретного пользователя – ставить в него Atmega328 нет никакого смысла. Устройство достаточно точно измеряет ёмкость конденсаторов, показывает их утечку напряжения и ESR.

-4

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

К результатам проверки стабилитронов тоже претензий нет, а вот при измерении индуктивности уже возникают нюансы. Если прибор использовать для приблизительной оценки дросселей, или сортировки компонентов без маркировки – сойдёт и в оригинальном исполнении, но когда я мотал импульсный трансформатор для блока питания – столкнулся с неприятным моментом. Программа посчитала мне, что если на сердечнике EI40/28/12 намотать 31 виток – должна получиться индуктивность 4,409 мГн. Идеально ровно сложить части сердечника и сжать их так, чтобы индуктивность получилась максимально-возможная – достаточно трудно, поэтому если-бы измеренное значение оказалось меньше расчётного – вопросов не возникло-бы, но LCR-T7 с китайской прошивкой выдал мне значение 6,88 мГн(!), а это аж на 56% больше. Тогда я взял другой тестер радиодеталей, собранный по такой-же схеме, но с прошивкой от Karl-Heinz Kübbeler, измерил индуктивность им и получил 5,6 мГн. Это ближе к расчётному значению, но всё равно на 27% больше. В инструкции к прошивке Карла написано, что если параллельно дросселю подключить конденсатор 4 – 30 пФ, который был использован при калибровке, индуктивность будет определяться по резонансной частоте и результат будет значительно точнее. Хотя этот метод предусмотрен для катушек с индуктивностью до 2 мГн – я всё-же решил попробовать им проверить первичную обмотку своего трансформатора и получил значение 4,28 мГн – это уже похоже на правду. Результат всего на 3% отличается от расчётного, но главное – в меньшую сторону.

-5

Чтобы убедиться, что тестер с прошивкой Карла показывает близкий к реальности результат, было решено собрать LC контур самому, измерить резонансную частоту при помощи осциллографа и рассчитать индуктивность самостоятельно. Если при измерении тестером был использован конденсатор 10 нФ с допуском 2,5%, то при измерении осциллографом я взял конденсатор на 100 нФ с допуском 5%. Такое решение было принято чтобы убедиться, что на разной резонансной частоте индуктивность будет примерно одинаковой, так как если она будет значительно отличаться – сам метод не годиться. В таком случае проверять трансформатор нужно только на той частоте, на которой он будет работать.

-6

Был собран LC контур, на него подана частота 10 Гц с генератора, который есть в прошивке Карла к транзистор-тестеру и подключен осциллограф. Частота генератора не принципиальна, суть метода в том, что на контур необходимо подать напряжение, а потом отключить его и в момент отключения возникнут затухающие колебания, их частота и будет равняться резонансной. Цена деления по горизонтали на осциллографе 100 мкс, период первой гармоники примерно 1,4 клетки, то есть примерно 140 мкс. Чтобы определить его более точно – я остановил осциллограмму и увеличил её.

-7

При развёртке 20 мкс/дел длина периода 6 целых клеток и 3/5, то есть 132 мкс, а значит частота будет f=1/132*10^-6=7575,75 Гц. Далее из формулы f=1/(2π√LC) выводим L=(1/(2πf√C))^2, подставляем частоту в Герцах, ёмкость в Фарадах и получаем индуктивность в Генри, умножаем на 10^3 и получаем 4,418 мГн. Это значение отличается от расчётного в большую сторону, но всего на 0,2%, а от измеренного транзистор-тестером с использованием резонансного метода – на 3% в меньшую сторону. Этот случай показал, что доверять показаниям LCR-T7 при измерении индуктивности не стоит, а вот транзистор-тестеру с прошивкой от Karl-Heinz Kübbeler, если использовать резонансный метод, вполне можно. К сожалению, в китайской прошивке нет возможности измерить индуктивность резонансным методом, а чтобы собрать прошивку от Карла под LGT8 – нужно изучить особенности этого контроллера и портировать код под него – это займет очень много времени. Гораздо проще заменить контроллер на Atmega328 c последующей заливкой в него нужной прошивки. Именно этот случай меня сподвиг на такую модернизацию, но есть и другая ситуация, когда приходится ставить Atmega328. Не смотря на сборку защитных диодов (D2) и супрессор (D1), если к контактам тестера подключить неразряженный конденсатор – вход контроллера выгорает. Купить новый LGT8F328 можно на AliExpress, а вот найти под него оригинальную китайскую прошивку – это проблема, поэтому обычно, при замене процессора, ставят сразу Atmega328.

-8

Если мы сравним распиновку LGT8F328 и Atmega328P – увидим, что она во многом совпадает, но у Atmega больше контактов подключено к питанию, а также есть AVCC для отдельного питания аналоговой части. К счастью у LGT8 эти контакты не задействованы для измерений в схеме тестера, поэтому можно выпаять родной контроллер и впаять на его место Atmega без лишней работы скальпелем.

-9

Красным цветом на схеме показано, что необходимо изменить на плате после установки нового контроллера. Ставим перемычку между третьим и пятым выводами, я для этого использовал smd резистор с нулевым сопротивлением типоразмера 0805, припаял её прямо к выводам процессора.

-10

Резистор R23 снимаем и на его место тоже ставим перемычку, или резистор с нулевым сопротивлением. Далее ставим перемычки между 1-м и 5-м, а также 2-м и 4-м контактами разъёма для программирования и таким образом заканчиваем подключения питания.

-11

Ну и чтобы завершить – скальпелем немного поработать всё-таки пришлось, им я счистил защитную маску на дорожке, которая идёт от 18-го вывода и на части земляного полигона, чтобы установить конденсатор 100 нФ непосредственно у входа AVCC и таким образом минимизировать помехи, которые могут попадать на питание аналоговой части контроллера. К этому-же земляному полигону припаял конденсатор 1 нФ и перемычкой из медного провода диаметром 0,2 мм соединил его с выводом AREF. На фотографии выше этот конденсатор больший, он типоразмера 1206, а тот, который подключен к выводу AVCC – типоразмера 0603.

После этого необходимо прошить микроконтроллер, на схеме ниже толстыми красными линиями показано, как подключать программатор USBASP к плате, питание и линию RESET я подпаял к родному разъёму для программирования, а MOSI, MISO и SCK к резисторам R4, R5 и R6 соответственно. Инструкцию по прошивке можно найти по ссылке, там правда речь о LCR-T4, но разницы никакой нет, тут всё так само. Файлы LCR_T7.hex и LCR_T7.eep в архиве к статье.

-12
-13
-14

На этом этапе модернизацию «железа» можно было закончить, но я захотел ещё заменить разъём для зарядки аккумулятора. MicroUSB – это не только устаревший формат, но по моему мнению ещё и самый неудачный, ни одно другое USB гнездо не разбивается так быстро, как microUSB, при чём это происходит даже при предельно аккуратном его использовании, поэтому я установил на плату USB Type C. Специально для использования в качестве зарядки были куплены такие гнёзда с шестью выводами. Два крайних (1,6) – это земля, 2 и 5 – это +5В, два средних не используются. Для установки этого разъёма пришлось немножко повозиться, так как не только его крепёж не совпадает с площадкой на плате, но также выводы 2 и 5 замыкают +5В и GND. Вопрос крепления был решён просто, на разъёме ножки были согнуты на 90°, а на плате с четырёх сторон счищена маска и само гнездо установлено поверхностным монтажом. Чтобы не допустить замыкания питания – контакт GND был закрашен защитной маской, которая затвердевает под воздействием ультрафиолета, а контакты GND гнезда припаяны прямо к земляному полигону с одной стороны и к земляной дорожке с другой.

-15
-16

Контакт 2 (+5В) разъёма припаян на родную площадку на плате, а контакт 5 соединён с ним при помощи перемычки из медного провода диаметром 0,2мм. Поверх перемычки тоже была нанесена маска, она не только защитит от коррозии, но и надёжно зафиксирует её на плате.

-17

После прошивки была проведена калибровка тестера. Если в заводском варианте для неё достаточно закоротить 3 входа, потом извлечь перемычку, а дальше калибровка проходит в автоматическом режиме, то с этой прошивкой тестер просит вначале закоротить входы, потом извлечь перемычку, потом установить конденсатор >100нФ (макс. 20 мкФ, согласно инструкции), а затем необходимо установить конденсатор с ёмкостью от 4 до 30 нФ, который в дальнейшем будет использоваться для измерения индуктивности резонансным методом, тестер запомнит его ёмкость и только на этом калибровка закончится. Результаты измерения некоторых конденсаторов на фото ниже.

-18

Тут скажу, что добиться такой точности получилось не сразу, пришлось поиграться с параметрами REF_C_KORR при конфигурации прошивки. Из меню тестера, к сожалению, настроить этот параметр невозможно, поэтому если кто-то загрузит мою прошивку – не факт, что точность будет такая-же, но и сильно отличаться тоже не должна. Для настройки максимально возможной точности необходимо самому сконфигурировать прошивку под своё железо и скомпилировать её из исходного кода, но это тема для отдельной статьи. В архиве есть исходники и подробная инструкция по настройке прошивки, поэтому кто сильно захочет – разберётся, самое сложное – это установить WinAVR на Windows 10 так, чтобы всё работало, но информация на эту тему есть в интернете. Следующая фотография – результат измерения индуктивности обычным и резонансным методом. Допуск у всех дросселей 10%, согласно заявленным характеристикам.

-19

Кроме выше описанного – прошивка имеет ещё несколько дополнительных функций, которые возможно для кого-то будут полезными, первая из них – это генератор прямоугольных импульсов с частотой от 1 Гц до 2 МГц, правда здесь стоит оговориться, что прямоугольник она выдаёт до частоты 10 кГц, дальше постепенное искажение сигнала с ростом частоты и на 2 МГц – он уже больше похож на треугольник.

-20
-21
-22
-23
-24

Также есть генератор ШИМ сигнала, который работает на фиксированной частоте 15,6 кГц, а коэффициент заполнения изменяется от 0 до 100% с шагом в 1%.

-25
-26
-27

Есть и недостаток, но он компенсирован достоинством. При тестировании ИК пультов китайская прошивка даёт больше информации о сигнале, но она распознаёт только протокол NEC, при нажатии на клавишу пульта с другим протоколом на экране тестера только мигает красный кружок в правом верхнем углу, никакой информации о коде кнопки не отображается. В прошивке Карла вообще нет функции проверки ИК пультов и честно говоря – я его понимаю, мне эта функция тоже ни к чему, но кому-то возможно нужна, да и в железе есть ИК приёмник, поэтому хочется, чтобы он работал, вдруг пригодится. Так как тратить время на самостоятельное изучение протокола NEC желания не было, да и код за полчаса не напишешь, чтобы он корректно работал и выполнял функции чтения сигнала, декодирования и вывода данных на дисплей – я пошел путём наименьшего сопротивления. Функция проверки ИК пультов есть в прошивке от Markus Reschke, его исходный код тоже открытый, поэтому я скопировал часть кода, который отвечает за эту функцию, и вставил его в код Карла, в итоге функция ИК-приёмника работает.

-28

На фотографии выше видно, что родная прошивка отображает User Code и Data Code в 16-битном формате, а прошивка Маркуса – в 8-битном, следовательно младшие байты кода теряются. Возможно для тех, кто работает с ИК пультами – это важно, но для меня – нет, прошивки Маркуса с головой хватит, чтобы увидеть, что нажимается не одна и та-же кнопка, а разные. В начале абзаца я написал, что недостаток компенсирован достоинством, так вот прошивка Маркуса выдаёт меньше информации о коде кнопки на пульте с протоколом NEC, но зато она распознаёт ещё целый список протоколов, а именно: Proton, JVC, Matsushita, Kaseikyo, Motorola, Samsung, SIRC, Sharp и Philips.

-29
-30
-31

Первая фотография – пульт для Arduino, протокол NEC, вторая – пульт от старой видеокамеры Sony, протокол SIRC. Третья – пульт от какого-то кондиционера, тестер распознаёт протокол, как Samsung, но команду не понимает. Вероятно там какой-то свой протокол, который только по идентификатору похож на Samsung, а команды свои. Пультов для проверки других протоколов у меня нет. Всё это занимает память процессора, поэтому при итоговой сборке прошивки пришлось отключить отображение на дисплее инструкции по калибровке. Если прибор не откалиброван – отображается только одна строка, сообщающая об этом. Также я отключил распознавание протокола Matsushita, в итоге освободилось место для добавления некоторых новых функций, о которых речь пойдёт ниже.

-32

Первая из них – это проверка стабилитронов. В прошивках китайцев и Маркуса она есть, а у Карла – нет. Проверить стабилитрон можно, но крайне неудобно, необходимо через меню заходить в функцию «вольтметр», или в течении секунды после включения тестера ещё раз нажать кнопку «тест» и пока её удерживаешь – на экране будет отображаться напряжение стабилитрона, поэтому я дописал небольшой код и теперь модифицированная прошивка Карла умеет распознавать стабилитроны в автоматическом режиме, точно так-же, как прошивки китайцев и Маркуса. Ещё одна новая функция – это проверка оптронов. Лично мне не редко приходится их проверять, на работе для этого я использую ЛБП и мультиметр, дома – тестер светодиодов, стабилитронов и оптопар, о котором писал в статье и снимал видео. Но чем больше тестеров на столе – тем меньше на нём места для работы, поэтому удобно, когда в одном приборе много функций. В связи с этим и было принято решение написать код позволяющий проверять оптроны транзистор-тестером, в железе которого предусмотрена проверка стабилитронов.

-33

Теперь тестер умеет автоматически распознавать оптроны типа PC817, для развязки постоянного тока, а также типа MOC30XX, для развязки низковольтного постоянного с высоковольтным переменным током. Условием для правильного определения оптопары является установка её ключом (1-й вывод) в контактную площадку «К» (Катод стабилитрона). Для оптронов типа MOC30XX тестер показывает Vtm – падение напряжения на контактах 4 и 6 (1 и 3 на тестере); Itm – сила тока протекающего через эти контакты; Vdf – падение напряжения на управляющем диоде; Idf – ток протекающий через светодиод, точное его определение невозможно из-за отсутствия необходимой схемы в железе, поэтому значение ориентировочное и всегда 3мА. Рассчитывалось оно исходя из того, что на контакты тестера “K” и “A” подаётся 30В через резистор 10кОм, среднее падение напряжения на диодах оптронов – 1,2В, в таком случае на резисторе падает 28,8В, следовательно ток 2,88 мА. После округления получилось 3, но в тестере собранном по данной схеме на контакты “K” и “A” подаётся 25В, значит реальный ток 2,38 мА. Программу можно написать так, чтобы исходя из порогового напряжения стабилитронов она рассчитывала ток протекающий через диод оптрона более точно, но не вижу в этом необходимости, так как в реальных условиях ток светодиода будет совсем другой.

Для оптронов типа PC817 тестер показывает Vces (Vce(sat)) – падение напряжения на переходе эмиттер-коллектор при токе Ice. Это значение всегда будет отличаться от того, которое в даташите, потому что ток (Ice) тоже не соответствует тому, который указан в документации. Значения ориентировочные, больше для сравнения оптронов между собой, чем для каких-то реальных расчётов. Vdf и Idf соответственно падение напряжения на управляющем диоде и ток, который через него протекает. Относительно последнего актуально всё то самое, что написано выше при описании параметров MOC30XX.

Исходный код, инструкция к сборке из него настроенной под себя прошивки, файлы самой прошивки и схем есть в архиве. Скачивайте, пользуйтесь. Настройка прошивки написанной Карлом хорошо описана в инструкции. Для той части кода, которую добавил я, такого описания пока нет, но все функции включаются и отключаются в Makefile точно так-же, как функции Карла. Вроде там всё интуитивно понятно для тех, кто прочёл инструкцию, но если возникнут вопросы – задавайте в комментариях, а лучше пишите мне в Телеграм, так быстрее отвечу, так как комментарии просматриваю не каждый день. Спасибо за внимание.