Последовательное соединение большого кол-ва tlc5940
- Войдите на сайт для отправки комментариев
Дети сподвигли сделать новый LCD куб...
Теперь это RGB 12х12х12
начал проектировать схему. Остановился на варианте с 27 tlc5940.
Собрал прототип на трех чипах. Поднял его с ардуино UNO и известной библиотекой TLC5940.
Первые эксперименты показались убедительными.
Но оказалось, что библиотека не работает при увеличении числа чипов более 16.
Возможно это ограничения UNO, а на более скоростных моделях будет работать?...
Проверить у меня пока нет возможности.
Однако появилась мысль разделить весь банк чипов (27шт) на 3 по 9...
по 9 на RED, GREEN и BLUE и программировать их по очереди.
Но тут другая проблема. Библиотека работате с четко прописанными пинами и не предполагает их изменения, тем более на лету.
Как сделать возможным работу с тремя банками по 9 чипов
с одним ардуино и библиотекой TLC5940?
Поделитесь идеями, у кого они есть...
Сталкивался при проектировании часов - нужно второй раз вызвать конструктор для новых 16 и использовать дополнительный пин для чип селекта.
А там в библиотеке я не нашел никаких конструкторов...
Она просто тупо работает с казанными пинами
MAX7219 - обслуживают матрицу светодиодную 8х8 = 64 диода и линкуются без проблем. Работал с ними когда делал дисплей было слинковано 6 штук. информация на них отправляется последовательно.
64 больше чем 16 - значит нужно будет меньше микросхем.
12х12 = 144 * 3(rgb) = 432 диода
7шт MAX7219 понадобится. Это хорошо, но...
Но мне бы с ШИМ нужно...
Я уже остановился на TLC5940.
Задача: запустить!
Max7219 с шим, можно задавать яркость от 0 до 15, на все 64 светодиода выставляется одна яркость
C Max7219 можно использовать внешний ШИМ вместо задающего резистора. Отлично работает.
Конструктор - имел ввиду конструкцию языка С++ создающую новый объект описанный в библиотеке
Зачем внешний шим делать поверх встроенного?
Если хочется более плавной регулировки яркости. Днем самая яркая слишком тускло или ночью самая тусклая слишком ярко.
По даташиту возможно последовательное подключение до 40 устройств
Figure 22 shows a cascading connection of n TLC5940 devices connected to a controller, building a basic module of an LED display system. The maximum number of cascading TLC5940 devices depends on the application system and is in the range of 40 devices. Equation 10 calculates the minimum frequency needed:
Спасибо, SDS! Я мечтал в этом направлении, но по моему все уперлось дествительно в недостаточную частоту (16 мгц).
Сейчас посчитаем....
куб 12х12х12 rgb
Слой: 144 диода, но RGB значит х3 = 432
нужно 432/16 = 27 чипов tlc5940. Это не 40, что уже радует.
Далее....
Частота мультиплексирование слоев должна быть не менее 1500 гц а лучше 1750-2000 гц
Посчитаем с 2000 гц
Частота обновления кадра 2000/12 = 166 гц время на построение кадра должно быть не более
6 мс. Вот!
То есть за эти 6 мс контроллер должен залить данные в 27 чипов аж 12 раз.
Цифры вроде подъемные... или я чего не так посчитал?
Но тут другое.
В библиотеке про ограничения ни слова нет. В тексте (бегло) я явных ограничений не увидел.
Но в эксперименте (я собрал последовательность из 3 чипов) стал менять библиотечное число чипов.
16 еще работает, а далее 17 глюки, 18 глюки, а далее вообще тишина. Светодиоды не светятся.
Возможно там программирование таймеров выполняется исходя из числа чипов. Пойду почитаю либу еще.
Интересно, а существует параллельное соединение TLC5940? НУ по типу параллельного соединения SPI устройств.
Там правда есть нога "выбора раба" SS, а у TLC5940 такой ноги нет.
Со "стандартной" либой у меня отношения не сложились :)
Погуглите доку "Demystifying-the-TLC5940.pdf". Там вся работа с ней разобрана до мелочей. Сам пользуюсь одним из примеров из этой pdf, адаптированным под собственные нужды. Но с таким количеством чипов дел не имел.
Кстати, там же, в приложениях, есть схема по подключению RGB LED к TLC с задействованием 1 выхода TLC. Но, насколько вижу, за счет потери ШИМа между цветами одного LED. Т.е. нельзя установить отдельно яркость конкретного цвета конкретного led - все цвета одного led регулируются одновременно
>> Слой: 144 диода, но RGB значит х3 = 432
Так у Вас ведь еще и 12 слоев! Итого 432*12=5184 led
Или как-то надо переключать эти 27 TLC между слоями LED. Пока не понимаю как это сделать, но на частоту обновления картинки с целом это явно не будет влиять лучшим образом
>> Интересно, а существует параллельное соединение TLC5940?
Похоже, что нет. Да и принципом работы этой и им подобных IC это исключается.
А так - еще 5 проводков с МК и вот параллельная схема. Но сам не проверял :)
Только SPI уже заюзать не получится. Возвращаю Вас все к той же "Demystifying-the-TLC5940.pdf"
В достаточной стеепени вкуриться в задачу не получается ввиду нехватки времени, поэтому просто выскажу еще мысли, а Вы уж сами дальше разрывайте ...
Да и сам я "только учусь" :)
У меня в коде и в стандартной либе SPI настраивается как "SPI, Master, set clock rate fck/2". Т.е. частота уже меньше в 2 раза
В либе, кстати, есть настройки "точности" ШИМа. Если не гнаться за 12-ти кратной плавной настройкой, то ширину пакета данных (16 каналов * разрядность ШИМ) можно уменьшить, тем самым пропихнув больше данных при тех же 16МГц. Наверное, можно
Ну и где-то в таймере может быть дело. Возможно, до 17-го чипа просто дело не доходит и все обрубается (выходит на новый цикл) ранее
Еще нужно посмотреть на разрядность типов данных для переменных. 16 - слишком круглое число :) Вполне, где-нибудь есть переменная, в которую данные просто не влезают и тогда получаются крутые глюки по программе с прегрешениями на все вокруг, кроме самой программы
Demystifying the TLC5940...читаю.
Автор крут! Классно все излагает. Понятие приходит налету.
Надо попробовать запустить его либу и попробовать под ней.
Это мне в ардуине нужно сначала перепрошить fuse CLKO.
Сейчас займусь!!!
Офтоп:
Еще одно доказательство что в ардуино многие траблы из-за жуткой экономии на памяти и ее постоянной нехватке, неужели производителю настолько дороже было встроить в проц, например Atmega328 хотяб 128 кил?
РАботает все...
1 вариант есть....
теперь займусь Demystifying the TLC5940
Спасибо за совет!
Библиотека впечатлила своей простотой, внятностью и мощью...
Запустил я всю эту байду на ардуине...Написал несколько скетчей тестовых...
указал 27 чипов...все летает. Правда я не включил пока все 27 чипов, но не думаю, что и с ними все будет почти так же. ибо у них быстродействие до 30 мгц, т.е. они не должны вызвать физической задержки.
Хотя может быть я и не прав.
В любом случае тема банков отпала. все 27 включу в серию.
А либа кайфовая. Респект Мэтью Пандине.
А книгу надо бы на русский перевести и как пособие наглядное торжества разума над микросхемами выложить...
Спасибо за совет!
Библиотека впечатлила своей простотой, внятностью и мощью...
Запустил я всю эту байду на ардуине...Написал несколько скетчей тестовых...
Как поживает ваш RGB Led Cube, доделали ?
С Вами можно приватно связаться ?
Есть несколько вопросов...
Мой E-Mail: fastcat@land.ru
Пишу в личку...
Пишу в личку...
Пишу в личку...
Финал....Апофеоз!!!
https://www.youtube.com/watch?v=XVlsx6g5pds