Сколько светодиодов WS2812B можно питать от USB?
Обновлено Редакция GAW
Спецификация USB 2.0 считает питание в единичных нагрузках по 100 мА (раздел 7.2.1). Устройство после подключения — маломощное и может брать одну нагрузку, 100 мА, а после настройки хостом — столько, сколько указало в поле bMaxPower дескриптора конфигурации (раздел 9.6.3), но не больше пяти нагрузок, 500 мА. Arduino Uno в прошивке своего USB-контроллера ATmega16U2 заявляет 100 мА, то есть по правилам USB может рассчитывать именно на них.
Расчёт
По даташиту WS2812B каждый из трёх цветов работает при 12 мА, а схема управления берёт 0,6 мА в покое. Наш расчёт тока одного светодиода:
где k — средняя яркость от 0 до 1.
| Источник | Ток | Белый 100 % (36,6 мА) | Белый 50 % (18,6 мА) | Белый 33 % (12,5 мА) |
|---|---|---|---|---|
| USB 2.0 до настройки | 100 мА | 2 | 5 | 8 |
| USB 2.0, устройство заявило 100 мА (Uno) | 100 мА | 2 | 5 | 8 |
| USB 2.0, устройство заявило 500 мА | 500 мА | 13 | 26 | 40 |
| зарядное устройство 2 А | 2000 мА | 54 | 107 | 160 |
Из этих токов нужно вычесть потребление самого контроллера, поэтому реальный запас меньше. Пересчитать под свою ленту поможет калькулятор WS2812B, а как хост настраивает устройство после подключения и когда оно получает право на 500 мА, рассказывает статья о перечислении USB.
Что будет при перегрузке
По разделу 7.2.1.2.1 спецификации хост и хабы с собственным питанием обязаны иметь защиту от перегрузки по току, которая отключает питание портов, — лента просто погаснет вместе с платой. Слабые блоки и тонкие кабели к тому же проседают по напряжению, а ниже 3,7 В WS2812B выходит за режимы, указанные производителем. Для ленты длиннее пары десятков светодиодов нужен отдельный блок 5 В с запасом, предохранитель на каждую питающую пару и общая земля с контроллером — расчёт блока и проводов выполнит калькулятор светодиодной ленты. Сколько тока можно взять от порта USB-C без Power Delivery, разобрано в ответе «Какой ток можно взять от USB-C без Power Delivery?».
Похожие вопросы
Можно ли питать ленту через вывод 5V платы Arduino?
Ток всё равно идёт от порта USB, а на Uno — ещё и через самовосстанавливающийся предохранитель F1 MF-MSMF050-2 на 500 мА по схеме платы. Сама плата заявляет хосту 100 мА. Для ленты больше пары светодиодов питание подают прямо от блока 5 В, а с платой соединяют только землю и линию данных.
А от зарядного устройства USB на 2 А?
Зарядное устройство не ограничено правилами порта компьютера, и его ток указан на корпусе. 2 А — это около 54 светодиодов на белом полной яркости по нашему расчёту. Провод и разъём тоже должны выдерживать этот ток.
Как ограничить ток программно?
Задать общую яркость так, чтобы средний ток не превысил бюджет. Ток WS2812B пропорционален средней яркости каналов, поэтому при яркости 33 % белый берёт около 12 мА на светодиод, и на 500 мА хватает примерно 40 светодиодов.
Источники
- USB Implementers Forum. Universal Serial Bus Specification, Revision 2.0, April 27, 2000 — 7.2.1 Classes of Devices (с. 171): единичная нагрузка — 100 мА; устройство по умолчанию маломощное и берёт до одной нагрузки, после настройки высокомощное — до пяти; порт с питанием от сети должен давать пять единичных нагрузок; 7.2.1.2.1 — хост и хабы с собственным питанием обязаны иметь защиту от перегрузки по току, отключающую питание портов; 9.6.3 — bMaxPower: наибольший ток устройства от шины в данной конфигурации, в единицах 2 мА
- Worldsemi. WS2812B-V5/W Intelligent control LED integrated light source, datasheet V6.1 (2022-09-08) — характеристики каждого цвета при 12 мА; ток покоя (центральное значение) 0,6 мА; питание +3,7…+5,3 В
- Arduino. ArduinoCore-avr: firmwares/atmegaxxu2/arduino-usbserial/Descriptors.c (LUFA) — дескриптор конфигурации прошивки USB-контроллера ATmega16U2 Arduino Uno: MaxPowerConsumption = USB_CONFIG_POWER_MA(100)
- Arduino. Arduino Uno Rev3 schematic — питание от USB идёт через самовосстанавливающийся предохранитель F1 MF-MSMF050-2 500 мА
Нашли ошибку?
Смотрите также
- Лента WS2812BТок и мощность, время кадра, проверка таймингов SPI
- Перечисление USB (enumeration)Сброс, адрес, дескрипторы, конфигурация
- Светодиодная лентаТок, блок питания, падение вдоль ленты и в проводах, точки питания
- Какой ток можно взять от USB-C без Power Delivery?500/900 мА, 1,5 или 3 А при 5 В — по напряжению на CC