Питание от шины USB (bus-powered и self-powered)
Устройство USB может жить целиком от кабеля, а может иметь свой блок питания и брать от шины только на интерфейс. Спецификация USB 2.0 делит устройства по этому признаку на классы и для каждого задаёт, сколько тока и когда можно взять от VBUS.
Обновлено Редакция GAW
Питание от шины (bus-powered) и собственное питание (self-powered) — два способа, которыми устройство USB получает энергию. Устройство с питанием от шины целиком живёт от линии VBUS кабеля. Устройство с собственным питанием имеет свой источник и берёт от VBUS не больше одной единицы нагрузки — на интерфейс USB. От класса зависит, сколько тока и когда можно потреблять, и это устройство обязано честно объявить хосту в дескрипторе.
Единица нагрузки и классы устройств
Спецификация USB 2.0 считает ток единицами нагрузки (в тексте спецификации — unit load) по 100 мА (разд. 7.2.1). Это абсолютный максимум, а не среднее за период. Все устройства после подключения считаются маломощными; разрешение брать больше даёт программа хоста при выборе конфигурации.
| Класс по разд. 7.2.1 | До конфигурации | После конфигурации |
|---|---|---|
| Маломощная функция с питанием от шины | до 100 мА | до 100 мА |
| Мощная функция с питанием от шины | до 100 мА | до 500 мА |
| Функция с собственным питанием | до 100 мА от VBUS на интерфейс | до 100 мА от VBUS, остальное — свой источник |
| Хаб с питанием от шины | до 100 мА | до 500 мА на всё, а на каждый свой порт даёт по 100 мА |
Хаб с собственным питанием обязан давать на каждый порт пять единиц, 500 мА; хаб с питанием от шины — только одну, поэтому мощное устройство в нём не заработает.
Маломощная функция должна работать уже при 4,40 В на своём конце кабеля, мощная — перечисляться при 4,40 В и выходить на полную мощность при 4,75 В (разд. 7.2.1.3–7.2.1.4). Мощному устройству поэтому не стоит рассчитывать на полные 5 В: от разъёма до его входа уже просело напряжение кабеля.
Как устройство объявляет класс
В дескрипторе конфигурации (табл. 9-10) два поля:
- bmAttributes, бит D6 — Self-powered: 1, если у конфигурации есть свой источник; бит D5 — поддержка remote wakeup; бит D7 всегда равен 1.
- bMaxPower — наибольший ток от шины в этой конфигурации, в единицах 2 мА: 50 — это 100 мА, 250 — 500 мА.
Если хост не может дать столько, сколько записано в bMaxPower, — например, устройство на 500 мА включили в хаб с питанием от шины, — он не выберет эту конфигурацию, и устройство останется ненастроенным. Ток считают с запасом: в него входят стабилизатор, светодиоды и всё, что питается от VBUS.
Что ещё требует спецификация
- До конфигурации — одна единица. Пока хост не выбрал конфигурацию по итогам перечисления, устройство берёт не больше 100 мА; включать мощную нагрузку можно только после этого.
- Приостановка. Устройство с питанием от шины обязано обнаруживать отсутствие активности на шине и снижать потребление — см. приостановка USB. По поправке Suspend Current предел — 2,5 мА, у настроенного хаба с питанием от шины — 12,5 мА.
- Стабилизатор. Микроконтроллер на 3,3 В питают от VBUS через стабилизатор: так, для STM32F4 RM0090 прямо требует внешний стабилизатор, который делает VDD из VBUS (разд. 34.5).
- Бросок тока. Регулятор устройства с собственным питанием, который питает интерфейс от VBUS, тоже ограничивает пусковой ток (разд. 7.2.1.5).
- Ток только в одну сторону. Никакое устройство не отдаёт ток в VBUS своего восходящего порта — это касается прежде всего устройств с собственным питанием.
Токи зарядных портов BC 1.2, USB 3.x и Type-C в эту схему не входят и задаются своими спецификациями; сравнительная таблица — в статье об USB.
Частые вопросы
Сколько тока можно взять от USB 2.0?
До конфигурации — не больше одной единицы нагрузки, 100 мА, даже если порт может дать больше. После того как хост выбрал конфигурацию, мощное устройство может брать до пяти единиц, 500 мА, если столько заявлено в bMaxPower. Числа — абсолютный максимум, а не среднее (разд. 7.2.1 USB 2.0). Зарядные порты и Type-C дают больше по своим спецификациям.
Что указывать в bMaxPower?
Наибольший ток, который устройство возьмёт от шины в этой конфигурации, в единицах по 2 мА: 50 означает 100 мА, 250 — 500 мА (табл. 9-10). Если в дескрипторе 500 мА, а порт даёт только 100 мА — например, хаб с питанием от шины, — хост эту конфигурацию не выберет. Устройство с собственным питанием указывает, сколько берёт от VBUS на интерфейс.
Можно ли устройству с собственным питанием брать ток от VBUS?
Можно, но не больше одной единицы нагрузки — 100 мА, и только на интерфейс USB, чтобы хост мог обнаружить и перечислить устройство при выключенном основном источнике (разд. 7.2.1.5). Остальное питание идёт от своего источника. Отдавать ток в VBUS устройство не может ни в каком режиме.
Источники
- USB Implementers Forum. Universal Serial Bus Specification, Revision 2.0 (April 27, 2000) — разд. 7.2.1: единица нагрузки (unit load) — 100 мА, число единиц — абсолютный максимум, а не среднее; маломощное устройство — одна единица, мощное — до пяти; все устройства по умолчанию маломощные, переход к большему току — под управлением ПО; хабы: с питанием от шины берут одну единицу при включении и до пяти после конфигурации, дают одну единицу на порт; с собственным питанием дают пять единиц на порт; маломощная функция с питанием от шины — не больше одной единицы всегда; мощная — одна единица при включении и до пяти после конфигурации; функция с собственным питанием может брать от VBUS до одной единицы, чтобы работал интерфейс USB; ни одно устройство не отдаёт ток в VBUS; до конфигурации ток не больше одной единицы; устройство с питанием от шины обязано обнаруживать отсутствие активности и уходить в приостановку; разд. 7.2.1.3–7.2.1.5: маломощная функция работает от 4,40 В, мощная — в маломощном режиме от 4,40 В и на полной мощности от 4,75 В; у функции с собственным питанием регулятор интерфейса ограничивает бросок тока; табл. 9-10: bmAttributes D6 — Self-powered, D5 — Remote Wakeup, D7 = 1; bMaxPower — максимальный ток от шины в этой конфигурации в единицах 2 мА (50 = 100 мА); конфигурация с питанием и от шины, и от своего источника указывает ненулевой bMaxPower и ставит D6
- USB Implementers Forum. Engineering Change Notice «Suspend Current Limit Changes» to USB 2.0 — ток приостановки 2,5 мА для всех устройств, кроме InterChip USB; настроенные хабы и составные устройства с питанием от шины — до 12,5 мА (2,5 мА на электронику хаба и по 2,5 мА на каждый внешний порт); ненастроенный хаб с питанием от шины — маломощное устройство, 2,5 мА
- STMicroelectronics. RM0090 Reference manual STM32F405/415, F407/417, F427/437, F429/439, Rev 21 (June 2024) — разд. 34.5: чтобы сделать устройство с питанием от шины, нужен внешний стабилизатор, который получает VDD микросхемы из VBUS
Нашли ошибку?
Смотрите также
- USBСкорости, распиновка Type-A, Micro-B и Type-C, питание, CC, USB PD
- VBUSЛиния 5 В в кабеле USB: допуски напряжения, ёмкость, просадка, контроль
- Дескриптор USBСтандартные структуры, которыми устройство описывает себя
- Приостановка USB (suspend)Когда устройство уходит в suspend, сколько может брать тока и как просыпается
- Перечисление USB (enumeration)Сброс, адрес, дескрипторы, конфигурация
- Пусковой токБросок тока при включении нагрузки