USB-C в качестве источника питания и согласование с USB 2.0 и 3.0

У меня есть печатная плата, которая в настоящее время оснащена разъемом Micro-USB, используемым только для передачи данных, и отдельным входным разъемом питания 5 В для питания устройства. Максимальный потребляемый ток устройства составляет 600 мА. Чтобы устранить необходимость во входном разъеме и использовать только один кабель, я хотел бы выполнить шаги, описанные в этом посте , чтобы мое устройство USB 2.0 могло обрабатывать как передачу данных, так и питание (5 В, 600 мА) с использованием USB-C. сосуд.

Насколько я понимаю, шаги включают в себя пайку двух контактов данных от Micro-USB к контактам розетки, пайку резисторов 5,1 кОм на контактах CC и пайку контактов 5V/GND от входного разъема к VBUS/ Контакты GND розетки для питания моего устройства. Пока меня не волнует громоздкость модификации, меня волнует только безопасность.

Затем я хочу подключить мое недавно модифицированное устройство к ноутбуку. Мои вопросы:

Если я подключу его к порту USB-C, будет ли согласование питания работать должным образом? Я понимаю, что хосты USB 2.0 ограничивают согласование до 500 мА, поэтому я хочу знать, будет ли работать согласование, поскольку хост может обрабатывать больше (900 мА), но мое устройство работает только с USB 2.0?

Теперь предположим, что я использую имеющийся в продаже адаптер USB-C на USB-A для подключения моего модифицированного устройства к классическому порту USB-A на моем ноутбуке. Я ожидаю, что ответ не изменится, если порт работает на USB 3.0? А если в порту только USB 2.0, мое устройство вообще не включится, так как согласование остановится на 500мА?

Я новичок в переговорах, любая помощь очень ценится!

Ответы (2)

Когда вы подключаете устройство, подтягивающий резистор Rp на стороне хоста и подтягивающий резистор Rd на стороне устройства образуют резисторный делитель.

стр. 9 в AN5225

Как вы упомянули, резистор Rd составляет 5,1 кОм, но Rp будет варьироваться в зависимости от мощности хоста. Вы можете контролировать напряжение на контактах cc и, убедившись, что хост способен обеспечить достаточную мощность, включить схему, требующую питания.

AN5225 от ST больше говорит об этой проблеме.

введите описание изображения здесь

Благодарю за ваш ответ. Мой вопрос больше связан с согласованием мощности, а не с проверкой того, может ли хост справиться с требованиями к мощности. Я не уверен, что понимаю, на каком уровне происходят эти переговоры о силе и как они работают. Я ищу ресурсы в Интернете, чтобы лучше понять это, но я не могу их найти. По сути, драйверы моего устройства реализованы с использованием библиотеки libusb, и я хотел бы убедиться, что согласование будет безопасным при подключении модифицированного устройства к USB 2.0 или 3.0.

Если вам нужно только 5 В 600 мА и скорость передачи данных USB 2.0, вы можете использовать простую схему, например:

введите описание изображения здесь

Подтягивающие резисторы на 5,1 кОм позволяют вашему устройству потреблять до 3 А от хоста, если хост способен .

Что касается вашей потребности в более чем 500 мА - рекомендуется измерить линии USB_CCx с помощью АЦП вашего MCU, чтобы точно знать возможности вашего хоста. Чтобы понять, какое напряжение вы хотите считать с контактов, вы можете обратиться к примечанию к приложению ST, упомянутому в предыдущем ответе.

Если ваш MCU не может справиться с этой частью работы, посмотрите на микросхемы конфигурации CC (оставив Injoinic IP2721 просто в качестве ссылки, не уверен, что он контролирует текущие возможности хоста).