Питание от USB

Гигабайт тут выпустил «драйвер», позволяющий заряжать iPad от USB. Без оного «драйвера» iPad заряжаться не хочет, так как потребляет заведомо больше 500 мА.

Хотелось бы в связи с этим внести ясность, как вообще работает питание USB.

Первое и самое главное: нет никаких общепринятых и реально используемых способов проверки или ограничения потребляемого устройством тока, работающих без поддержки со стороны самого устройства. На разъём USB приходят 5 В — и всё, если производитель не поставил на этот порт предохранитель, вы можете нагружать его до тех пор, пока разъём не расплавится. Воткните в него резистор на 5 Ом — и вы будете получать от USB 1 А, при этом ОС будет с полной уверенностью считать, что нагрузка на порт равна нулю.

Здесь мы подходим ко второму вопросу: откуда ОС знает про нагрузку на порт? А ей об этом сообщает само устройство. Любое USB-устройство обязано иметь в себе пачку дескрипторов, значения которых при подключении устройства передаются на хост — и последний из них узнаёт, как устройство называется, что делает, на какой скорости работает и так далее. В частности, там есть конфигурационный дескриптор, в котором есть параметр bMaxPower — в нём указывается максимальное потребление устройства. Параметр однобайтовый, ступенька — 2 мА, т.е. максимум устройство может сообщить о потреблении 255*2 мА = 510 мА. Если ОС считает, что допустимая нагрузка на порт превышена (на нём же могут быть несколько устройств), оно выдаёт устройству отказ — и последнее обязано остаться в спячке. Проверить, осталось ли устройство в спячке или всё равно включилось и жрёт сколько может, невозможно.

Ещё раз:

  • устройство само сообщает, сколько оно хочет потреблять;
  • устройство даже теоретически не может сообщить о более чем 510 мА;
  • проверить, правда ли устройство потребляет столько, сколько оно попросило, невозможно.

Собственно, последним пунктом пользуются все внешние винчестеры с питанием от USB — у них стартовый ток 0,7—1,0 А. Разумеется, они формально просят 500 мА, а реально жрут сколько им надо. Если разводка питания на матери сделана так, что при подобной нагрузке на порт напряжение сильно просаживается (по стандарту, должно быть минимум 4,75 В при 500 мА, но стандарт не регламентирует, что там будет после 500 мА, потому что по стандарту «после 500 мА» не бывает), винчестер не запускается. Не потому, что ему кто-то запретил, а потому, что напряжение слишком низкое.

В iPad чуть хитрее: наверняка ему для включения зарядки требуются не просто 5 В от USB, а какой-то специфический пинок, не получив который, iPad зарядку не включает, чтобы не сжечь порт. Этот пинок не имеет никакого отношения к спецификациям USB, это просто какой-то определённый пакет данных, передаваемый софтом на USB-устройство. Та же история с некоторыми мобильными телефонами: чтобы заряжаться от USB, им нужен либо свой софт, который отвесит им пинок, либо USB-кабель, в котором закорочены центральные контакты (такие кабели ставятся на зарядники 220V→USB, чтобы устройство умело отличать их от USB-порта компа).

Собственно, это всё, что делает «драйвер» Gigabyte: при виде iPad он отсылает ему команду «Заряжайся!». Всё. Больше никаких телодвижений не надо. Вы можете отослать ему эту команду на абсолютно любом компьютере — и он начнёт от него заряжаться. Конкретные модели материнок к данному «драйверу» привязаны только тем боком, что Gigabyte как бы гарантирует нам — от такой нагрузки USB в них не сгорит.

Да и вообще всякие «технологии» типа «3x USB Power Boost», безотносительно «драйвера» для зарядки iPad, — это просто гарантия, что при нагрузке на порт 1,5 А на материнка не сгорит, а напряжение не просядет слишком сильно. Достигается элементарно: шина питания к USB подводится достаточно толстая. Больше ничего за этими «технологиями» не стоит.

Что смешно, именно на матери Gigabyte я несколько раз слышал жалобы, что при подключении к ним внешнего винчестера разом отваливаются все задние USB-порты.

  1. avatar
    fin
    15 Апрель 2010 в 15:32 | #1

    А фича Gigabyte’вских материнок “3x USB Power Boost” — это что-то полезное или замануха маркетинговая?

    GIGABYTE P55A-series motherboards feature a 3x USB power boost, delivering greater compatibility and extra power for USB devices. GIGABYTE’s unique USB power design is also able to efficiently regulate output over the full voltage range, which greatly enhances USB device compatibility. In addition, dedicated lower resistance fuses ensure lower voltage drops, and provide more stable and plentiful power delivery.

    Thumb up 0 Thumb down 0

    • Это та же гарантия «от 1,5 А у нас ничего не сдохнет». Какую-то практическую ценность имеет разве что для владельцев iPad — а USB-диски и так на всех современных материнках нормально живут.

      Thumb up 1 Thumb down 0

  2. avatar
    olifa
    15 Апрель 2010 в 22:11 | #3

    А что же мешает на некоторых материнках запуску USB-дискам при подключении только к одному разъему?

    Thumb up 0 Thumb down 0

  3. avatar
    aizen
    16 Апрель 2010 в 09:51 | #7

    Теперь понятно. Спасибо.

    Thumb up 0 Thumb down 0

  4. avatar
    kotb
    16 Апрель 2010 в 12:13 | #8

    Меня удивила хитрость на какой-то плате из новых гигабайтов с буквой “А” кажется, что свидетельствует о usb3.0, крохотная пометка что при включении этого usb3.0 пси-е порт видеокарты переходит из х16 в х8 или х4. А указанно это только на офиц сайте, в прайсах и на сайтах магазинов не пишут вообще.

    Thumb up 0 Thumb down 0

    • Это не хитрость. На платах под сокет 1156 (точнее, у процессоров) физически не хватает линий PCIe. То, что об этом не пишут в прайсах и на сайтах магазинов, не проблема Джигабайта.

      Thumb up 0 Thumb down 0

  5. avatar
    utah
    16 Апрель 2010 в 12:36 | #10

    А не можете подсказать, в чем может быть проблема с usb модемом от Yota (4G USB-модем Samsung SWC-U200). При подключении модема к usb отваливаются флешки и прочие внешние накопители. Техподдержка не смогла ответить на этот вопрос :)

    Thumb up 0 Thumb down 0

    • Это скорее проблема с USB-контроллером на материнке — ловит какую-нибудь специфическую помеху от модема. Если подключать через кабель с ферритовыми кольцами — та же история?

      Thumb up 0 Thumb down 0

      • avatar
        utah
        25 Апрель 2010 в 01:04 | #12

        К сожалению кабеля не нашлось под рукой чтоб проверить. Пока вопрос решен путем подключения модема к “задним портам” десктопа. При такой схеме флеш и внешние хдд определяются нормально. Но на лэптопе HP это не помогает.

        На макбук этой проблемы нет. Возможно проблема в самом драйвере от ёты для windows, который блокирует флеш самого модема, где хранится драйвер модема для первоначальной установки.

        Thumb up 0 Thumb down 0

    • avatar
      BiOMeX
      17 Апрель 2010 в 14:46 | #13

      Случайно не нетбук используется? А то на EeePC 901 Yota не во всех USB-портах нормально определяется и работает..

      Thumb up 1 Thumb down 0

      • avatar
        utah
        25 Апрель 2010 в 01:07 | #14

        Нет не асус, у меня HP. Сам модем определяется нормально, проблема в других устройствах — накопителях, подключенных одновременно с модемом.

        Thumb up 0 Thumb down 0

Вы должны войти, чтобы написать комментарий.