Мои вкусняхи

Сводный список записей блога

--->>>> Сводный список записей блога <<<<---

13 февраля 2025

Светодиоды WS2812B и не только...


Коротенькая зарисовка про светодиоды под кодовым названием "WS2812b".

Почему под кодовым? Да потому что, покупая диоды под названием WS2812 на различных торговых площадках-перекупах, мы покупаем неизвестно что. И это "неизвестно что" имеет разные характеристики...

Что вылезло боком у некоторых людей, повторивших мою "звонилку" для поиска КЗ.

Ну и вчера, с подачи коллеги al_vi_sid я таки достал из шкафа все, что у меня там лежит под видом 2812 - и протестировал все эти диоды.

А были у меня диоды на индивидуальных круглых платках, "столбик" из 8 диодов на плате, отдельно купленные россыпью диоды и матрицы 16х16 на гибких платах.

Наборы диодов, которые покупались как WS2812

Берем даташит на WS2812B и читаем временнЫе характеристики:



Из вышеприведенных данных видно, что единичный бит передается длинной "единичкой" и коротким "нулем", нулевой бит - короткой "единичкой" и длинным "нулем". А если "ноль" очень длинный - 50 мкс и более - то это сброс.

Причем для светодиода гораздо более важна длительность "единички", а "нолик" можно растягивать до пары-тройки микросекунд. Несмотря на то, что для сброса указана длительность 50 мкс, я встречал в интернете результаты экспериментов, когда 2812 (или "2812") воспринимал  низкий уровень как сброс при длительности всего от 12-13 мкс.

Итого - единичный бит - "единичка" длительностью 650-950 нс и "нолик" не менее 250 нс,  нулевой бит - "единичка" длительностью 250-550 нс и нолик не менее 650 нс.
И общая длительность одного бита ("нолик" + "единичка") - должна быть 1.25 мкс ±600 нс. Т.е. от  650 нс и до 1.85 мкс... (хотя мне кажется, тут должно быть ±300нс, по 150 нс от "нолика" и от "единички").
В общем, несмотря на кажущуюся жесткость временнЫх интервалов диоды позволяют достаточно сильно от них отклоняться. Опять же, из опытов - важна длительность "единички", а "нолик" можно растягивать сильно.

Это все в теории. А на практике оказалось, что не все так радужно.

Я для тестирования применил следующий алгоритм:

1. сброс 50 мкс
2. вывод 24 бит цвета

Диоды на "столбике", на матрице и на отдельных круглых платках прекрасно заработали по  данному алгоритму. 

А вод отдельно купленные диоды россыпью - нет. 
Тут одно из двух - или диод дохлый, или я что то делаю не так.

В даташите на WS2813 и WS2815 указано, что длительность сброса должна быть не менее 280 мкс. Но это 6-выводные диоды. А у нас 4-выводный. Но попробовать стоит.

Ставлю сброс 300 мкс и светодиод заработал! 
Т.е. это или не 2812, а какой то еще диод, у которого длинный сброс и 4 ноги, или сумрачный гений китайца впихнул в этот корпус чип от 2813...
(Судя по всему те, у кого не заработала "звонилка", тоже купили диоды такого плана с "длинным" сбросом)

Еще есть SK6812. Там сброс от 80 мкс. Но хоть тайминги единичного и нулевого битов почти совпадают с 2812.

Хорошо, экспериментирую дальше. Оказывается, у части этих диодов (напомню, что все куплены как WS2812) есть еще понятие буфера. 
Буфер - это когда полученные 24 бита не загружаются сразу в ШИМ-модуль для отображения, а ждут следующего импульса сброса. И только по сбросу данные из буфера отправляются в ШИМ-модуль.
А если диоды без буфера, то там все сразу - получили 24 бита - отправили их в ШИМ. 

Вот у меня диоды на круглых платках оказались без буфера, а отдельно купленные (которые с длинным сбросом)  и те, что 8 шт. на столбике - с буфером.

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

На самом деле видов программируемых RGB-диодов куча... Но я-то покупал все свои как WS2812... И вправе ожидать от них поведения, соответствующего документации.

5 комментариев:

  1. "… Рекбус, шарада… "А.Райкин.🙂
    Изрядно они меня помучали.Отбили охотку их применять.

    ОтветитьУдалить
    Ответы
    1. А мне нравятся... Особенно если не покупать кота в мешке

      Удалить
    2. "… нравится-не нравится..."дело каждого.Мне достаточно, чтобы один раз не "понравилось".
      Прозвонка отличная, уже выручала найти низкоомную залипуху.Жаль, она просыпается от кнопки, а не от замыкания щупов.Часто, при тестировании"ёкает" сердце", что нет контакта, а просто не включил кнопку!Это часто бывает при длительных поисках.Прозвонка автоматом засыпает, не уследишь!

      Удалить
    3. Спит или не спит - видно по диоду. Для этого ж он и есть. А длительный поиск таймер сбрасывает, если было хотя бы одно замыкание щупов. Я, в основном, только для проверки монтажа микросхем с малым шагом выводов проверяю. Шагаю по ножкам МК и по дорожкам - оно автоматом и выходит замыкание для того что б не спать. Ножка+ своя дорожка - контакт, ножка и соседняя - нет контакта. В основном, только для проверки микросхем и использую.
      Но тут у каждого свой сценарий использования. Каждому свое, как говорится.

      Удалить
    4. Тоже согласен.Поэтому у меня три надежные прозвонки, с разными свойствами, использую их по ситуации.
      Лидер , все таки Shorty Pen, у него уникальные возможности, с очень "нежными"минимальными токами и напряжением.

      Удалить

======= !!! ВНИМАНИЕ !!! ======================================================================
Гугл умный и боится спама. Поэтому иногда ваши комментарии Гугл отправляет мне на премодерацию. Отправлять или нет - решаю не я, а алгоритмы Гугла. Если ваш комментарий не появился сразу, значит я получу уведомление и опубликую ваш комментарий через некоторое время. Я стараюсь это делать достаточно оперативно.