Дисконнект и защита USB в одном флаконе

Во многих платах на STM32F10x имеется схема для програмного дисконекта от USB и инициации перенумерации устройств (это нужно, например, что бы сменить тип устройства). Я встречал несколько вариантов такой схемы, но все они содержат довольно много компонентов. Некоторое время назад, после внимательного чтения даташитов на различные микросхемы предназначенные для защиты USB входа от статики и перенапряжений, я пришел к выводу, что их весьма удобно использовать для дисконекта. Дополнив схему «цифровым транзистором» я получил весьма простую схему состоящую всего из двух компонентов и (относительно) удобную для разводки даже в одном слое:


У схемы, в принципе, единственный существенный недостаток — защиты на VBUS нет.

В схеме приведенной выше я использовал STF202 по одной простой причине — она более удобна для разводки в одном слое, но на самом деле микросхем подходящих для применения много и разных, в разных корпусах на все вкусы, например STF203, USBUF01P6, USBUF02W6 или даже EClamp2522P (у этой безвыводной корпус, зато резистор нужный для реализации дисконекта, выведен на отдельную ногу, так что можно реализовать столь же простую схему без потери защиты на VBUS). «Цифровых транзисторов» тоже выпускается довольно много разных вариантов, например MMUN2111 или PDTA114ET (как на схеме), PDTA143ET и так далее.

P.S. Для сравнения можно, например, посмотреть как выглядит аналогичный кусок схемы у Olimex-а.
  • +4
  • 27 декабря 2011, 00:45
  • evsi

Комментарии (15)

RSS свернуть / развернуть
А в чём смысл использования именно «цифровых транзисторов»? Только уменьшение количества компонентов, или есть ещё какие-то преимущества?
0
Да вроде нет других преимуществ, их, насколько я понимаю, и разрабатывали именно с целью уменьшения количества компонентов.
0
зачем там транзистор? вывод МК вполне потянет такую нагрузку
0
Он работает как инвертор, а я стремился сохранить совместимость.
0
Перенес в схемотехнику.

Для реконнекта USB достаточно одного транзистора. Там дисконнект делается тупой подтяжкой одной из линий дифпары. Вроде бы D+ без нее комп не увидит устройство. Подтягиваешь — определяется. Так сделано, например, на CoLinkEX отладчике, да и еще в ряде демоплат. В Pinboard II я такой же метод практикую.
0
Да, достаточно. Только между разъемом USB и чипом нужна еще схема согласования, это минимум пара резисторов 22 ома, хотя по стандарту там требуется еще и пара конденсаторов (47 пик, если не ошибаюсь). И защиту от перенапряжений/статики тоже хорошо бы иметь. Схема приведенная выше содержит все перечисленное в двух корпусах размером с SOT-23 (а при желании можно сделать и меньше).
0
Ну да, так оно. А сколько стоит сия микрушка?
0
~$0.33 (2.65грн) у местного не самого дешевого продавца. Транзисторы MMUN2111 (практически копия того, что у меня на схеме) у него же по ~$0.02 (0.17грн), такие как на схеме — ~$0.03. Это поштучная розница, оптом, естественно, дешевле.

P.S. Уточню, что подобные микросхемы, как правило, идут в нескольких вариантах с разными сопротивлениями и емкостями. Это следует иметь в виду приобретая конкретную деталюшку. Применительно к STF202 вариант с 22Ом/47пик называется STF202-22T1G.
0
Поглядел, у моего по 10рублей штучка. В принципе подьемно, вполне. Дороже конечно в разы чем на рассыпухе, но зато компактно.
0
А зачем там вообще транзистор? Что мешает рулить этим резистором прямо с ножки? Ток-то там мизерный.
0
Я там выше уже писал — транзистор, в данном случае, работает инвертором, мне же хотелось сохранить полную совместимость железа с имеющимся софтом, в частности бутлоадером Maple. Копеечный (буквально) транзистор обойдется мне дешевле, чем сопровождение собственной версии бутлоадера.
0
Еще может быть разное напряжение питания.
0
Там подтяжка должна быть на 3.3 вольта по стандарту, хотя, конечно, никто не мешает добавить там примитивный резистивный делитель, если схема питается от 5 вольт. В любом случае с транзистором как-то спокойнее, особенно если нет защиты на этом выводе.
0
Все зависит от питания. При использовании USB большой разницы нет, что использовать — хоть напрямую процессор хоть через 1-2 транзистора — всё едино. Но при автономном есть ньюянсы. В схеме olimex сделано правильно для всех случаев. То есть и VUSB должно быть и процессор должен включить. Без двух напряжений эта схема не будет ничего включать. В 99.99% это конечно не нужно — потому что для питания от USB можно просто процессором через 1.5К (если у него 3.3В — ток считается просто — для другого напряжения резистор просто посчитать) ток загнать в D+ и host его скушает.
0
  • avatar
  • x893
  • 02 января 2012, 00:06
В принципе, добавив еще один «цифровой» транзистор можно эту схему довести до полной совместимости (все равно будет проще чем исходная схема).
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.