Драйвер светодиода на микроконтроллере ATtiny

Основные требования к драйверу:

Разработка драйвера

Процесс рождения выдался довольно мучительным. Прежде чем получить хоть что-то работающее, было сделано порядка 3х предварительных прототипов. Нормально заработал только 3ий вариант.

Так же в процессе разработки был опробован специализированный драйвер NCP3066. Он позволяет построить импульсный источник тока для светодиода, а так же сделать управление яркостью при помощи внешнего ШИМ-сигнала. Схема не была реализована полностью, напаял только аналоговую часть, чтобы провести тесты.

Результаты тестов получились печальными: КПД около 60% (наблюдается достаточно сильный нагрев драйвера), а главное: несмотря на заявленный диапазон напряжений 3-40В, драйвер отказался стабилизировать ток при напряжении питания меньше 5В, а на 4В (еще достаточно живые 4хАА батарейки) светодиод еле тлел. На данной плате я воотчию наблюдал, насколько улучшается стабильность работы схемы при добавлении емкого конденсатора по входу.

Еще есть очень интересный драйвер LTC3454, он имеет просто шикарный КПД - 90%, тянет ток до 1А, может работать в режимах понижения и повышения. Все отлично, если бы не одно но: макс. напряжение, с которым работает драйвер - 5.5В. В случае питания от 4хАА можно рассчитывать примерно до 7.4В, в случае установки литиевых элементов, у которых в начале работы напряжение может составлять до 1.8В на банку. Хотя, возможно рассмотреть применимость данного драйвера в фонарях с блоками из 2-3 батареек.

В принципе, разработка микроконтроллерного драйвера для светодиодов - изобретение велосипеда. Существует описание нескольких реализаций подобных драйверов. Одна из самых интересных - драйвер для светодиодов Cree с фонаревки: http://forum.fonarevka.ru/showthread.php?t=5151.

Концепция драйвера достаточно близка к тому что требуется мне. Однако, есть одно существенное отличие: данный драйвер рассчитан на питание от одной банки литиевого аккумулятора (напряжения 2.7-4.2В), поэтому в реальности схемотехника ограничена напряжением питания около 5В. Мне же требуется работать от 6В, конечно это всего на 10% выше максимально допустимого для ATtiny, поэтому он должен выдержать, но ничего хорошего при таком подходе не получится, да и драйвер MOSFET так же ограничен 5.5В (они сговорились чтоли?).

В реализации AVSel-а, сразу бросается в глаза достаточно жирный микроконтроллер. Почему же используется именно ATtiny45, а не что-то более примитивное, типа Tiny13A?

  1. Быстрый ШИМ. ATtinyX5 серия имеет на борту PLL блок, позволяющий тактировать таймерный блок частотой до 64МГц. А это дает частоту работы ШИМ до 250КГц. В Tiny13A максимум можно выжать около 33КГц (хотя этого в некоторых случаях вполне достаточно, просто требуется ставить более габаритные конденсаторы и дроссели.
  2. Дифференциальный вход АЦП. Да, очень полезная в данном применении функция, хотя, можно обойтись и без нее.
  3. Умножитель по входу АЦП. По желанию, можно активировать усиление сигнала на входе АЦП в 20 раз. До этого я и не предполагал, что такие функции встраивают на кристалл микроконтроллеров. И ведь это была главная проблема, каким еще образом измерить падение в 5мВ на токовом резисторе с приемлемой точностью? Если бы не умножитель, то пришлось бы ставить внешний ОУ.
  4. Микропрограмма на Си с развитой логикой калибровок. Если оставить в ней только логику регулирования, размер уменьшится почти до 0.5к.

Благодаря всем плюшкам ATtiny45, он идеально подходит для применения в цифровых DC-DC преобразователях и источниках тока, где требуется гибкая логика работы. Единственная проблема, которая долго мучила меня - это управление MOSFET-транзистором. Рассматривались разные варианты, это и специализированные драйвера, и аналоговые ключи, и схемы управления на дискретных компонентах. Остановился именно на последнем, т.к. дешевого драйвера с подходящими характеристиками не нашел.

Схема полностью разработана с нуля по классическому варианту Step-Down преобразователя с токовым шунтом для ОС по току. Микропрограмма частично основана на творении AVSel, хотя в итоге от нее осталась только функция регулирования.

Итого получился такой кошмар:

Плата конечного варианта:

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

Внешний вид драйвера:

О непосредственном применении данного драйвера в следующем разделе.

Модификация светодиодного фонаря Petzl Duo

А теперь о том для чего изначально разрабатывался данный драйвер. Изначально он предназначался для установки в фонари линейки Petzl Duo/Duobelt. Именно из-за требуемой гибкости потребовалось завязаться на микроконтроллер.

Примечание: Несмотря на все преимущества светодиодов, до сих пор есть люди, ходящие на карбидных лампах. Причина этого проста: пламя дает теплый, а главное, рассеянный свет. Здесь за основное качество берется не яркость и дальность освещения, а то, что взгляд в любую сторону и под любым углом попадает в освещенный участок, поэтому лучше чувствуется объем и нет "эффекта капюшона". Это единственное преимущество, а вот недостатков у карбидки очень много.

В данных фонарях ставится галогеновая лампа и блок на 5/8/14 светодиодов. В первую очередь, используются именно светодиоды. Блок светодиодов имеет очень низкую эффективность. Даже простой их заменой получается снизить потребление и увеличить яркость свечения фонаря.

Фонарь Duo LED 5 и вовсе ужасает: при новых батарейках потребление около 400мА (т.е. порядка 2.4Вт), при этом сами светодиоды из них получают менее 800мВт (остальное рассеивается на резисторах). Ну а светодиоды - холодные, даже с уходом в синеву, похожи на те, что ставят безымянные ускоглазые друзья в своих творениях за 100 рублей.

В Duo LED 8/14 производитель применил импульсный регулятор. КПД таких схем обычно превышает 70%, к тому же обеспечивается постоянная яркость свечения и контроль за уровнем разряда батареи, что очень удобно. Но сами светодиоды остались такими же низкокачественными и жутко устаревшими, даже на новых партиях фонарей. Такое ощущение, что Petzl закупил большую партию в начале двухтысячных и никак ее израсходовать не может. :)

Модель Duo является подобием конструктора: имеет модульную конструкцию. В начале этот фонарь существовал в варианте с 2 лампами накаливания. Затем одну из них заменили блоком светодиодов (Duo Led 5). В более новых моделях (Duo Led 8 и Duo Led 14) блок светодиодов снабдили умным драйвером с несколькими уровнями яркости (а главное, подняли КПД схемы). В качестве замены галогеновой лампы производителем так же был предложен светодиод, но фонарей в таком варианте так и не выпустили.

Благодаря модульной структуре Petzl Duo, без каких-то переделок в конструкций фонаря можно сделать модуль, заменяющий стандартный блок светодиодов (операция на пару минут). Подобные модули уже существуют, к примеру, этот.

Вот вид переделанного фонаря:

Вот таким образом модуль установлен внутри:

Полевые испытания пройдены, фонарь уже побывал в 5 экспедициях. Из-за конструкции модуля проблем не выявлено.

Логика работы

При включении фонаря устанавливается слабый уровень яркости. Всего существует 3 уровня, переключение происходит в последовательности - слабый-средний-сильный-слабый при помощи кратковременных отключений питания.

В процессе работы происходит постоянный контроль напряжения питания. При снижении напряжения ниже 4.5В (около 1.12В на элемент), фонарь переключается в более слабый режим. В самом слабом режиме, фонарь продолжает работать сохраняя некоторое время стабилизацию яркости свечения. На определенном этапе (при разрядке батарей ниже 3.5В) стабилизация работать перестает и яркость начинает снижаеться.

Свечение сохраняется при снижении напряжения батареи вплодь до 2.6В (около 0.65В на элемент), когда яркость свечения становится столь низкой, что фонарь продолжает светиться, но уже практически ничего не освещает.

Портативный осветитель

Благодаря универсальности схемы, получилось собрать на модуле небольшой в портативный осветитель для использования в качестве подсветки для фотосъемки:

Особенности конструкции: использован контроллер ATtiny13A (логика программы существенно упрощена), для питания установлены 2 Li-ion аккумулятора в формате 18650, светодиодов установлено 2, они включены последовательно.

Как видно, конфигурация довольно сильно отличается, однако аппаратная часть была оставлена прежняя, даже несколько упрощена.

Планы

  1. Добавление возможности работы от 4х Li-Ion 14500. Требует замены входного конденсатора и пересчета делителя. Так же логика защиты от переразряда.
  2. Добавление логики термозащиты, благодаря ей можно будет поднять мощность.
Original: http://igorkov.org/ledriver,
Author: igorkov