Перейти к содержанию

Светодиоды 5050 Rgb С Интегрированным Чипом Ws2811


serenbkii

Рекомендуемые сообщения

Здравствуйте товарищи! Недавно появились такие светодиоды, которые позволяют выстроить из себя длинную цепочку с возможностью адресации к конкретному светодиоду для передачи им параметров свечения (видеоэкраны, бегущие строки и т. д.). Передача данных осуществляется по однопроводному интерфейсу. Вот даташит на данную микросхему http://auschristmaslighting.com/wiki_source/images/b/ba/WS2811.pdf. Кто- нибудь сталкивался с ними? Есть предложения как их скооперировать с AVR?ws2812-5050-RGB-LED.jpg

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Вобщем то тема меня заинтересовала, по этому чуток сам почитал. Общий вид такой:

Все микросхемы соединяются в цепочку таким образом:

МК -> DI.LED_1.DO -> DI.LED_2.DO -> ........ -> DI.LED_n.DO -> в воздух

Микросхема начинает принимать данные в размере 24 бит (по 8 бит на каждую компоненту, короче RGB), как только придут 24 первых бита с DI - микросхема их запоминает, и все последующие передачи данных с DI перекидывает на DO (с усилением), т.е. становится прозрачной для сигнала. Поскольку у нас микросхемы включены в цепь друг за другом - первые 24 бита зафиксирует первая микросхема, сделующие 24 бита первая микросхема передаст на DO - они попадут во вторую микру, потом третьи 24 бита пройдут через первую и вторую микросхему (т.к. обе они уже зафиксировали данные) и попадут в третью. Соответственно чтобы снабдить данными всю цепь, нужно передать весь массив полностью. Т.е. общее число бит 24 умноженное на число микросхем (светодиодов) в цепи. Своего рода стек получается. Пока происходит вот такая последовательная загрузка данных, состояние выводов для светодиодов у микросхемы никак не изменяется - т.е. светодиоды светят тем же цветом, как светили до этого... (ну или не светят, если не светили до этого)

После того, как данные полностью загружены во все микросхемы цепи, нужно подать сигнал RESET (на DI имеется ввиду) - тогда все микросхемы одновременно применят загруженные новые настройки и вернутся в исходное состояние - т.е. будут ждать очередной последовательности 24 бит... т.е. в цепь можно будет загружать новые последовательности.

Соответственно такая цепочечная конструкция не имеет адресации, и чтобы добраться например до последней микросхемы (светодиода) - придётся передать корректные данные для всего массива. Т.е. в МК где то должен быть буфер, дублирующий RGB данные по всем светодиодам, и соответственно этот самый буфер должен подаваться на DI. Размер буфера разумеется развен трём байтам, умноженным на число микросхем(светодиодов).

Как следствие цепочку можно делать бесконечной (т.к. сигнал, проходящий сквозь микросхемы получает усиление). Разумеется данная бесконечность ограничена мощностью блока питания и временем, необходимым для передачи полного пакета. Очевидно, что при большом числе светодиодов пакеты будут довольно длинными и соответственно возможная скорость "проигрывания анимации" будет уменьшаться.

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

============================================================================

Осталось только разобрать, как выглядит сигнал на физическом чтоле уровне:

Судя по датащиту для передачи бита нужно по очереди изобразить пару "высокий уровень"->"низкий уровень". Именуются они T0H,Т1H и T0L и Т1L соответственно. Для кодировки бита вот так получается (см датащит):

Передача "0" T0H -> Т0L (длительность высокого уровня 0.5 микросекунд, длительность низкого - 2 микросекунды)

Передача "1" T1H -> Т1L (длительность высокого уровня 1.2 микросекунды, длительность низкого - 1.3 микросекунды)

(отклонение от указанного времени не более 150 наносекнуд)

Передача "сброс" - удержание низкого уровня в течение более чем 50 микросекунд

Эти временные параметры указаны для режима Low speed mode time. Выбор режима осуществляется выводом SET, который в датащите на микру есть, а вот на гибриде со светодиодом не видать. Можно предположить, что он там по умолчанию...

Вероятно пока на DI цепи высокий уровень - можно считать, что система находится в "состоянии покоя", светодиоды светят (ну или не светят),и никто ничего не передаёт.

Но с другой стороны есть подозрения, как бы не оказалось, что нужно постоянно осуществлять передачу данных, т.е. постоянный трафик по цепи - ибо лично не могу понять, как микросхема определяет, что началась передача данных.... тем более в ДШ написано, что как только оно запускается, якобы сразу начинает приём данных. Момент щекотливый и непонятный (мне), я бы разбирался опытным путём. Вариаций не так много....

С неясностями разобрались ниже :)

Фуф, чёт понаписал... :heat:

Изменено пользователем tcoder
Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Вероятно пока на DI цепи высокий уровень - можно считать, что система находится в "состоянии покоя", светодиоды светят (ну или не светят),и никто ничего не передаёт.

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

каждый бит имеет длительность 2.5мкс , начало бита определяется как нарастающий фронт, считывание бита происходит на 1,5мкс , пауза более 50мкс (сброс линии) воспринимается как окончание передачи, и подготовка к приему следующей посылки...

только мне катцо авир не потянет эту штуку по скорости... или нет?

Ссылка на комментарий
Поделиться на другие сайты

каждый бит имеет длительность 2.5мкс , начало бита определяется как нарастающий фронт, считывание бита происходит на 1,5мкс , пауза более 50мкс (сброс линии) воспринимается как окончание передачи, и подготовка к приему следующей посылки...

Т.е. получается, что линия в "состоянии покоя" - находится в низком уровне. Появление фронта является сигналом к тому, чтобы через 1.5мкс принять конкретное стабильное значение бита, и вся передача данных заключается в положении спада до или после отметки фронт+1.5мкс в заданых пределах. А последующее "состояние покоя" после целой пачки битов будет являться продолжением низкого уровня последнего переданного бита, который за одно продержавшись 50мкс+ активизирует сброс всей цепи. Теперь понятно окончательно.

**Только считывание судя по датащиту наверно пораньше происходит чем 1.5мкс, т.к. длительность высокого уровня (параметр T1H) для передачи единицы указано 1.2мкс, значит считывание происходит раньше чем фронт+1.2мкс...

только мне катцо авир не потянет эту штуку по скорости... или нет?

А вот кстати я об этом не подумал тоже :) На вскидку (если не вдаваться в расчёты) вроде бы на 20МГц можно эту задачу решить впритык, ну и вроде были AVR с большей допустимой частотой... (честно говоря не осведомлён, какие AVR бывают, т.к. их не практикую)

Изменено пользователем tcoder
Ссылка на комментарий
Поделиться на другие сайты

А slowpoke mode, я так понимаю, в 2801 был, а из 2811 убрали? Расстроился я недостаточностью авр, не успел их изучить, а они уже с моими задачами не справляются. Увы и ах, что мне теперь на arm переходить?

Ссылка на комментарий
Поделиться на другие сайты

  • 3 месяца спустя...

Нужный сигнал управления можно получить из сигнала SCK SPI, запуская им таймер, длительность импульса которого управляется сигналом MOSI SPI.

Возможно, хватит какой-нибудь RC-цепочки с триггером Шмитта.

И еще я заметил, длительности сигналов WS2811 (ДИП8) и WS2812 (6 pin, со встроенными светодиодами), если верить даташитам, разные.

Изменено пользователем Константин Ы
Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

Нужный сигнал управления можно получить из сигнала SCK SPI, запуская им таймер, длительность импульса которого управляется сигналом MOSI SPI.

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

Программный способ для Ардуино - есть бибилиотека https://github.com/a...afruit_NeoPixel .

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

Изменено пользователем Константин Ы
Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...

получилось у кого нибудь запустить на меге? или на STM32, у меня с stm32 пака совсем туго, нашел только один пример но так и не смог его запустить.

Ссылка на комментарий
Поделиться на другие сайты

  • 2 месяца спустя...

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...