Сколько времени требуется для распространения управляющего сигнала через все светодиоды в полосе ws2812b?

В моем следующем небольшом проекте Arduino я хотел использовать адресные светодиодные полосы RGB. Я провел небольшое исследование и решил использовать полосу с ws2812b. Как правило, я знаю, как это работает, но я не уверен на 100%, что то, что я думаю, правильно. Поэтому, пожалуйста, поправьте меня, если я ошибаюсь.

Для каждого пикселя в полосе нам нужно отправить 24 бита, чтобы управлять им. Если у нас есть 10 пикселей в полосе, нам нужно отправить 240 бит. Затем первый пиксель считывает все 240 бит, устанавливает себе цвет и, наконец, передает остальные 216 бит следующему пикселю. И так до последнего пикселя.

Мне интересно, сколько времени требуется для обновления состояния последнего пикселя в полосе?

Если отправка 24-битного сигнала занимает около 30 мкс (1,25 мкс для 1 бита), значит ли это, что отправка сигналов в последний пиксель в полосе с 10 пикселями займет 300 мкс + 270 мкс + 240 мкс + ... + 30 мкс или это скорее всего 300us?

, 👍1

Обсуждение

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


1 ответ


Лучший ответ:

0

У меня есть страница о чипе WS2812 вместе с предлагаемым способом написания кода просто для это. Он также описывает время.

Задокументированное время для нулевого бита составляет 1150 нс, а для 1-битного — 1300 нс.

Время NeoPixels

Таким образом, если предположить, что все биты включены, то 24 бита займут 24 * 1300 нс, что составляет 31,2 мкс.

Поскольку биты распространяются вдоль полосы, для отправки всех 10 цветов потребуется 10 * 31,2 мкс (312 мкс).

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

Как описано в документации, каждая микросхема "меняет форму". входящего бита, так что любое дрожание или шум в поступающем бите очищаются по мере его пересылки, чтобы отдельные биты не ухудшались при пересылке. Вспомните Chinese_whispers — из-за изменения формы каждым чипом информация не искажается так, как она передается.

Затем вы отправляете 50 мкс 0 В, чтобы зафиксировать новые цвета на всей полосе.

Итак, ответ на ваш вопрос: 362 мкс (примерно).

,