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

STM32 USB_DISCONNECT 2

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

Изменено пользователем kovigor

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

 

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

 

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...