Реанимация тестера Маркуса
Положил дед Мороз под новогоднюю елочку мне тестер радиоэлектронных компонентов в виде китайского клона широко известного в узких кругах тестера Маркуса.
Здесь должна была быть картинка включенного тестера с радостно светящимся всеми цветами радуги экранчиком, но руки из одного места воткнули в него заряженный конденсатор, тестер радостно самовключился, сказал «ой!» и работать отказался.
Жалко, блин. Попробуем отремонтировать.
1. Идем на Яндекс-диск со схемами и прошивками на все известные сообществу клоны. К счастью, клон «ТС-1» там уже есть.
2. Изучаем схему и плату тестера, экспериментально выясняем, что имеется короткое замыкание (КЗ) по шине +5В.
Если тестер самовключился при подключении конденсатора, значит питание подалось на шину либо через встроенные обратные диоды на входах микроконтроллера, либо через защитную сборку DZ2.
Отпаиваем DZ2, сборка жива, КЗ на месте. Значит случилось самое ужасное, сгорел микроконтроллер.
3. Заказываем микроконтроллер Atmega644, корпус TQFP-44, 2 штуки, на случай, если что-нибудь пойдет не по плану.
4. Пока Атмега едет из Китая, готовим инструменты и ищем программатор.
4.1. Паяльная станция, набор жал для паяльника, «третья рука» с лупой, тонкий-тонкий пинцет, хороший флюс (китайский, но жидкий, что лучше канифоли), чуть-чуть припоя.
Программаторы (спасибо Int_13h за безвозмездно отданную целую коробку всяких разных):
4.2. USBasp без корпуса для Atmega, с адаптером 10 pin to 6 pin ISP.
4.3. USB ISP в корпусе для Atmega (никогда не угадаешь, какой пригодится).
4.4. Преобразователь USB/UART 5V от какого-то мобильника для перепрошивки контроллера питания U4 (STC15L104W).
Т.к. контроллер любит 3.3В, на монтажке собираем стабилизатор 5->3.3В на базе LM1117:
Оказывается, стабилизатор без нагрузки не работает. Вешаем на выход резистор, например 2.2 кОм. Устанавливаем на выходе точно 3.3 В с помощью вольтметра и потенциометра.
5. Дождались, наконец, конверта с микроконтроллерами.
6. Демонтируем феном сгоревший микроконтроллер, чистим контактные площадки, смазываем флюсом, припаиваем новый. Тонким жалом, каждую ножку. Но сначала по углам. Говорят, можно и феном, но нет паяльной пасты.
Для первого раза даже красивенько.
Заодно впаиваем разъем для внутрисхемного программирования. Убеждаемся в правильности разводки под адаптер 10to6, перепаиваем разъем на другую сторону платы.
И конечно предусмотрим разъем для аккумулятора. Итог:
7. Готовимся прошить контроллер питания U4. Припаиваем конвертер USB-UART со стабилизатором к плате:
3.3В к 3.3В, Gnd к Gnd, Tx к Р1, Rx к Р2.
9. Подключаем конвертер, ждем, что он обнаружится системой, запускаем софт, выбираем com-порт, выбираем прошивку из архива (п.1), задаем частоту 12 Мгц, подаем питание, процессор запускается, в режим загрузки не переходит, программатором не обнаруживается.
9.1. Экспериментируем с очередностью подачи питания на процессор и нажатием кнопок «Check MCU» & «Download/Program».
9.2. Изучаем даташит на U4, обнаруживаем, что кнопка Test тестера подключена к выводу Reset. Жмем «Check MCU», жмем кнопку Test, микроконтроллер резетится и обнаруживается. Таким же образом запускаем прошивку, и, наконец, прошиваем U4.
10. Изучаем обилие софта для прошивки Atmega.
10.1. Инсталлируем мощную и удобную Atmel Studio 6.2, обнаруживаем, что она не поддерживает программаторы USBasp и USB ISP. Сносим.
10.2. Ищем Avrdude и графическую оболочку к нему. Из всего обилия останавливаемся на интуитивно понятном Avrdude_prog 3.3, который понимает USBasp, понимает прошивки *.hex и *.eep, умеет наглядно показывать выбранные фьюзы. Подключаем, запускаем:
Облом-с, программатор имеет слишком старую прошивку.
10.3. Вот тут и пригодится USB ISP, софт которого не такой дружелюбный, но на прошивку программатора он способен. А может и тестер прошьет? Увы:
10.4. Ищем свежую прошивку на USBasp, соединяем USB ISP и USBasp шлейфом, замыкаем на USBasp джампер J1, вводя его в режим программирования. Заливаем прошивку. Успех!
10.5. Окрыленные успехом, пытаемся прошить и USB ISP в USBasp. Впаиваем по методике перемычку на плату, сначала бэкапим прошивку и фьюзы.
Выпаиваем перемычку. Подключаем бывший USB ISP и компьютеру и не обнаруживаем его софтом. Может с фьюзами путаница? Потом разберемся. Прости! Но ты выполнил свою цель и можешь пока упокоиться с миром.
10.7. Goto 10.2. Но теперь наш программатор уже шьет Atmega успешно.
11. Волнуемся насчет успеха проведенной операции.
12. Запуск тестера. Бинго!
Измерения идут, но не обошлось и без недостатков — тестер практически мгновенно отключается после процесса измерения, можно и не успеть снять показания.
В следующей серии: попытки сделать свою прошивку для тестера для устранения эффекта мгновенного отключения. Прошивка будет базироваться на исходниках Маркуса. А также, как я пыталась, но не смогла полюбить AVR.
Источник
Ремонт транзистор тестера или esr метра
Войти
Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal
Ремонт транзистор-тестера или ESR метра
Вот и постигла меня печальная участь.
Спалил свой транзистор-тестер, он же ESR метр.
Палится очень просто — не разряженным конденсатором, т.к. входы тестера напрямую приходят в микроконтроллер.
Выглядит мой экземпляр вот так:
На плате обозначение: WEI_M8_NLG_TST_V1.10
Штука это незаменимая в работе.
Последнее время я совсем обленился и стал ей всецело доверять проверку элементов при разного рода ремонтах.
Например: надо проверить полевичок, подцепляем, если тестер показывает картинку — значит целый.
Померить ESR конденсатора — запросто.
А тут такая беда — сгорел. Надо чинить.
Тестер построен на микроконтроллере ATMega328p, точно на таком же как Arduino nano/mini.
Ну вы поняли мысль? 🙂
У меня как раз завалялась одна китайская Arduino pro-mini, которая быстренько этого контроллера лишилась.
Осталась одна платка:
Запаиваем в наш тестер, предварительно сняв экран:
Остаётся всего-то залить прошивку и можно пользоваться.
И вот тут я подзастрял надолго.
И так, структурирую свой тернистый путь долгих поисков и освоения магии прошивки этого чуда прибора.
Суть сводится к следующим действиям:
1. Скомпилировать прошивку, с нужными опциями под свою версию платы тестера.
2. Прошить ATMega328p
3. Profit!
Из статьи товарища elchupanibrei узнаём, что существует и здравствует форк проекта некого Маркуса, с нужными нам исходниками для сборки прошивки.
На портале vrtp.ru находится заметка юзера indman с подробным описанием процесса компиляции прошивки.
Приведу её здесь:
1. Скачать с сайта автора по ссылке https://www.mikrocontroller.net/svnbrowser/transistortester/Software/trunk/ текущий дистрибутив прошивок.
Для этого кликнуть внизу страницы на строчку «Download GNU tarball».
2. Распаковать скачанный дистрибутив «transistortester-trunk.tar.gz» в каталог, например С:\Trunk (кирилицу в обозначении имени каталога не использовать).
3. Из каталога C:\Trunk\default удалить всё,кроме каталога «dep«.
4. Скопировать в каталог C:\Trunk\default соответствующий процессору файл «makefile«.
Вот тут нужна ремарочка.
В моей плате, которая WEI_M8_NLG_TST_V1.10, используется дисплей st7565, в дистрибутиве прошивок есть каталог mega328_wei_st7565 — это как раз наш вариант.
Файлик «makefile» можно взять прямо оттуда. Ну или из каталога mega328, но тогда придётся проверять и править больше опций.
Дисплейчик st7565 (разрешением 128×64):
Дальше нужно пробежаться по большому списку опций, проверить, что всё выставлено верно.
Перечень опций можно найти в инструкции Версия 1.12k в разделе Конфигурирование Тестера (стр. 50).
В файле «makefile«, который мы взяли в каталоге mega328_wei_st7565 я поменял только 3 опции:
UI_LANGUAGE = LANG_RUSSIAN
CFLAGS += -DLCD_CYRILLIC
CFLAGS += -DNO_LONG_PINLAYOUT
Захотелось что-то меню на русском, а остальное стояло, на мой взгляд верно 🙂
В принципе можно поиграть со шрифтами, например вместо
CFLAGS += -DFONT_8X12thin
поставить помельче
CFLAGS += -DFONT_8X16thin
но меня вполне устраивает и первый вариант.
5. Запустить редактор WinAVR (C:\WinAVR-20100110\pn\pn.exe)
6. Открыть Makefile.
7. Скомпилировать Makefile, для этого выполнить команды меню: Tools-Make All.
8. Если компиляция завершилась удачно — получаем код выхода равный 0 (Process Exit Code:0) .
Скомпилированные файлы прошивки «TransistorTester.eep» и «TransistorTester.hex» будут находиться в том же каталоге C:\Trunk\default.
Для корректной компиляции в среде Win10 необходимо заменить одну библиотеку по адресу: %каталог с установленным WinAVR%\utils\bin\msys-1.0.dll
Библиотека прилагается в архиве в конце этой статьи.
Скомпилировали, получили два файлика: «TransistorTester.eep» и «TransistorTester.hex«.
Теперь нужно как-то прошить нашу ATMega328p.
У кого под рукой есть программаторы типа: TL866, USBasp или даже китай типа:
дальше будет не интересно.
Но у меня ничего подобного не водится, зато водится FTDI FT232RL, который прекрасно справится с ролью прошивки нашего контроллера:
И тут опять мне помогла статья про программатор из FT232R elchupanibrei .
Я до этого и не знал, что им можно прошивать AVR микроконтроллеры.
Прошивается режиме BitBang, через програмку AVRDUDE.
Проблема в том, что официальные версии AVRDUDE не поддерживают BitBang и предлагают самим пользователям, скомпилировать программу, установив необходимые для этого библиотеки.
Но, на radiokot.ru я нашёл статейку, где добрые люди за меня уже скомпилировали и выложили нужную версию AVRDUDE.
Правда без непоняток, и в этот раз необошлось.
В конфиге avrdude.conf, в секции которая нас интерсует, записаны номера пинов miso=1, sck=0, mosi=2, reset=4
programmer
id = «ft232r»;
desc = «FT232R Synchronous BitBang»;
type = «ftdi_syncbb»;
connection_type = usb;
miso = 1; # RxD
sck = 0; # TxD
mosi = 2; # RTS
reset = 4; # DTR
;
В другом конфиге, который я нашёл на каком-то форуме, были другие цифры:
programmer
id = «ft232r»;
desc = «FT232R Synchronous BitBang»;
type = «ftdi_syncbb»;
connection_type = usb;
miso = 3; # CTS X3(1)
sck = 5; # DSR X3(2)
mosi = 6; # DCD X3(3)
reset = 7; # RI X3(4)
;
Долго не мог понять откуда эти цифры, которые совсем не соответствуют реальной распиновке FT232RL:
А разгадка такая:
Распиновочка из таблички 2.1 официальной PDF-ки FTDI:
Тут я уже отметил пины, которые использовал, красным цветом.
Оказывается, в FT232RL можно переназначать выводы произвольным образом, что как раз и указывается в конфиге avrdude.conf.
В моей платке имеются выводы CTS, TX, RX и DTR (их отметил красным в столбце Pin Number, который соответствует реальной-физический распиновке FT232RL).
Вот на них и будем назначать выводы для программирования нашего контроллера (я назначил выводы, как в столбце Signal, но их можно перетасовать как угодно).
Исходя из таблички, мой конфиг будет выглядеть следующим образом:
programmer
id = «ft232r»;
desc = «FT232R Synchronous BitBang»;
type = «ftdi_syncbb»;
connection_type = usb;
miso = 1; # RxD
sck = 0; # TxD
mosi = 3; # CTS
reset = 4; # DTR
;
Так, с FT232RL разобрались, теперь надо понять, куда подключаться на нашей плате.
Ну тут уже проще.
Впаял разъёмчик на 6 пинов начиная с самого правого:
Подключаем к этим пинам наш адаптер FT232RL и запускаем AVRDUDE.
Кстати, рекомендую использовать GUI AVRDUDESS, лично мне так гораздо нагляднее и удобнее работать:
Тут я уже выставил все необходимые настроечки и фьюзы — fuses.
Пару слов о fuses.
Есть хорошая статья про них на сайте easyelectronics.ru (сайт всячески рекомендую к просмотру, там много чего интересного имеется).
Рекомендую также пользоваться калькулятором фьюзов для AVR.
Конкретно для моей платы WEI_M8_NLG_TST_V1.10 фьюзы расчитаны так:
Extended Fuse установлены как 0xFF не просто так.
Обычно там ставится 0xFC, но на стр. 27 инструкции Версия 1.12k есть информация о том, что может происходить сброс процессора из-за короткого провала напряжения «Brown Out»,
и, чтобы убрать обнаружение этих провалов, нужно сделать небольшую доработку платы или поставить Extended Fuse на 0xFF
Всё, фьюзы поставили, можно прошивать.
После прошивки, тестер попросит сделать калибровочку, после чего можно пользоваться:
Архив с готовыми прошивками и софтом — тут.
Источник