Jump to content

    
Sign in to follow this  
ZyBEX

STM32 USB_DISCONNECT 2

Recommended Posts

Как считаете, можно ли резистор подтяжки линии D+ подключить напрямую к I/O порту? Настроив порт в режим push-pull и подав единицу мы, через встроенный P-MOS, подключим резистор к питанию, т.е. 3,3 вольта. Ток (резистор 1,5к) составит не более 2,2мА, по документации порт можно нагрузить 8мА.

Вроде-бы все нормально. Если ли предубеждение?

Share this post


Link to post
Share on other sites
Как считаете, можно ли резистор подтяжки линии D+ подключить напрямую к I/O порту? Настроив порт в режим push-pull и подав единицу мы, через встроенный P-MOS, подключим резистор к питанию, т.е. 3,3 вольта. Ток (резистор 1,5к) составит не более 2,2мА, по документации порт можно нагрузить 8мА.

Вроде-бы все нормально. Если ли предубеждение?

 

Теоретически можно. Отключать этот резистор, настраивая порт на ввод и выключая PULLUP ... Но кто его знает, как в данном случае начнет влиять на работу вашей схемки встроенная в МК схема защиты линии I/O ? Не надо так делать. А то ведь сэкономите пару центов, а получите проблему. Не случайно так не делают. Поставьте лучше P-MOSFET ...

Edited by kovigor

Share this post


Link to post
Share on other sites

В исследовательских целях попробовал на практике. Работает отлично.

 

...Но кто его знает, как в данном случае начнет влиять на работу вашей схемки встроенная в МК схема защиты линии I/O ?

А разве линии DM-DP имеют защиту, отличную от других линий I/O ? Если нет, то схема должна быть корректна, имхо.

 

Натолкнулся в инете на еще один вариант дисконнекта: Там резистор между VCC и DP сидит постоянно. И когда нужно сделать дисконнект, на 10 мс линия USB-DP (A12) становится push-pull с нулем.

 

P.S. И дело думаю не всегда в экономии. Если нужно сделать экстремально миниатюрное устройство, на разьеме usb наподобие флэшек, то такой вариант годится.

Share this post


Link to post
Share on other sites
Как считаете, можно ли резистор подтяжки линии D+ подключить напрямую к I/O порту?

А смысл? Такое решение годится только для устройств с питанием от самого USB. Но в этом случае логичнее не тратить вывод и повесить резистор сразу на питание 3.3V. Проблемы могут возникнуть только при отладке (комп начинает детектить устройство, пока идет загрузка программы отладчиком), но это решается способом:

когда нужно сделать дисконнект, на 10 мс линия USB-DP (A12) становится push-pull с нулем.

благо порты STM32 позволяют такой трюк.

 

По стандарту резистор должен быть подтянут к источнику 3.3V, запитанному от Vbus, подаваемого хостом. Это делается для того, чтобы при отключенном хосте (и автономном питании устройства) исключить подачу тока в линию D+.

 

 

Share this post


Link to post
Share on other sites
По стандарту резистор должен быть подтянут к источнику 3.3V, запитанному от Vbus, подаваемого хостом.

А если 5 вольт?

Как правило напряжение Vbus равно 5 вольтам, а не 3.3.

Share this post


Link to post
Share on other sites
А если 5 вольт?

Как правило напряжение Vbus равно 5 вольтам, а не 3.3.

Тогда ток потечет в хост и спалит там что-нибудь. Может тогда через делитель? Но Vbus не всегда равно 5 вольт, может быть просадка. Так что нужен стабилизатор на 3.3в

Share this post


Link to post
Share on other sites
Тогда ток потечет в хост и спалит там что-нибудь. Может тогда через делитель? Но Vbus не всегда равно 5 вольт, может быть просадка. Так что нужен стабилизатор на 3.3в

Нет, я имею ввиду вот что - на многих схемах подтяжка производится через ключ напрямую с Vbus, то есть с 5-ти вольт, а не с трёх.

Плюс защита в виде стабилитрона и диодов ставится тоже на Vbus и землю.

То есть никакими 3.3 вольтами и не пахнет.

 

Отсюда можно сделать вывод, что USB интерфейс как минимум должен быть 5v tolerant.

 

Или всё же это не правильно?

 

Share this post


Link to post
Share on other sites
Нет, я имею ввиду вот что - на многих схемах подтяжка производится через ключ напрямую с Vbus, то есть с 5-ти вольт, а не с трёх.

Плюс защита в виде стабилитрона и диодов ставится тоже на Vbus и землю.

Отсюда можно сделать вывод, что USB интерфейс как минимум должен быть 5v tolerant.

Или всё же это не правильно?

Работоспособность и сохранение работоспособности после устранения воздействия - разные вещи!

Да, не сгорит от 5-ти вольт. Но и работать тоже не обязан! :smile3046: В стандарте сказано 3.3В - значит надо делать как в стандарте и не ловить потом глюки. :santa2:

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this