Перейти к содержанию

Подтягивающий резистор USB (1,5 кОм)

Хост узнаёт о том, что в разъём вставили устройство USB 2.0, не по питанию, а по одной из линий данных: устройство подтягивает её резистором к 3,3 В. Какая линия подтянута — D+ или D−, — сообщает хабу ещё и скорость устройства.

Обновлено Редакция GAW

Подтягивающий резистор USB (RPU) — резистор 1,5 кОм, которым устройство USB 2.0 подтягивает одну из линий данных к напряжению 3,0–3,6 В. По спецификации USB 2.0 (разд. 7.1.5.1), устройство Full Speed подтягивает D+, а Low Speed — D−. На стороне хоста или хаба каждая линия подтянута к земле резистором 15 кОм (RPD). Пока устройства нет, обе линии лежат на нуле; как только подтяжка устройства поднимает свою линию, хаб видит подключение и по тому, какая линия поднялась, — скорость.

Номиналы и допуски

РезисторГде стоитНоминал по табл. 7-7По Resistor ECN
RPUу устройства, с D+ или D− к VTERM1,5 кОм ±5 % (1,425–1,575 кОм)переменная RPU: 900–1 575 Ом в покое, 1 425–3 090 Ом при передаче
RPDу хоста и хаба, с D+ и D− на землю15 кОм ±5 % (14,25–15,75 кОм)14,25–24,80 кОм
VTERMнапряжение, к которому идёт RPU3,0–3,6 В—

Поправка (ECN) к USB 2.0 расширила допуски, чтобы резисторы можно было разместить прямо на кристалле без лазерной подгонки; устройство вправе пользоваться и старыми значениями. Нижний предел 900 Ом относится к альтернативным схемам: устройствам с несъёмным кабелем ECN разрешает другую терминацию с эквивалентным сопротивлением не меньше 900 Ом, а устройствам со съёмным кабелем — переменную подтяжку RPU, 900–1 575 Ом в покое шины и 1 425–3 090 Ом, пока передаёт вышестоящее устройство. Обычный резистор 1,5 кОм ±5 % по-прежнему допустим. Для любой схемы подтяжка должна поднимать линию от 0 В до порога VIH(min) за 2,5 мкс.

Устройство High Speed сначала подключается как Full Speed — с подтяжкой на D+, а во время сброса договаривается с хабом о 480 Мбит/с и отключает её, включая вместо неё оконечные резисторы 45 Ом (разд. 7.1.7.5); подробнее — в термине скорости USB.

Питание подтяжки и VBUS

Спецификация связывает подтяжку с VBUS: её источник должен питаться от VBUS или управляться им, чтобы без VBUS резистор не давал ток в линию данных (разд. 7.1.5.1). После снятия VBUS питание подтяжки снимают не позже чем через 10 с (разд. 7.2.1). В приостановке, наоборот, подтяжку держат включённой — иначе хаб решит, что устройство отключили (разд. 7.1.7.6).

Подтяжка в микроконтроллерах

  • STM32F103. Встроенной подтяжки нет: по даташиту DS5319 вывод USBDP (D+, PA12) нужно подтянуть резистором 1,5 кОм к 3,0–3,6 В. На платах Blue Pill вместо 1,5 кОм часто стоит резистор другого номинала — что из этого выходит, разобрано в статье об USB.
  • STM32F4, контроллер OTG_FS. По RM0090 (разд. 34.3.3) подтяжки встроены: в роли устройства подтяжка D+ включается, когда вход VBUS увидел напряжение B-session valid, в роли хоста включаются подтяжки к земле. Бит SDIS снимает подтяжку программно — для хоста это выглядит как отключение кабеля, так прошивка заставляет его заново провести перечисление.

Если подтяжка не стоит, перепутаны D+ и D− или резистор подключён к не тому напряжению, хост не видит устройство или выдаёт «Устройство USB не опознано». Защита линий данных от разрядов показана на схеме защиты USB от ESD.

Частые вопросы

Зачем на D+ резистор 1,5 кОм?

По нему хаб узнаёт, что устройство подключено и что это Full Speed. На порту хоста обе линии подтянуты к земле резисторами 15 кОм, и пока устройства нет, на них ноль. Резистор 1,5 кОм устройства к 3,0–3,6 В поднимает D+ выше порога, и хаб сообщает хосту о подключении. Low Speed подтягивает не D+, а D−.

Нужен ли внешний резистор 1,5 кОм для STM32?

Зависит от кристалла. У STM32F103 встроенной подтяжки нет: даташит DS5319 требует подтянуть USBDP (D+) резистором 1,5 кОм к 3,0–3,6 В. У контроллера OTG_FS в STM32F4 по RM0090 подтяжки встроены и включаются автоматически, когда на входе VBUS появляется напряжение; внешний резистор там не ставят.

Можно ли подтягивать D+ прямо к 3,3 В платы?

Только если 3,3 В пропадают вместе с VBUS. Спецификация USB 2.0 требует, чтобы подтяжка питалась от VBUS или включалась по нему: без VBUS она не должна давать ток в линию, а после снятия VBUS её питание нужно убрать не позже чем через 10 с. У устройства с собственным питанием подтяжку включают ключом или выводом микроконтроллера по наличию VBUS.

Источники

  1. USB Implementers Forum. Universal Serial Bus Specification, Revision 2.0 (April 27, 2000) — разд. 7.1.5.1: устройство Full Speed подтягивает D+, Low Speed — D−; на нисходящих портах — резисторы 15 кОм ±5 % на землю; устройство со съёмным кабелем — 1,5 кОм ±5 % к источнику 3,0–3,6 В (VTERM); подтяжка должна поднять линию от 0 В до VIH (min) за 2,5 мкс; эквивалентное сопротивление любой терминации не меньше 900 Ом; источник подтяжки берётся от VBUS или управляется им, без VBUS подтяжка не даёт ток; разд. 7.1.5.2: устройство High Speed подключается как Full Speed с RPU на D+ через ключ; разд. 7.1.7.6: в приостановке подтяжку питают и дальше; разд. 7.2.1: после снятия VBUS питание подтяжки снимают не позже чем через 10 с; табл. 7-7: RPU 1,425–1,575 кОм, RPD 14,25–15,75 кОм, VTERM 3,0–3,6 В
  2. USB Implementers Forum. Engineering Change Notice «Pull-up/pull-down resistors» to USB 2.0 Specification — новые пределы: подтяжки к земле 14,25–24,80 кОм; подтяжка 900–1 575 Ом в состоянии покоя шины и 1 425–3 090 Ом, когда передаёт вышестоящее устройство; изменение позволяет разместить резисторы на кристалле без лазерной подгонки; устройство может сохранить старый допуск
  3. STMicroelectronics. RM0090 Reference manual STM32F405/415, F407/417, F427/437, F429/439, Rev 21 (June 2024) — разд. 34.3.3: встроенные подтяжки DP/DM OTG_FS, в роли устройства подтяжка DP включается, когда VBUS достиг B-session valid, в роли хоста включаются подтяжки к земле на DP и DM; подтяжка DP из двух резисторов по Resistor ECN; разд. 34.5.3: бит SDIS в OTG_FS_DCTL снимает подтяжку DP — программное отключение
  4. STMicroelectronics. DS5319 STM32F103x8, STM32F103xB datasheet, Rev 20 (July 2025) — табл. 45 «USB DC electrical characteristics», примечание 2: для соответствия USB 2.0 Full Speed вывод USBDP (D+) должен быть подтянут резистором 1,5 кОм к напряжению 3,0–3,6 В

Нашли ошибку?