Кошки. Породы, стерилизация

Самодельный драйвер для фонаря. Самодельный драйвер для мощных светодиодов

Поработав около года, мой налобный фонарь LED Headlight XM-L T6 стал включаться через раз, а то и вообще отключаться без команды. Вскоре перестал включаться совсем.

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

Для подсветки тылового индикатора LED HEADLIGHT используется обычный SMD-светодиод красного цвета свечения. На плате обозначен, как LED. Он подсвечивает пластину из белого пластика.

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

Явно не помешает при велопрогулках и ходьбе вдоль дорожных трасс.

Через резистор в 100 Ом плюсовой вывод красного SMD-светодиода подключается к стоку MOSFET-транзистора FDS9435A. Таким образом, при включении фонаря напряжение поступает и на основной светодиод Cree XM-L T6 XLamp, и на маломощный SMD-светодиод красного цвета свечения.

С основными детальками разобрались. Теперь расскажу, что же сломалось.

При нажатии на кнопку включения фонаря было видно, что красный SMD светодиод начинает светить, но очень тускло. Работа светодиода соответствовала штатным режимам работы фонаря (максимальная яркость, низкая яркость и стробоскоп). Стало ясно, что управляющая микросхема U1 (FM2819) скорее всего исправна.

Раз она штатно реагирует на нажатие кнопки, то, возможно, проблема кроется в самой нагрузке - мощном белом светодиоде. Отпаяв провода, идущие на светодиод Cree XM-L T6, и подключив его к самодельному блоку питания, я убедился в его исправности.

При замерах оказалось, что в режиме максимальной яркости, на стоке транзистора FDS9435A всего 1,2V. Естественно, этого напряжения не хватало для питания мощного светодиода Cree XM-L T6, а вот красному SMD-светодиоду его было достаточно, чтобы его кристалл начал тускло светиться.

Стало ясно, что неисправен транзистор FDS9435A, который задействован в схеме как электронный ключ.

В замену транзистору ничего подбирать не стал, а купил оригинальный P-канальный PowerTrench MOSFET FDS9435A фирмы Fairchild. Вот его внешний вид.

Как видим, на этом транзисторе присутствует полная маркировка и отличительный знак фирмы Fairchild (F ), выпустившей данный транзистор.

Сравнив оригинальный транзистор с тем, что установлен на плате, мне в голову закралась мысль о том, что в фонаре установлена подделка или менее мощный транзистор. Возможно, даже брак. Всё-таки фонарь не успел отслужить и года, а силовой элемент уже "отбросил копыта".

Цоколёвка транзистора FDS9435A выглядит следующим образом.

Как видим, внутри корпуса SO-8 находится всего лишь один транзистор. Выводы 5, 6, 7, 8 объединены и являются выводом стока (D rain). Выводы 1, 2, 3 также соединены вместе и являются истоком (S ource). 4-ый вывод - это затвор (G ate). Именно на него приходит сигнал с управляющей микросхемы FM2819 (U1).

В качестве замены транзистору FDS9435A можно использовать APM9435, AO9435, SI9435. Всё это аналоги.

Выпаять транзистор можно как привычными методами, так и более экзотическими, например, сплавом Розе. Также можно применить метод грубой силы - подрезать ножом выводы, демонтировать корпус, а затем отпаять оставшиеся на плате выводы.

После замены транзистора FDS9435A налобный фонарь стал работать исправно.

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

Так как изначально я не знал, что микросхема с маркировкой 819L (24) это FM2819, то вооружившись осциллографом, я решил посмотреть, какой сигнал подаёт микросхема на затвор транзистора при разных режимах работы. Интересно же.

При включении первого режима на затвор транзистора FDS9435A с микросхемы FM2819 подаётся -3,4...3,8V, которое практически соответствует напряжению на аккумуляторе (3,75...3,8V). Естественно, на затвор транзистора подаётся отрицательное напряжение, так как он P-канальный.

При этом транзистор полностью открывается и напряжение на светодиоде Cree XM-L T6 достигает 3,4...3,5V.

В режиме минимального свечения (1/4 яркости) на транзистор FDS9435A с микросхемы U1 приходит около 0,97V. Это если проводить замеры рядовым мультиметром без наворотов.

На самом же деле в этом режиме на транзистор приходит сигнал ШИМ (широтно-импульсная модуляция). Подключив щупы осциллографа между "+" питания и выводом затвора транзистора FDS9435A, я увидел вот такую картину.

Картинка ШИМ-сигнала на экране осциллографа (время/деление - 0,5; V/деление - 0,5). Время развёртки - mS (миллисекунды).

Так как на затвор поступает отрицательное напряжение, то "картинка" на экране осциллографа переворачивается. То есть сейчас на фото в центре экрана показан не импульс, а пауза между ними!

Сама пауза длится около 2,25 миллисекунд (mS) (4,5 деления по 0,5mS). В этот момент транзистор закрыт.

Затем транзистор открывается на 0,75 mS. При этом на светодиод XM-L T6 поступает напряжение. Амплитуда каждого импульса составляет 3V. А, как мы помним, мультиметром я намерил всего лишь 0,97V. В этом нет ничего удивительного, так как мультиметром я мерил постоянное напряжение.

Вот этот момент на экране осциллографа. Переключатель время/деление установил на 0,1, чтобы лучше определить длительность импульса. Транзистор открыт. Не забываем про то, что на затвор приходит минус "-". Импульс перевёрнут.

S = (2,25mS + 0,75mS) / 0,75mS = 3mS / 0,75mS = 4. Где,

    S - скважность (безразмерная величина);

    Τ - период следования (миллисекунды, mS). В нашем случае период равен сумме включения (0,75 mS) и паузы (2,25 mS);

    τ- длительность импульса (миллисекунды, mS). У нас это 0,75mS.

Также можно определить коэффициент заполнения (D), который в англоязычной среде называют Duty Cycle (часто встречается во всяких даташитах на электронные компоненты). Обычно он указывается в процентах %.

D = τ/Τ = 0,75/3 = 0,25 (25%). Таким образом, в режиме пониженной яркости светодиод включен лишь на четверть периода.

Когда делал подсчёты первый раз, то коэффициент заполнения у меня вышел 75%. Но потом, увидев в даташите на FM2819 строчку про режим 1/4 яркости, понял, что где-то облажался. Я просто перепутал паузу и длительность импульса местами, поскольку по привычке принял минус "-" на затворе за плюс "+". Поэтому и вышло всё наоборот.

В режиме "STROBE" мне не удалось посмотреть ШИМ сигнал, так как осциллограф аналоговый и довольно старый. Синхронизировать сигнал на экране и получить чёткое изображение импульсов мне не удалось, хотя было видно его наличие.

Типовая схема включения и цоколёвка микросхемы FM2819. Может, кому пригодится.

Не давали мне покоя и некоторые моменты, связанные с работой светодиода. Со светодиодными фонарями я раньше, как-то не имел дела, а тут захотелось разобраться.

Когда я полистал даташит на светодиод Cree XM-L T6, который установлен в фонаре, то понял, что номинал токоограничительного резистора маловат (0,13 Ом). Да, и на плате одно посадочное место под резистор было свободно.

Когда шерстил по интернетам в поисках информации о микросхеме FM2819, то видел фото нескольких печатных плат аналогичных фонарей. На одних были запаяны четыре резистора по 1 Ому, а на некоторых вообще SMD-резистор с маркировкой "0" (перемычка), что, на мой взгляд, вообще является преступлением.

Светодиод - это нелинейный элемент, и, поэтому, последовательно с ним необходимо включать токоограничивающий резистор.

Если заглянуть в даташит на светодиоды серии Cree XLamp XM-L, то можно обнаружить, что их максимальное напряжение питания составляет 3,5V, а номинальное 2,9V. При этом ток через светодиод может достигать величины в 3А. Вот график из даташита.

Номинальным током для таких светодиодов считается ток в 700 mA при напряжении в 2,9V.

Конкретно в моём фонаре ток через светодиод составил 1,2 A при напряжении на нём в 3,4...3,5V, что явно многовато.

Чтобы уменьшить прямой ток через светодиод я запаял вместо прежних резисторов четыре новых номиналом в 2,4 Ом (типоразмер 1206). Получил общее сопротивление в 0,6 Ом (мощность рассеивания 0,125W * 4 = 0,5W).

После замены резисторов прямой ток через светодиод составил 800 mA при напряжении в 3,15V. Так светодиод будет работать при более мягком тепловом режиме, и, надеюсь, прослужит долго.

Поскольку резисторы типоразмера 1206 рассчитаны на мощность рассеивания в 1/8W (0,125 Вт), а в режиме максимальной яркости на четырёх токоограничивающих резисторах рассеивается мощность около 0,5Вт, то от них желательно отвести излишнее тепло.

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

После доработки электронной начинки фонаря покрыл печатную плату лаком PLASTIK-71 (электроизоляционный акриловый лак) для защиты от конденсата и влаги.

При расчётах токоограничительного резистора я столкнулся с некоторыми тонкостями. За напряжение питания светодиода стоит принимать напряжение на стоке MOSFET транзистора. Дело в том, что на открытом канале MOSFET-транзистора теряется часть напряжения из-за сопротивления канала (R (ds)on).

Чем выше ток, тем большее напряжение "оседает" по пути Исток-Сток транзистора. У меня при токе в 1,2А оно составило 0,33V, а при 0,8А - 0,08V. Также часть напряжения падает на соединительных проводах, которые идут с клемм аккумулятора на плату (0,04V). Казалось бы, такая мелочь, а в сумме набегает 0,12V. Так как под нагрузкой напряжение на Li-ion аккумуляторе проседает до 3,67...3,75V, то на стоке MOSFET"а уже 3,55...3,63V.

Ещё 0,5...0,52V гасит цепь из четырёх параллельных резисторов. В итоге на светодиод приходит напряжение в районе 3-ёх с небольшим вольт.

На момент написания этой статьи в продаже появилась обновлённая версия рассмотренного налобного фонаря. В нём уже встроена плата контроля заряда/разряда Li-ion аккумулятора, а также добавлен оптический датчик, который позволяет включать фонарь жестом ладони.

Как известно диод - это токовый прибор, питать его нужно постоянным током, а не напряжением. Светодиоды – тоже диоды, и их тоже нужно питать стабильным током. При стационарной установке светодиода проблема его питания легко решается с помощью резистора, который задает ток через светодиод. Рассчитать номинал резистора помогает закон Ома: R=(Uпит-Uпад)/I , где Uпит – напряжение источника питания в вольтах, Uпад – напряжение, которое падает на светодиоде (примерно 3-3,5В, зависит от тока через светодиод), а I – желаемый ток через светодиод в амперах. Далее подбирается резистор ближайшего номинала, который есть в наличии и все хорошо работает. При больших токах резистор будет сильно греться, так что стоит его брать по мощнее.

Минусом стабилизатора на резисторе является неспособность реагировать на изменение напряжения питания (ток через светодиод и как следствие его яркость будут падать по мере разряда батареи), а также никому не нужная рассеиваемая мощность на резисторе. Для решения этой проблемы существуют так называемые драйвера светодиода (стабилизаторы тока). Стабилизаторы тока бывают повышающими (Boost) и понижающими (Buck). Boost стабилизаторы используются, когда напряжение на батареях меньше, чем падение напряжения на светодиоде, а Buck – когда напряжение на батарея больше падения на светодиоде.
При проектировании своего «неубиваемого» фонарика я задумал использовать параллельную связку из литиевых аккумуляторов или 3шт. АА батарейки (т.е. питающее входное напряжение драйвера должно быть в пределах 3-4,5В). Для этой задачи необходимо использовать Buck драйвер, но при этом не используется около 20% запасенной энергии в батареях! Эти 20% можно выжать, вставив в схему еще и Boost драйвер, который будет включаться, когда для Buck драйвера будет слишком низкое напряжения питания. Все это очень муторно и громоздко, 2 драйвера + компаратор или микроконтроллер для переключения. Так дело далеко не зайдет. Почитав раздел светотехники на speleo.ru открыл для себя Boost/Buck стабилизатор с нужным мне диапазоном питающих напряжений и недурной эффективностью (достижимой при вдумчивой намотке индуктивности). Эта микросхема следит за питающим напряжение и автоматически переключает встроенные Boost/Buck драйвера. Силовые ключи в мостовой схеме интегрированы в саму микросхему, и позволяют коммутировать токи до 1А. Схема включения была взята из и немного модифицирована:


Конденсаторы С3,С4 – танталовые в СМД исполнении 68мкФ, С1 ,С2 ,С5 – керамические по 0,1мкФ. С намоткой индуктивности я связываться не стал, поэтому купил взял SUMIDA CDRH5D28RNP-5RØN на 5мкГн. Как видно, микросхема драйвера имеет 2 «канала», которые можно включать по отдельности или вместе с помощью высокого логического уровня на выводах EN1 , EN2 . Токи «каналов» задается с помощью 2-х резисторов R1 , R2 которые рассчитывается по формуле R1=3580*0.8/I1 , R2=3580*0.8/I2 . Главное, чтобы суммарный ток «каналов» был меньше 1А, иначе есть хорошая вероятность спалить внутренние ключи. Далее по задумке, в фонарике будет 2 режима, «ходовой» и «мощный» с соответствующими токами через диод 0,2А и 1А (мощный режим достигается путем включения 2-х «каналов» по 0,2А и 0,8А одновременно). То есть резистор R1 , задающий «ходовой» режим должен быть номиналом 15кОм, а R2 – 3,9кОм. Переключатся режимы будут с помощью тактовой кнопки, герметизированной кусочком резины и прижимной пластиной. То есть для этого нужно повесить еще микроконтроллер, который будет считывать нажатия кнопки и переключать режимы свечения диода. Включение/выключение фонаря будет производиться с помощью длительного (2с) удержания кнопки. А переключение «ходового» и «мощного» режима будет с помощью короткого нажатия кнопки (0,5с). Полная схема устройства с микроконтроллером:


Микроконтроллер взял тот, который был ближе всего под рукой. Им оказался в SO-14 исполнении. Прошивка его тривиальна, кроме обработки нажатия клавиши, где учитывается время удержания. Когда фонарик выключен – микроконтроллер переходит в Power-Down режим, и потребляет всего 0,1мкА (LTC3454 в SHUTDOWN режиме потребляет тоже всего ничего – 1мкА) и ощутимо подсаживать аккумулятор не будет. Также добавил еще один элемент, конденсатор С6 – 0,1мкФ на питании микроконтроллера.

    #include

    #include

  1. #define EN1 2

    #define EN2 3

  2. #define KEY 2

  3. unsigned char mode= 0 ;

    unsigned char sleep_flag= 1 ;

  4. void pause (unsigned int a)

    { unsigned int i;

  5. for (i= a; i> 0 ; i-- )

  6. void set_mode(void )

    if (mode== 0 ) PORTA&= ~((1 << EN1) | (1 << EN2) ) ;

    if (mode== 1 ) PORTA= (1 << EN1) ;

    if (mode== 2 ) PORTA= (1 << EN1) | (1 << EN2) ;

  7. ISR (INT0_vect)

    { int count;

  8. count= 0 ;

    count= count+ 1 ;

  9. if (count== 1000 ) {

  10. if (mode== 1 ) mode= 2 ;

    else if (mode== 2 ) mode= 1 ;

  11. while ((PINB& _BV(KEY) ) == 0x00 )

    count= count+ 1 ;

    if (count== 9000 ) {

    if (mode== 0 ) mode= 1 ;

    else {

    mode= 0 ;

    sleep_flag= 1 ;

    set_mode() ;

  12. while ((PINB& _BV(KEY) ) == 0x00 )

    set_mode() ;

  13. return ;

  14. int main(void )

    DDRB= 0x04 ; //PB2 как вход

    PORTB= 0x04 ;

  15. DDRA= 0x0c ; //PA2,PA3 как выхода

  16. pause(1000 ) ; //Пауза

  17. GIMSK= (1 << INT0) ;

    MCUCR= (0 << ISC00) | (0 << ISC01) ; //Прерывание по низкому уровню на PB2

    MCUCR|= (1 << SM1) | (0 << SM0) | (1 << SE) ; //Разрешить power-down режим

    sei() ; //Разрешить прерывания

Наверняка у многих имеются фонари фирмы Convoy, они давно зарекомендовали себя как недорогие и качественные источники света. Но мало кто знает, что с помощью программатора за $3 и клипсы за $3 можно залить в некоторые фонари кастомную прошивку, которая будет иметь больше функций или будет удобнее в использовании. Сразу оговорюсь, что в статье речь пойдет о прошивке фонарей с драйверами на базе микроконтроллера Attiny13a, такие драйвера стоят во всех конвоях S серии (кроме нового S9), а так же в Convoy M1, M2, C8. Многие другие производители так же ставят в свои фонари драйвера с Attiny, к ним данный мануал тоже применим, но следует уделять внимание фьюзам и используемым портам Attiny.

Краткий ликбез

Не все знакомы с устройством современных фонарей, поэтому прежде чем перейти к колдовству, я постараюсь ввести вас в курс дела. Итак, электрическая схема типичного карманного фонарика состоит из следующих частей:

  • Кнопка выключения - у «тактических» EDC фонариков типа Конвоев обычно располагается в хвосте
  • Аккумулятор - обычно это Li-ion банка
  • Драйвер - самая важная часть фонаря, его мозги
  • Светодиод - говорит сам за себя

Из всего этого безобразия нас, как вы уже поняли, интересует в первую очередь драйвер. Он отвечает за работу фонаря в различных режимах яркости, запоминание последнего включенного режима и прочую логику. В одноаккумуляторных фонарях чаще всего встречаются ШИМ-драйвера. В качестве силового ключа в таких драйверах обычно используется либо полевой транзистор, либо куча линейных регуляторов AMC7135. Например, так выглядит довольно популярный драйвер Nanjg 105D:


Микроконтроллер Attiny13a содержит в себе прошивку, которая определяет логику работы фонаря. Далее я покажу, как можно залить в этот микроконтроллер другую прошивку, чтобы расширить функционал фонаря.

Предыстория

Сейчас на рынке представлено поистине огромное количество карманных EDC фонариков, и, что характерно, каждый производитель норовит изобрести свою собственную прошивку с собственным уникальным™ управлением. Из всех существующих решений мне больше всего нравилась прошивка, с которой до недавних пор поставлялись фонари Convoy с драйвером Nanjg 105D. Она имела 2 группы режимов (1 группа: Мин-Средний-Макс, 2 группа: Мин-Средний-Макс-Строб-SOS). Смена групп в ней осуществлялась интуитивно просто: включаем минимальный режим, спустя пару секунд фонарь моргнёт - кликаем кнопкой, и группа режимов переключена. С недавних пор Convoy начал поставлять свои фонари с новой прошивкой biscotti. Она имеет больше возможностей (12 групп режимов, возможность включения-отключения памяти последнего режима, запоминание режима в выключенном состоянии (т.н. off-time memory)), но у нее есть несколько жирных минусов, которые лично для меня перечеркивают все достоинства:

  • Сложное управление. Чтобы сменить группу режимов нужно помнить наизусть шаманскую последовательность кликов кнопкой
  • Off-time memory не работает при использовании светящихся кнопок (например, таких)
  • Много бесполезных групп режимов, отличающихся лишь порядком следования

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

Встречайте Quasar v1.0

Взяв за основу прошивку luxdrv 0.3b от DrJones , я сваял собственную с блекджеком и лунапарками. Я постарался сделать ее максимально похожей на стоковую прошивку Nanjg 105D и более масштабируемой. Что может мой Quasar:

  • 2 группы режимов: (Минимальный - Средний - Максимальный - Турбо) и (Минимальный - Средний - Максимальный - Турбо - Строб - Полицейский строб - SOS)
  • Строб злой (частота вспышек около 12Гц)
  • Новый режим - полицейский строб - делает прерывистые серии по 5 вспышек, режим может быть полезен велосипедистам, т.к. повышает заметность
  • Переключение групп осуществляется как в заводской прошивке: включаем первый режим, ждем пару секунд, кликаем сразу после того, как фонарь моргнет
  • Путем модификации исходников можно добавить до 16 групп, в каждой группе можно задать до 8 режимов
  • Используется традиционная on-time память, можно использовать светящиеся кнопки без потери функциональности
  • При разряде аккумулятора ниже 3В фонарь начинает сбрасывать яркость, но полностью не отключается - используйте аккумуляторы с защитой, если боитесь их убить.
  • Удобная фича для проверки текущего уровня аккумулятора: в любом режиме делаем 10-20 быстрых полу-нажатий кнопкой до тех пор, пока фонарь не перестанет включаться. После этого фонарь сделает от 1 до 4 вспышек, каждая вспышка означает уровень заряда соответственно < 25%, < 50%, < 75% и < 100%.

Исходники, скомпилированный бинарник с двумя группами режимов и проект для Atmel Studio вы можете найти на моем гитхабе . Помните, что исходники распространяются под лицензией CC-BY-NC-SA, и прошивку вы используете на свой страх и риск без каких-либо гарантий.

Принадлежности

Для заливки кастомной прошивки нам понадобятся:

  • SOIC клипса Купить
  • Любой клон Arduino Nano 3.0 для использования в качестве программатора Купить
  • Arduino у меня уже была, поэтому я решил завести отдельный самостоятельный девайс для прошивки фонарей и купил USBISP программатор Купить
  • Dupont провода для подключения клипсы к программатору Купить

Подготовка программатора

Для прошивки драйвера подойдет обычная Arduino Nano 3.0 с залитым скетчем ArduinoISP, но я решил завести отдельный программатор, поэтому купил USBISP. Он имеет форм-фактор флешки в алюминиевом корпусе:


Из коробки этот программатор определяется на компе как HID устройство и работает только с китайским кривым софтом, чтобы использовать его с avrdude можно перепрошить его в USBASP. Для этого нам, как ни странно, понадобится другой рабочий программатор. Здесь нам поможет Arduino Nano, подключаем её к компьютеру, открываем Arduino IDE и открываем стандартный скетч ArduinoISP:


Раскомменчиваем строку #define USE_OLD_STYLE_WIRING:


И заливаем скетч в Nano. Теперь у нас есть AVRISP программатор, которым можно перепрошить наш USBISP в USBASP. Для этого нам в первую очередь понадобится avrdude, он лежит в папке установки Arduino IDE по пути \hardware\tools\avr\bin. Для удобства советую добавить полный путь к avrdude.exe в переменную окружения PATH.

Теперь нам необходимо открыть USBISP и перевести его в режим программирования, установив перемычку UP:



Заодно убеждаемся, что на плате распаян Atmega88 или 88p, как в моем случае:


Другие перемычки, несмотря на советы в инете, трогать не нужно, все прекрасно прошивается и с ними.

Теперь внимательно смотрим на распиновку USBISP программатора, нанесенную на его алюминиевом корпусе, и подключаем его к Arduino Nano:

  • VCC и GND к VCC и GND сответственно
  • MOSI к D11
  • MISO к D12
  • SCK к D13
  • RESET к D10

У меня не оказалось Female-Female проводов, поэтому я заюзал мини-макетку:


Следующий шаг - скачиваем прошивку usbasp.atmega88-modify.hex , подключаем Arduino к компу, запускаем консоль и переходим в папку с сохраненной прошивкой. Для начала выставим фьюзы командой:

Avrdude -p -m88 -c avrisp -b 19200 -U lfuse:w:0xff:m -U hfuse:w:0xdd:m

Затем заливаем прошивку командой:

Avrdude -p m88p -c avrisp -b 19200 -U flash:w:usbasp.atmega88-modify.hex

После этого убираем перемычку на USBISP, подключаем его к компьютеру, и если все сделано правильно, - на нем загорится синий светодиод:


Теперь у нас есть полноценный компактный USBASP программатор в удобном металлическом корпусе.

SOIC клипса

Программировать микроконтроллеры можно и без клипсы, подпаивая каждый раз проводки к соответствующим контактам, но это настолько рутинный процесс, что лучше все же не пожалеть денег на клипсу. Первое, что нужно сделать после получения клипсы, - это «распушить» контакты, поскольку из коробки они расположены слишком близко друг к другу, и к ним невозможно нормально подпаять провода:


Подключаем контакты клипсы к программатору в соответствии с распиновкой микроконтроллера:


Для большей надежности я припаял провода к клипсе и затянул все это термоусадкой:


Заливаем прошивку в фонарь

Теперь, когда программатор с клипсой готовы, дело остается за малым - нужно свернуть башку фонарю, открутить прижимное кольцо драйвера и извлечь его. В большинстве случаев провода от драйвера отпаивать не нужно, их длины достаточно для доступа к микроконтроллеру:


Крепим клипсу, соблюдая ориентацию. Ориентир в данном случае - кругляш на корпусе микросхемы, он обозначает первый её пин (RESET в нашем случае):


Смотрим, чтобы все пины клипсы утопились в корпус. Подключаем программатор к компу, теперь дело осталось за малым - нужно залить прошивку) Для этого идем на гитхаб, качаем бинарник quasar.hex , запускаем консоль, переходим в папку с бинарником и выполняем команду:

Avrdude -p t13 -c usbasp -u -Uflash:w:quasar.hex:a -Ulfuse:w:0x75:m -Uhfuse:w:0xFF:m

Если все нормально, то пойдет процесс загрузки прошивки, в этот момент ни в коем случае нельзя трогать клипсу, лучше вообще не дышать) При успешной прошивке в конце вывода будет примерно следующее:


Просто, да? А вот нифига, с вероятностью 90% вместо загрузки прошивки вы увидите это:


Причина чаще всего кроется в том, что у новых моделей драйверов замкнуты пины 5 и 6 (MISO и MOSI), что делает невозможным программирование. Поэтому если avrdude жалуется на target doesn"t answer, то первым делом вооружаемся скальпелем и внимательно смотрим на плату. Нужно перерезать дорожку, как показано на картинке:


После этого прошивка обычно заливается без проблем. Если нет - внимательно посмотрите на микроконтроллер, возможно у вас вовсе не Attiny13a, по крайней мере мне попадались драйвера с Fasttech с PIC контроллерами.

Модификация прошивки

Скомпилированная прошивка на гитхабе посути является чуть более продвинутым аналогом оригинальной прошивки, поэтому куда интереснее собрать собственную версию прошивки со своими группами и режимами. Сейчас я расскажу, как это сделать. Первым делом качаем и устанавливаем Atmel Studio с официального сайта. Потом скачиваем все файлы проекта (кто умеет в git - могут просто клонировать всю репу) и открываем Quasar.atsln через установленную студию:


Перечислю наиболее интересные места в коде:

#define LOCKTIME 50

Задает время, через которое текущий режим будет сохранен. Значение 50 соответствует 1 секунде, соответственно поставив 100 можно получить интервал ожидания в 2 секунды

#define BATTMON 125

Задает критический уровень напряжения на аккумуляторе, при достижении которого фонарь начнет сбрасывать яркость. У стандартного Nanjg 105D величина 125 соответствует примерно 2.9 вольтам, но все зависит от величин резисторов делителя напряжения на плате. Если удалить эту строку целиком - фонарь не будет следить за напряжением аккумулятора.

#define STROBE 254 #define PSTROBE 253 #define SOS 252

Определения режимов-мигалок, цифровые значения трогать не следует, если не нужен какой-либо режим - соответствующую строку можно удалить, не забыв после этого поправить объявления групп режимов в массиве groups.

#define BATTCHECK

Включает режим индикации уровня аккумулятора после 16 быстрых кликов. Можно удалить, если эта функция не нужна.

#define MEM_LAST

Задает запоминание последнего режима. Возможны следующие значения: MEM_LAST - фонарь включается в последнем включенном режиме, MEM_FIRST - фонарь всегда включается в первом режиме, MEM_NEXT - фонарь всегда включается в следующем режиме.

#define MODES_COUNT 7 #define GROUPS_COUNT 2

Задают количество режимов в группе и количество групп соответственно. Тесно связаны со следующим массивом groups:

PROGMEM const byte groups = {{ 6, 32, 128, 255, 0, 0, 0 }, { 6, 32, 128, 255, STROBE, PSTROBE, SOS }};

Здесь перечислены сами группы режимов работы. Числа 6, 32, 128, 255 - значения яркости, STROBE, PSTROBE, SOS - обозначения специальных режимов. Нулевые значения яркости игнорируются, поэтому в разных группах можно задавать разные количества режимов (в данном случае в первой группе 4 режима, во второй - 7).

Например, если вы хотите оставить один единственный режим работы со 100% яркостью, то сделать это можно так:

#define MODES_COUNT 1 #define GROUPS_COUNT 1 PROGMEM const byte groups = {{ 255 }};

Если вам нужны 3 группы режимов без мигалок и с обратным следованием (от максимального к минимальному), то можно сделать так:

#define MODES_COUNT 4 #define GROUPS_COUNT 3 PROGMEM const byte groups = {{ 255, 0, 0, 0 }, { 255, 64, 6, 0 }, { 255, 128, 32, 6 }};

При таком раскладе в первой группе всего один режим со 100% яркостью, во второй - 3 режима, в третьей - 4 режима с более плавным уменьшением яркости. Легко и просто, правда? Остается лишь скомпилировать исходник в hex файл с помощью студии, для этого выбираем «Release» в диспетчере конфигураций и жмем «Запуск без отладки»:


Если нигде в коде не накосячили, то в папке проекта появится директория Release, а в ней - hex файл, который остается залить в драйвер описанным в предыдущем разделе способом.

На этом все, надеюсь сей мануал будет кому-нибудь полезен. Если у кого возникнут вопросы - милости прошу в комменты)

Этот обзор будет интересен в основном любителям доделывать и переделывать китайские фонарики.

Речь пойдет об однорежимном 15-мм драйвере светодиода на 3 Вт. Вот ссылка на товар в FocalPrice . Для нетерпеливых и знающих сразу скажу, что драйвер нормальный, работает хорошо, по цене получился сравнительно дешевым (я дешевле не нашел, но выбирал из сравнительно небольшого числа магазинов). Ну а подробности - под катом.

После покупки фонарика Sipik SK58, который питается от батарейки или аккумулятора размера АА, у меня не раз возникала мысль, что светодиод в нем светит не в полную силу. Да еще при этом нагрузка на старенький NiMH аккумулятор выходит за рамки приличий (со свежезаряженным аккумулятором ток порядка 1 А - аккумулятору было уже лет 5, чего его так насиловать). А все дело в том, что для питания светодиода требуется напряжение порядка 3.4 - 3.6 В, в то время как NiMH аккумулятор выдает порядка 1.4 В в свежезаряженном состоянии (мой же и до 1.2 еле дотягивал), а по мере разрядки напряжение может упасть аж до 0.9 В (может и ниже, но тогда и аккумулятор быстро теряет емкость). Поэтому в данном фонарике стоит повышающий драйвер светодиода, т.е. плата, которая преобразует напряжение аккумулятора в те самые 3.4 - 3.6 В. При этом драйвер Sipik"а не пытается регулировать ток через светодиод - он выдает напряжение, какое получится (исходя из напряжения аккумулятора), а там будь что будет. Светодиод же достигает максимальной эффективности только на определенном рабочем токе, например, белый светодиод мощностью 1 Вт - при токе 350 мА. Ток через светодиод в моем случае был меньше.

Решил я поменять в фонарике драйвер с повышающего на понижающий, а NiMH аккумулятор заменить на литий-ионный типоразмера 14500. У литий-ионных аккумуляторов напряжение порядка 3.6 - 4.2 В, что очень хорошо подходит для питания белых светодиодов. Драйвер в данном случае стабилизирует ток через светодиод.

Драйвер нашел на FocalPrice, выбирал из нескольких магазинов - при закупке трех плат цена у FP была существенно ниже, чем в других магазинах.

Плата драйвера содержит три микросхемы AMC7135, каждая из которых обеспечивает ток 350 мА. Суммарный ток, соответственно, равен 1050 мА (микросхемы допускается включать параллельно - так они и соединены на плате). Я решил запитать светодиод током 350 мА (мощность 1 Вт), поскольку точных данных о светодиоде не было, а по косвенным признакам (заявленная яркость фонарика) он должен быть одноваттным. Нужный мне ток обеспечивает и одна микросхема AMC7135, поэтому две из трех микросхем я просто отпаял с платы и использовал в других осветительных устройствах (в частности, в велосипедной фаре, в которой до того вместо драйвера стоял балластный резистор). Плата драйвера отлично встала в фонарик, и светить он стал существенно ярче, чем на аккумуляторе АА и родном драйвере.

Вот так выглядит драйвер в соответствующем месте разобранного фонарика:

Выковырять его оттуда обратно я уже не смог - плотненько засел:).

Вот так выглядит драйвер на 7135 (слева) в сравнении с родным повышающим драйвером Sipik"а (справа).

И под другим углом - если интересно, можно почитать надписи на микросхемах:

Видно, что у Sipik"овского драйвера питание с корпуса фонарика берется с той стороны, где микросхемы - там есть кольцевая дорожка по краю платы, а у драйвера на AMC7135 ее нет (но есть на обратной стороне). Поэтому пришлось припаять кусочек медной фольги, завернутой через край платы (его видно вверху справа на самом первом фото). Ну, это работы на полминуты - даже если корпус Вашего фонарика не контактирует с обратной стороной платы, драйвер после такой доработки использовать можно.

Оставшиеся с заказа две платы я использую как источник микросхем AMC7135, которые оказалось не так просто купить в розницу.

Если соберетесь покупать этот драйвер, будьте внимательны: в последних комментариях покупателей на FocalPrice есть упоминание, что теперь на плате всего две микросхемы, и ток, соответственно, получится 700 мА, а не 1050 мА. Цена тоже снизилась по сравнению с той, по которой покупал я (у меня bulkrate-цена была $1.61, сейчас $1.07) - возможно, это как раз обусловлено отсутствием одной микросхемы.

Во времена увлечения туризмом был приобретен фонарь Duracell c мощной криптоновой лампой на двух больших батарейках типоразмера D (в советском варианте тип 373). Светил отлично, но высаживал батарейки часа за 3-4.

Кроме того, дважды случилась неприятность - батарейки потекли и электролитом залило все внутри фонаря. Контакты окислились, покрылись ржавчиной и даже после чистки и установки новых элементов питания, фонарь уже не внушал доверия, а уж батарейки тем более. Выбросить было жалко, а не имение возможности использовать, натолкнуло на мысль переделать фонарь на модные сейчас литиевый аккумулятор и светодиод. С полгода в закромах лежал литиевый аккумулятор Sanyo 18650 емкостью 2600 мА/ч, у китайских товарищей выписал вот такой светодиод (якобы Cree XML T6 U2) с рабочим напряжением 3-3,6 В, током 0,3-3 А (опять же, якобы - мощностью 10 Вт), световым потоком 1000-1155 люмен, цветовой температурой 5500-6500 К и углом рассеивания 170 градусов.

Поскольку опыт переделки фонарей на питание от литиевых аккумуляторов уже имелся ( и ), то решил пойти тем же путем: применить хорошо зарекомендовавшую себя связку: АКБ 18650 и контроллер заряда TP4056. Оставалось решить одну проблему - какой драйвер использовать для светодиода? Простым токоограничивающим резистором тут не отделаешься - мощность светодиода пусть и не 10 Ватт, как утверждают китайские товарищи, но все же. Изучая материал по «драйверостроению для мощных светодиодов» набрел на очень интересную, и как оказалось, часто применяемую микросхему АМС7135. На основе данной микросхемы китайцы давно и удачно завалили планету своими фонарями). Принципиальная схема питания мощного светодиода на основе АМС7135.

Как видим, допускается питание в диапазоне 2,7...6 В, а это довольно широкий спектр источников питания, в том числе и литиевые аккумуляторы. Задача чипа - ограничить ток, протекающий через светодиод на уровне 350 мА.
Согласно информации производителя чипа, конденсатор Со нужно использовать, если:

  • длина проводника между АМС7135 и светодиодом больше 3 см;
  • длина проводника между светодиодом и источником питания больше 10 см;
  • светодиод и микросхема не установлены на одной плате.

В реальности производители фонарей зачастую пренебрегаю этими условиями, и исключают конденсаторы из схемы. Но как показал эксперимент - напрасно, о чем несколько позже. К дополнительным преимуществам ИС типа АМС7135 можно отнести наличие встроенной защиты при обрыве, КЗ светодиода и диапазон рабочих температур -4О...85°С. Подробно документацию на чип АМС7135 можно .

Схема электрическая фонаря

Еще одной важной и крайне полезной особенностью данной микросхемы является то, что их можно устанавливать параллельно для увеличения тока, протекающего через светодиод. В результате родилась такая схема:

Исходя из нее, ток протекающий через светодиод, составит 1050 мА, что на мой взгляд, более чем достаточно для совсем не тактического, а хозяйственного фонаря. Далее приступил к монтажу все в единую систему. При помощи дремеля в корпусе фонаря удалил направляющие для батареек и контактные шины:


Так же дремелем убрал посадочное гнездо для криптоновой лампы и сформировал площадку для светодиода

Поскольку мощный светодиод во время работы выделяет много тепла, то для его рассеивания решил применить теплоотвод, снятый с материнской платы.


По задумке, светодиод, теплоотвод и головная часть фонаря с отражателем будут создавать одно целое и накручиваясь на корпус фонаря не должны ни за что цепляться. Для этого обрезал грани теплоотвода, просверлил отверстия для проводов и приклеил светодиод к теплоотводу термоклеем.




Загрузка...