Транзистор-тестер, купленный в виде дешёвого китайского клона, нередко приходит с устаревшей или урезанной прошивкой: нет измерения ESR конденсаторов, некорректно определяются полевые транзисторы, а меню выглядит обрезанным. Причина почти всегда одна — продавец заливает в микроконтроллер ATmega328 первую попавшуюся версию прошивки, не заботясь о совместимости с конкретной платой. Обновление прошивки решает большинство таких проблем и открывает полный функционал прибора.
Проект известен как Transistor Tester Маркуса Фрейека (Markus Frejek), позже развитый Карлом-Хайнцом Кюббелером (Karl-Heinz Kübbeler). Обе ветки до сих пор встречаются в продаже и на форумах, и выбор между ними — первый вопрос, который нужно решить перед прошивкой.
Какие прошивки существуют и чем отличаются
Исходная версия Маркуса заложила основу: автоматическое определение типа компонента, выводов и основных параметров. Ветка Karl-Heinz (k-firmware) развила проект дальше — добавила поддержку графических дисплеев, измерение кварцев, расширенную калибровку и более точные алгоритмы измерения. Сегодня именно ветка k-firmware считается основной для самостоятельной сборки и обновления.
Существует также ветка m-firmware, ориентированная на монохромные дисплеи и компактные платы. Какая прошивка подойдёт вам, зависит от аппаратной ревизии тестера: типа дисплея, наличия кварцевого резонатора и схемы подключения кнопки.
- 🔧 k-firmware — универсальная, активно развивалась, поддерживает цветные и графические экраны
- 📦 m-firmware — облегчённая, для простых плат с символьными дисплеями
- 🧩 Заводские китайские сборки — часто смешанные, с неизвестной конфигурацией
Перед прошивкой определите аппаратную ревизию платы: тип дисплея, наличие кварца 8 МГц и расположение test-падов. От этого зависит выбор конфигурации Makefile.
Определение аппаратной версии тестера
Откройте корпус и осмотрите плату. Ключевые признаки: наличие кварцевого резонатора рядом с ATmega328 (обычно 8 МГц), тип дисплея (символьный 1602, графический ST7565, цветной ST7735 или ILI9341), маркировка платы (например, AY-AT, GM328, LCR-T4). Сфотографируйте обе стороны платы — это поможет при выборе конфигурации и при поиске распиновки программатора.
Также проверьте, есть ли на плате разъём ISP (ICSP) — шестиконтактная гребёнка или контактные площадки с сигналами MOSI, MISO, SCK, RESET, VCC, GND. Если разъёма нет, прошивать придётся через test-пады, подпаивая провода или используя прищепку.
Что понадобится для прошивки
Для обновления микропрограммы потребуется ISP-программатор. Подойдёт классический USBasp, USBtinyISP или даже плата Arduino, прошитая скетчем ArduinoISP. Понадобится также компьютер с установленной утилитой avrdude и драйверами для программатора.
☑️ Подготовка к прошивке
Обязательный первый шаг — сохранение текущей прошивки и фьюзов. Это ваша страховка: если новая версия окажется несовместимой, всегда можно вернуться к рабочему состоянию. Дамп считывается той же avrdude буквально одной командой.
avrdude -c usbasp -p m328p -U flash:r:backup.hex:i -U eeprom:r:backup_eeprom.hex:i
⚠️ Внимание: перед любой записью в микроконтроллер считайте и сохраните текущие значения фьюзов (lfuse,hfuse,efuse). Неверный фьюзlfuseможет перевести тактирование на внешний генератор, и чип перестанет отвечать программатору — восстановление потребует подачи внешнего тактового сигнала.
Пошаговый процесс прошивки
Последовательность действий стандартна для всех устройств на AVR. Сначала подключите программатор к ISP-разъёму тестера, соблюдая распиновку — перепутанные MOSI и MISO дадут ошибку инициализации. Затем проверьте связь с чипом командой чтения сигнатуры.
avrdude -c usbasp -p m328p
Если сигнатура читается корректно, можно записывать новую прошивку. Файлы .hex и .eep берутся из скомпилированного релиза или собираются из исходников с нужной конфигурацией под вашу плату.
avrdude -c usbasp -p m328p -U flash:w:TransistorTester.hex:i -U eeprom:w:TransistorTester.eep:i
Фьюзы выставляются согласно документации выбранной прошивки: для платы с внешним кварцем и без него значения различаются. Точные значения фьюзов берите из Makefile или документации конкретной версии прошивки — универсальной комбинации не существует.
После прошивки сразу выполните самокалибровку тестера (пункт Selftest/Calibration в меню) с перемкнутыми тремя щупами, а затем с разомкнутыми — без калибровки показания будут неточными.
Типичные ошибки и их решение
| Симптом | Вероятная причина | Решение |
|---|---|---|
| avrdude не видит чип | Неверная распиновка ISP, нет питания | Проверить подключение, подать питание на тестер |
| Белый/пустой экран после прошивки | Прошивка собрана под другой дисплей | Пересобрать с правильной опцией дисплея |
| Крякозябры на экране | Неверный фьюз тактирования | Восстановить lfuse по документации |
| Тестер не включается | Стерты или неверные фьюзы | Прошить фьюзы заново, при необходимости с внешним тактом |
| Неточные измерения | Не выполнена калибровка | Провести Selftest согласно меню |
⚠️ Внимание: не прошивайте тестер от встроенной батареи 9 В, если она почти разряжена. Просадка напряжения во время записи flash-памяти способна прервать процесс и оставить микроконтроллер в нерабочем состоянии. Надёжнее питать плату от программатора или свежего источника.
Компиляция прошивки из исходников
Готовые hex-файлы не всегда совпадают с вашей конфигурацией железа, поэтому опытные пользователи собирают прошивку самостоятельно. Исходники проекта доступны в открытых репозиториях; для сборки понадобится avr-gcc, avr-libc и make. Конфигурация задаётся в файлах Makefile и config.h: там выбирается тип дисплея, наличие кварца, распиновка кнопок и дополнительные функции.
Сборка сводится к редактированию конфигурации и запуску компиляции:
make
make program
Что включить в конфигурации
Полезные опции: поддержка русского языка меню, измерение ESR и ёмкости с автонастройкой, определение кварцев, графики для цветных дисплеев. Осторожно с опциями, расширяющими объём кода — память ATmega328 ограничена 32 КБ, и избыточная конфигурация может не поместиться.
Восстановление после неудачной прошивки
Если тестер «умер» после прошивки, не спешите считать его потерянным. Чаще всего проблема в неверных фьюзах тактирования: микроконтроллер ждёт внешний кварц, которого нет, или наоборот. Решение — подать тактовый сигнал на соответствующий вывод (например, с генератора на другой Arduino) и перепрошить фьюзы корректными значениями.
Второй сценарий — залита прошивка под другой дисплей: устройство работает, но экран молчит. Здесь достаточно пересобрать прошивку с правильным контроллером дисплея и прошить заново. Именно для таких случаев и нужен сохранённый в начале дамп: откат к заводскому состоянию занимает пару минут.
Часто задаваемые вопросы
Можно ли прошить транзистор-тестер без программатора?
Нет, для ATmega328 в составе тестера требуется ISP-программатор. В качестве бюджетной альтернативы подойдёт плата Arduino со скетчем ArduinoISP — отдельный программатор покупать не обязательно.
Какой программатор лучше — USBasp или USBtinyISP?
Оба корректно работают с avrdude и подходят для прошивки тестера. USBasp чаще встречается в продаже и дешевле; выбирайте тот, который проще достать.
Сотрутся ли калибровочные данные при прошивке?
Калибровочные константы хранятся в EEPROM. Если вы прошиваете только flash или записываете корректный файл .eep, данные сохранятся, но после смены версии прошивки калибровку рекомендуется пройти заново через меню Selftest.
Что делать, если после прошивки экран белый?
Наиболее вероятная причина — прошивка собрана под другой тип дисплея. Определите контроллер своего экрана, пересоберите прошивку с соответствующей опцией и прошейте повторно.
Безопасно ли менять фьюзы ATmega328?
Безопасно при условии, что вы заранее считали и сохранили заводские значения и используете значения из документации конкретной прошивки. Ошибка в фьюзе тактирования обратима, но потребует подачи внешнего тактового сигнала для восстановления связи с чипом.