Управление яркостью нескольких RGB светодиодов
- ArtemKuchin
- Поставщик валерьянки для Кота
- Сообщения: 2277
- Зарегистрирован: Вс апр 20, 2008 23:34:26
- Откуда: Москва
- Контактная информация:
Управление яркостью нескольких RGB светодиодов
Не знаю в тот ли раздел.
Ну суть такая, есть несколько пар RGB светодидов. Точнее 4 пары. Каждый канал (R,G,B) для пары управляется отдельно. Каждая пара управляется отдельно. Всего получается: 4х3=12 каналов управления. Точность установки яркости по каждому каналу нужна не менее 127 шагов. Ток светодиодов - 20мА.
Можно было бы просто резисторы поставить и сделать мультиканальный ШИМ (app note AVR136), но проблема в том, что
на светодиодах большой разброс Vf и можно легко получить разброс по токам в 20% и даже более, что просто неприемлимо - надо согласованную цветопередачу делать (ну, более или менее).
Городить источники тока на 12 каналов из рассыпухи - шиза полная. Но найти готовый мультиканальный драйвер (хотя бы на 8 каналов), чтобы на каждый выход можно было устанавливать свою скважность ШИМ и чтобы был доступен прямо сейчас не вышло. Только с доставкой через месяц и заказом от 4 шт (а они по 200р мин). Но не в цене проблема, ждать месяц - ужас.
Нашел один на 3 канала с 3-мя каналами управлением ШИМ. Это как разервный вариант.
Пока есть идея попроще. Взять что-то вроде
http://www.onsemi.com/pub_link/Collateral/CAT4008-D.PDF
- простой мультиканальный источник тока.
На на каждый выход еще повесить MOSFET и дергать на нем ШИМ (частота 100-1000 Гц, как получится) с МК.
Главный вопрос, не сведет ли это сам драйвер с ума, что у него то есть выход, то нет. Определения размыкания выхода там нет, он тупой драйвер, что и надо в этом случае. Но как там будет при этом вести себя источник тока - непонятно.
Вдруг он там полчаса нарастать будет, потом падать, дергать напряжение немерянно при вырубании транзистора и делать какие-то другие гадости.
Или можно туда посылвать данные по сериному протоколу с такой скоростью, чтоб эмулировать ШИМ на входе. Но мне кажется, со скорости у атмеги не хватит. чтобы получить при этом хотя бы 127 шагов т частоту регенрации в 100Гц.
127 шагов на кажтый период шипа, это получается надо иметь частоту исходной обработки сигнала шим 100*127=12700 Гц.
При частоте в 8 МГЦ получаем 629 тактов на обработку каждого такта ШИМ. А каналов то 12! Т.е. 50 тактов на канал и за это время надо успеть загрузит данные на сериную шину. посчитать все. Не выглядит реальным. Если ло 20МГ поднять, то на ASM может быть получится, но я пишу на С.
Ну суть такая, есть несколько пар RGB светодидов. Точнее 4 пары. Каждый канал (R,G,B) для пары управляется отдельно. Каждая пара управляется отдельно. Всего получается: 4х3=12 каналов управления. Точность установки яркости по каждому каналу нужна не менее 127 шагов. Ток светодиодов - 20мА.
Можно было бы просто резисторы поставить и сделать мультиканальный ШИМ (app note AVR136), но проблема в том, что
на светодиодах большой разброс Vf и можно легко получить разброс по токам в 20% и даже более, что просто неприемлимо - надо согласованную цветопередачу делать (ну, более или менее).
Городить источники тока на 12 каналов из рассыпухи - шиза полная. Но найти готовый мультиканальный драйвер (хотя бы на 8 каналов), чтобы на каждый выход можно было устанавливать свою скважность ШИМ и чтобы был доступен прямо сейчас не вышло. Только с доставкой через месяц и заказом от 4 шт (а они по 200р мин). Но не в цене проблема, ждать месяц - ужас.
Нашел один на 3 канала с 3-мя каналами управлением ШИМ. Это как разервный вариант.
Пока есть идея попроще. Взять что-то вроде
http://www.onsemi.com/pub_link/Collateral/CAT4008-D.PDF
- простой мультиканальный источник тока.
На на каждый выход еще повесить MOSFET и дергать на нем ШИМ (частота 100-1000 Гц, как получится) с МК.
Главный вопрос, не сведет ли это сам драйвер с ума, что у него то есть выход, то нет. Определения размыкания выхода там нет, он тупой драйвер, что и надо в этом случае. Но как там будет при этом вести себя источник тока - непонятно.
Вдруг он там полчаса нарастать будет, потом падать, дергать напряжение немерянно при вырубании транзистора и делать какие-то другие гадости.
Или можно туда посылвать данные по сериному протоколу с такой скоростью, чтоб эмулировать ШИМ на входе. Но мне кажется, со скорости у атмеги не хватит. чтобы получить при этом хотя бы 127 шагов т частоту регенрации в 100Гц.
127 шагов на кажтый период шипа, это получается надо иметь частоту исходной обработки сигнала шим 100*127=12700 Гц.
При частоте в 8 МГЦ получаем 629 тактов на обработку каждого такта ШИМ. А каналов то 12! Т.е. 50 тактов на канал и за это время надо успеть загрузит данные на сериную шину. посчитать все. Не выглядит реальным. Если ло 20МГ поднять, то на ASM может быть получится, но я пишу на С.
Долой идиотизм!
- Реклама
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: Управление яркостью нескольких RGB светодиодов
может просто взять 2 МК - например mega48 и связать их к примеру по SPI (как раз 12 каналов аппаратного ШИМа)
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: Управление яркостью нескольких RGB светодиодов
может просто взять 2 МК - например mega48 и связать их к примеру по SPI (как раз 12 каналов аппаратного ШИМа)
- ArtemKuchin
- Поставщик валерьянки для Кота
- Сообщения: 2277
- Зарегистрирован: Вс апр 20, 2008 23:34:26
- Откуда: Москва
- Контактная информация:
Re: Управление яркостью нескольких RGB светодиодов
Вы не проняли проблему. Шим - шимом. Сделать мильон каналов шима - не проблема. МК-ши tiny рупль - горстка. ТОК чем регулировать? Просто резисторы не прокатывают.
Долой идиотизм!
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18647
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Управление яркостью нескольких RGB светодиодов
очень резкое и опрометчивое заявление. сделайте хотя бы 100 и покажите результат! чтобы выжать из одного МК 24 канала ШИМ (речь об AVR) надо быть виртуозом ассемблера...ArtemKuchin писал(а):Сделать мильон каналов шима - не проблема. МК-ши tiny рупль - горстка.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Реклама
Re: Управление яркостью нескольких RGB светодиодов
1 МК - 1 ШИМ - 1 Драйвер LED(Или просто источник тока) -12 MOSFET-1 Счетчик, для экономии ножек МК
- ArtemKuchin
- Поставщик валерьянки для Кота
- Сообщения: 2277
- Зарегистрирован: Вс апр 20, 2008 23:34:26
- Откуда: Москва
- Контактная информация:
Re: Управление яркостью нескольких RGB светодиодов
Я не говорил что на ОДНОМ МК! КЛючевая фраза: "МК-ши tiny рупль - горстка"ARV писал(а):очень резкое и опрометчивое заявление. сделайте хотя бы 100 и покажите результат! чтобы выжать из одного МК 24 канала ШИМ (речь об AVR) надо быть виртуозом ассемблера...ArtemKuchin писал(а):Сделать мильон каналов шима - не проблема. МК-ши tiny рупль - горстка.
Мультиплексировать источник тока? Тут все не так все просто. Во-первых это означает совсем другой режим работы светодиодов и другие токи. Т.е. вместое 20мА постоянного тока нужо иметь 100 мА, иначе яркость ниже плинтуса.Psych писал(а):1 МК - 1 ШИМ - 1 Драйвер LED(Или просто источник тока) -12 MOSFET-1 Счетчик, для экономии ножек МК
Если использовать реальный драйвер с ШМИМ входом, то мой вопрос остается в силе - как он будет себя вести при постоянном передергивании выхода (то подключен, то нет). Если использоватьй свой источник тока (причем линейный), то должно, конечно все получится. Вообзе мысль интересная, надо попробовать подумать ее, тепловыделение посчитать и источник нормальный подобрать. Спасибо.
Долой идиотизм!
- BCluster
- Собутыльник Кота
- Сообщения: 2512
- Зарегистрирован: Пн апр 06, 2009 19:33:29
- Откуда: Молдова, Кишинев
- Контактная информация:
Re: Управление яркостью нескольких RGB светодиодов
а техаз инструментс вам сэмплы не шлють? Нам за 3 дня любые (: у них там куча драйверов есть
Re: Управление яркостью нескольких RGB светодиодов
Сории, но я здесь не понял(((. Почему другой режим? И Другие токи? Это из за того что светодиоды будут работать поочереди? Или из-за мосфетов?ArtemKuchin писал(а): Мультиплексировать источник тока? Тут все не так все просто. Во-первых это означает совсем другой режим работы светодиодов и другие токи. Т.е. вместое 20мА постоянного тока нужо иметь 100 мА, иначе яркость ниже плинтуса.
А что если нагрузить драйвер уже чем нибудь, чтоб в холостую не пахал?! Пусть пашет на нагрузку и мосфеты.ArtemKuchin писал(а): Если использовать реальный драйвер с ШМИМ входом, то мой вопрос остается в силе - как он будет себя вести при постоянном передергивании выхода (то подключен, то нет). Если использоватьй свой источник тока (причем линейный), то должно, конечно все получится. Вообзе мысль интересная, надо попробовать подумать ее, тепловыделение посчитать и источник нормальный подобрать. Спасибо.
А можно поподробней, как это правильнее сделать?BCluster писал(а):а техаз инструментс вам сэмплы не шлють? Нам за 3 дня любые (: у них там куча драйверов есть
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18647
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Управление яркостью нескольких RGB светодиодов
да вы сделайте хоть на куче МК 100 каналов - вот ключевое слово. для горстки МК потребуется протокол связи, и окажется, что рублевые (кстати, где вы их нашли? чуть меньше доллара штука вообще-то) тиньки не тянут... и т.д. и т.п.ArtemKuchin писал(а):Я не говорил что на ОДНОМ МК! КЛючевая фраза: "МК-ши tiny рупль - горстка"
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
-
Radan
- Мучитель микросхем
- Сообщения: 465
- Зарегистрирован: Ср июн 21, 2006 08:24:32
- Откуда: Лисичанск
- Контактная информация:
Re: Управление яркостью нескольких RGB светодиодов
ШИМ ШИМу рознь. И в количестве бит, и в частоте... А для светодиодов на Меге16 сделать 32 канала 8-битного ШИМа не нужно быть виртуозом ассемблера. Можно просто на бейсике написать - http://lightportal.at.ua/publ/dekorativ ... a/14-1-0-2 . И разрядность там реально можно повысить. А вот при 10 битах и выше уже можно и разброс параметров светодиодов компенсировать.ARV писал(а):очень резкое и опрометчивое заявление. сделайте хотя бы 100 и покажите результат! чтобы выжать из одного МК 24 канала ШИМ (речь об AVR) надо быть виртуозом ассемблера...ArtemKuchin писал(а):Сделать мильон каналов шима - не проблема. МК-ши tiny рупль - горстка.
- ArtemKuchin
- Поставщик валерьянки для Кота
- Сообщения: 2277
- Зарегистрирован: Вс апр 20, 2008 23:34:26
- Откуда: Москва
- Контактная информация:
Re: Управление яркостью нескольких RGB светодиодов
Ну для поставленно задачи связи по SPI или TWI хватит за глаза. Рупль, доллар - один хрен.ARV писал(а):да вы сделайте хоть на куче МК 100 каналов - вот ключевое слово. для горстки МК потребуется протокол связи, и окажется, что рублевые (кстати, где вы их нашли? чуть меньше доллара штука вообще-то) тиньки не тянут... и т.д. и т.п.ArtemKuchin писал(а):Я не говорил что на ОДНОМ МК! КЛючевая фраза: "МК-ши tiny рупль - горстка"
Radan:
Посмотрел исходник. Любопытное решение "в лоб". Только вот большой вопрос, какая же там частота шима реально + частота смены каналов. Все как-то плывет. Но верю, что работает, я так делал, но больше так делать не хочу.
Долой идиотизм!
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18647
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Управление яркостью нескольких RGB светодиодов
хрен-то может и один (хотя лично я в курсе, что их больше, например, японский хрен васаби тоже есть), а вот вы возьмите и нарисуйте хотя бы схему на тех самых "однохренных" тиньках для управления сотней RGB. поверьте, я знаю, что говорю - это непросто, особенно с SPI, тем более что SPI и TWI далеко не во всех тиньках имеются.ArtemKuchin писал(а):Ну для поставленно задачи связи по SPI или TWI хватит за глаза. Рупль, доллар - один хрен.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- ArtemKuchin
- Поставщик валерьянки для Кота
- Сообщения: 2277
- Зарегистрирован: Вс апр 20, 2008 23:34:26
- Откуда: Москва
- Контактная информация:
Re: Управление яркостью нескольких RGB светодиодов
Это конечно уже все не по теме но все же. А в чем проблема соединить линией SPI 100500 тиней (С SPI-ем) и сделать одну управляющую, которую все будут слушать, чего она им говорит показывать? Это, конечно, в приложении к моей задаче. Хотя мне сколько шимов не требуется.ARV писал(а):хрен-то может и один (хотя лично я в курсе, что их больше, например, японский хрен васаби тоже есть), а вот вы возьмите и нарисуйте хотя бы схему на тех самых "однохренных" тиньках для управления сотней RGB. поверьте, я знаю, что говорю - это непросто, особенно с SPI, тем более что SPI и TWI далеко не во всех тиньках имеются.ArtemKuchin писал(а):Ну для поставленно задачи связи по SPI или TWI хватит за глаза. Рупль, доллар - один хрен.
Долой идиотизм!
- ArtemKuchin
- Поставщик валерьянки для Кота
- Сообщения: 2277
- Зарегистрирован: Вс апр 20, 2008 23:34:26
- Откуда: Москва
- Контактная информация:
Re: Управление яркостью нескольких RGB светодиодов
Последние вести с фронта 
Итак, светодиоды выбраны: RGB с общим катодом. Так уж вышло.
Крутой драйвер я пока передумал использовать. Дорого и долго ждать.
Проблемы:
1) Разброс Vf дикий (от 2.8 до 4 для синего, например)
2) Разброс светимости при одном токе (20мА) - +- 50%!!!
3) Серийно их не запитаешь, всего получается 24 канала. Да и нельзя, так как каждый диод требует отдеьлной калибровки (см ниже).
Из пунктов 1 и 2 следуют, что требуется клибровка интенсивности для каждого излучателя в каждом светодиоде. Причем высокоточная! Паять тучу резисторов смотреть и перепаивать - нереально. На "глазов" откалибровать смотря в сам диод - нереально - слишком ярко. Только если раскидать на площадь и сравнивать с другими, тогда можнро как-то на глаз.
Все это значит, что надо говорить много-много-битовый шим, чтобы еще на главную регулировку осталось минимум 7 бит.
Т.е. надо брать 16 битовый таймер и шимить им и через интефейс калибровки (кнопочками) подводить каждый цвет на глаз к одной интенсивности уже на месте.
Чтобы сократить разброс из-за dVf и оставить больше значащих бит в шиме для планируется использовать источник тока на 100мА, который будет перелючаться MOSFET-ами на светодиоды. Таким образом остается только разброс по свечению.
Источник тока будет один, мультиплексированный по светодиодам. Т.е. каждый светодиод будет светить 1/24 времени высокочастотным шимом (килогерцы). Но сворее всего их будет два и два шим канала, чтобы каждый был 1/12. Тут есть вопрос. Если по спецификации диод можно светить на 100мА при скважности 10%, значит ли это автоматом. что им же можно светить на 200мА при скважности 5%? Если так, то можно сделать источник на 200мА и светить в режиме 1/24.
Я все это хотел на атмеге 88 или 8 построить. Но там ног не хватает. Варианта два - переходит на атмегу 16 илм поставить пару демультиплексоров (на 8 и на 16 каналов) и чепез них сигнал подавать.
В теории, можно построить калибратор на основе одного из этих же светодиодов. Но это в теории. Если глах хватит, то и на фиг калибратор.
Итак, светодиоды выбраны: RGB с общим катодом. Так уж вышло.
Крутой драйвер я пока передумал использовать. Дорого и долго ждать.
Проблемы:
1) Разброс Vf дикий (от 2.8 до 4 для синего, например)
2) Разброс светимости при одном токе (20мА) - +- 50%!!!
3) Серийно их не запитаешь, всего получается 24 канала. Да и нельзя, так как каждый диод требует отдеьлной калибровки (см ниже).
Из пунктов 1 и 2 следуют, что требуется клибровка интенсивности для каждого излучателя в каждом светодиоде. Причем высокоточная! Паять тучу резисторов смотреть и перепаивать - нереально. На "глазов" откалибровать смотря в сам диод - нереально - слишком ярко. Только если раскидать на площадь и сравнивать с другими, тогда можнро как-то на глаз.
Все это значит, что надо говорить много-много-битовый шим, чтобы еще на главную регулировку осталось минимум 7 бит.
Т.е. надо брать 16 битовый таймер и шимить им и через интефейс калибровки (кнопочками) подводить каждый цвет на глаз к одной интенсивности уже на месте.
Чтобы сократить разброс из-за dVf и оставить больше значащих бит в шиме для планируется использовать источник тока на 100мА, который будет перелючаться MOSFET-ами на светодиоды. Таким образом остается только разброс по свечению.
Источник тока будет один, мультиплексированный по светодиодам. Т.е. каждый светодиод будет светить 1/24 времени высокочастотным шимом (килогерцы). Но сворее всего их будет два и два шим канала, чтобы каждый был 1/12. Тут есть вопрос. Если по спецификации диод можно светить на 100мА при скважности 10%, значит ли это автоматом. что им же можно светить на 200мА при скважности 5%? Если так, то можно сделать источник на 200мА и светить в режиме 1/24.
Я все это хотел на атмеге 88 или 8 построить. Но там ног не хватает. Варианта два - переходит на атмегу 16 илм поставить пару демультиплексоров (на 8 и на 16 каналов) и чепез них сигнал подавать.
В теории, можно построить калибратор на основе одного из этих же светодиодов. Но это в теории. Если глах хватит, то и на фиг калибратор.
Долой идиотизм!
Re: Управление яркостью нескольких RGB светодиодов
Скорее всего да. Импульсный ток светодиода пропорционален скваженности шима.ArtemKuchin писал(а): Если по спецификации диод можно светить на 100мА при скважности 10%, значит ли это автоматом. что им же можно светить на 200мА при скважности 5%? Если так, то можно сделать источник на 200мА и светить в режиме 1/24.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18647
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Управление яркостью нескольких RGB светодиодов
а если сделать 10 Ампер в импульсе и светить со скважностью 1/1200?Psych писал(а):Скорее всего да. Импульсный ток светодиода пропорционален скваженности шима.ArtemKuchin писал(а): Если по спецификации диод можно светить на 100мА при скважности 10%, значит ли это автоматом. что им же можно светить на 200мА при скважности 5%? Если так, то можно сделать источник на 200мА и светить в режиме 1/24.
это я к тому, что существует предельное значение импульсного тока, превышать которое нельзя в любом случае.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- ArtemKuchin
- Поставщик валерьянки для Кота
- Сообщения: 2277
- Зарегистрирован: Вс апр 20, 2008 23:34:26
- Откуда: Москва
- Контактная информация:
Re: Управление яркостью нескольких RGB светодиодов
В даташите Maximum Pulse Forward Current при 1/10 пульса - 100мА.
Классика.
Но это же при 1/10, а не вообще максимум.
Так что несовсем и понятно.
Классика.
Но это же при 1/10, а не вообще максимум.
Так что несовсем и понятно.
Долой идиотизм!
- ArtemKuchin
- Поставщик валерьянки для Кота
- Сообщения: 2277
- Зарегистрирован: Вс апр 20, 2008 23:34:26
- Откуда: Москва
- Контактная информация:
Re: Управление яркостью нескольких RGB светодиодов
Рассуждение о шим каналах для себя и для ARV 
Предположим мы хотим 24 канала ШИМ, с частотой 100Гц и разрешением 12 бит.
Есть атмега 16 МГЦ.
Не считаем общий код, считает все на каждый канала на каждый бит и т.д.
Итак, всего у нас есть 16000000 тактов в секунду.
16000000/24 = 666667 тактов на 1 канал в секунду
666667/100 = 6667 тактов на 1 канал за один период 100герцового шима
разрешение 12 бит, это 4096 возможных соотношений включенной части и выключеной по продолжительно времени.
Т.е. каждый период шима надо 4096 пересчитывать значение ШИМ канала. чтобы понять, пока включать или пора выключать его.
Имеем
6667/4096=1.6 такта на 1 канал на один пересчет
Вывод: такой один МК не тянет 100%
ARV: правильный ли у меня ход мысле и вывод?
А вообще, мне кажется, 100-500 шим каналов на нормальной частоте и с хорошим разрешением проще всего сделать на копеешной CPLD. Я правда с ними совсем не игрался еще.
Предположим мы хотим 24 канала ШИМ, с частотой 100Гц и разрешением 12 бит.
Есть атмега 16 МГЦ.
Не считаем общий код, считает все на каждый канала на каждый бит и т.д.
Итак, всего у нас есть 16000000 тактов в секунду.
16000000/24 = 666667 тактов на 1 канал в секунду
666667/100 = 6667 тактов на 1 канал за один период 100герцового шима
разрешение 12 бит, это 4096 возможных соотношений включенной части и выключеной по продолжительно времени.
Т.е. каждый период шима надо 4096 пересчитывать значение ШИМ канала. чтобы понять, пока включать или пора выключать его.
Имеем
6667/4096=1.6 такта на 1 канал на один пересчет
Вывод: такой один МК не тянет 100%
ARV: правильный ли у меня ход мысле и вывод?
А вообще, мне кажется, 100-500 шим каналов на нормальной частоте и с хорошим разрешением проще всего сделать на копеешной CPLD. Я правда с ними совсем не игрался еще.
Долой идиотизм!
- Engineer_Keen
- Друг Кота
- Сообщения: 3872
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: Управление яркостью нескольких RGB светодиодов
Мда, великоваты требования для одного AVR. Наверное максимум что можно получить при 16МГц для 24 каналов это ~60Гц@10бит (проверял на 2313+595 регистры). Зато 8битный ШИМ зашкаливает за 300Гц 


