Ну суть такая, есть несколько пар 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 может быть получится, но я пишу на С.


