Ручной светодиодный фонарь BL-8760 потерял работоспособность. При отсутствии реакции на переключатель режимов работы фонарь хаотично мигал или постоянно светился. Переустановка аккумулятора восстанавливала нормальную работу, но вскоре перестала помогать. Как была решена эта задача, описано в данной статье.
На кольце обозначены шесть режимов работы:
- выключен;
- полная яркость;
- средняя яркость;
- малая яркость;
- строб (периодические короткие вспышки);
- SOS (телеграфный сигнал).
Питается фонарь от одного литий-ионного аккумулятора типоразмером 18650.
При изучении конструкции этого фонаря было определено, что переключение режимов магнитное. В кольце переключателя режимов под знаком режима «Малая яркость» установлен магнит, а на плате драйвера по периметру размещены магнитоуправляемые ключи на эффекте Холла. В фиксированных положениях кольца магнит подводится к соответствующему ключу и включает его. Выход ключа переходит в низкий логический уровень. Выходы ключей подключены к микросхеме, управляющей транзистором-драйвером светодиода. Ключи размещены так, что магнитом одновременно включается не более одного из них, либо все они выключены.
Внешний вид платы драйвера фонаря показан на фото 1, а внешний вид этой платы под микроскопом — на фото 2.
По печатной плате драйвера воссоздана его электрическая принципиальная схема (рис.1). Замечу, что позиционные обозначения деталей на плате нанесены только для ключей; остальным элементам они присвоены автором статьи.
Элементы С1, VD1 и VT1 были измерены с помощью тестера полупроводниковых приборов SC Analyzer 2005 и мультиметра. Для ключей и полупроводниковых приборов приведена маркировка на корпусах элементов.
Элементы на плате фонаря:
- C1 -SMD керамический конденсатор 10 мкФ;
- Н1, Н2, Н4, Н5 — магнитоуправляемые ключи 4913В;
- R0 — пустое посадочное место под двухвыводной SMD-компонент;
- R1 — SMD резистор 10 кОм;
- VD1 — SMD кремниевый диод S4;
- VD2 — ультраяркий светодиод Сгее;
- VT1 — SMD кремниевый PNP транзистор B
Производитель сэкономил один ключ — диаметрально противоположным на кольце режимам «Малая яркость» и «Выключен» соответствуют положения переключателя, при котором магнит удалён от всех установленных ключей, и все они выключены. Четыре остальных режима соответствуют включению отдельных ключей. По промежутку в нумерации ключей видно, что был ещё один – H3, а у микросхемы D1 есть незадействованный вывод, к которому мог быть подключён выход этого ключа.
Для проверки ключей и определения соответствия им режимов был собран стенд. Видеозапись проверки работы конструкции размещена в Интернет по адресу [1]. На записи видно, что ключи в рабочем состоянии; также видно одинаковое состояние ключей в двух вышеупомянутых режимах.
Неопознанной осталась только микросхема D1 в SMD корпусе SO-8. На верхней стороне корпуса маркировки нет, на нижней — есть маркировка Т1Н2В25САЕ, но поиск в Интернет ничего не дал. Возможно, это заказная микросхема, информация о которой нигде не публиковалась.
Также был безуспешен поиск её функциональных аналогов с аналогичными режимами, способами управления и цоколёвкой.
Замена платы драйвера на имеющиеся в продаже драйверы без магнитного управления требовала установки выключателя, но приобретение подходящей резьбовой крышки корпуса со встроенной кнопкой включения делало ремонт экономически нецелесообразным. Причем при такой замене нарушалась бы герметичность конструкции.
Обратило на себя внимание расположение выводов питания микросхемы D1: положительный полюс напряжения питания подводится к выводу 1, а отрицательный — к выводу 8. Такое расположение выводов питания имеют микроконтроллеры (МК) семейства PIC12 фирмы Microchip. Если предположить применение этих МК в данной схеме, то становится понятным назначение пустого посадочного места R0. Оно необходимо для установки внешнего резистора подтяжки (pull-up). У ключей выходы с открытым коллектором и для согласования с цифровыми входами необходим резистор между выходом и положительным полюсом питания, а вывод 4 (GP3/MCLR) в режиме входа не имеет такого встроенного резистора в отличие от других выводов порта.
При проектировании драйвера мог быть применён МК из семейства PIC12, при серийном производстве заменённый заказной версией с масочным программированием и встроенным резистором подтяжки на выводе 4.
Остаётся непонятным назначение диода VD1. От неправильной полярности питания он защитит только маломощную часть схемы. Возможно, он способствует защите аккумулятора с помощью детектора пониженного напряжения (Brown Out Detector — BOD) в МК. При напряжении питания ниже 2 В BOD удерживает МК в состоянии сброса. С учётом падения напряжения на диоде около 0,6 В срабатывание BOD произойдёт при снижении напряжения на аккумуляторе до 2,6 В. В состоянии сброса транзистор VT1 закрыт, светодиод VD2 погашен, и потребление всей схемы составляет порядка 100 мкА, что предотвращает глубокий разряд аккумулятора.
На основании вышеописанных данных было решено заменить микросхему D1 доступным и дешёвым МК типа PIC12F629 в корпусе SO-8 и написать для него реализующую требуемый функционал программу.
Для программирования МК с такими скромными ресурсами предпочтителен предоставляемый бесплатно ассемблер от производителя.
При написании программы необходимо предусмотреть использование:
- BOD;
- сторожевого таймера (WDT);
- состояния SLEEP в выключенном режиме;
- внутреннего тактового RC-генератора.
Также надо учитывать одинаковое состояние сигналов от ключей в режимах «Выключен» и «Малая яркость» — для их различения придётся запоминать соседние режимы. Из-за этой особенности при смене аккумулятора или ином прерывании питания в режиме «Малая яркость» МК потеряет данные о предыдущих режимах и перейдёт в режим «Выключен». То же произойдёт в случае сбоя программы и перезапуска МК от WDT. Можно запоминать предыдущие состояния в EEPROM, но это поможет только при сбое МК, который в такой несложной программе маловероятен, а при замене аккумулятора переключатель режимов может оказаться в любом случайном положении, и запоминание в таком случае не имеет смысла, так что использование EEPROM избыточно.
Устранить неоднозначность выбора режимов может только установка ещё одного ключа, подключение его выхода к свободному выводу МК и использование его в программе для включения режима «Малая яркость», тогда пять режимов свечения будут включаться соответствующими ключами, а режим «Выключен» будет при отсутствии включённых ключей.
Замеры режимов работы драйвера другого фонаря показали, что частота ШИМ равна 2 кГц, а соответствующие средней и малой яркости скважности — 40% и 10%. При написании программы автор ориентировался на эти значения.
Заданный функционал может быть реализован разными алгоритмами. Авторская версия программы управляет состоянием выхода, формирует ШИМ и опрашивает входы без использования таймеров и прерываний. В режиме «Выключен» МК переводится в состояние SLEEP, из которого периодически возвращается срабатыванием сторожевого таймера (WDT).
Частота ШИМ 2,315 кГц. Строб-импульсы имеют длительность 10 мс и частоту следования 1 Гц. Сигнал SOS имеет длительность точки 500 мс. Поддерживаются как изначальный вариант схемы с четырьмя ключами и запоминанием режимов при переключении, так и доработанный с добавленным ключом, выход которого подключён к выводу 2 микросхемы D1.
Исходный текст программы и НЕХ-файл для прошивки МК размещены в Интернете по адресу [2].
Запрограммировать МК при отсутствии фирменных программаторов можно простыми самодельными программаторами, описанными в [3] или [4].
Вместе с заменой микросхемы D1 запрограммированным МК надо установить на пустое посадочное место R0 SMD-резистор номиналом 10…22 кОм типоразмера 0805.
Программа была отлажена на макете, но после установки МК на плату обнаружились проблемы: в режиме «Выключен» наблюдались незначительные вспышки и мерцание светодиода VD2, а в режимах пониженной яркости на осциллографе было видно неполное выключение светодиода VD2, свидетельствующее о работе транзистора VT1 в активном, а не ключевом режиме. Это происходит из-за диода VD1, создающего смещение базы транзистора VT1 относительно эмиттера и не позволяющее его полностью закрыть. Неизвестно, проявлялись ли эти проблемы до ремонта.
Для устранения этого недостатка между базой и эмиттером транзистора VT1 был включен резистор 2 кОм (на схеме не показан), а резистор R1 был заменён также 2 кОм, что перевело транзистор VT1 в ключевой режим и устранило мерцание светодиода VD2.
Ссылки
- http://youtu.be/n2G-AF2zsVI.
- https://github.com/o-m-d/fl5mode.
- http://goo.gl/VhYWpR.
- http://www.labkit.ru/html/programmators_shm?id=76.
- http://www.natlinear.com/uploadfiles/2014/LN/pdf.
Автор: Александр Давиденко, г. Киев