|
|
  |
STM32 USB_DISCONNECT 2, способ подключения pull-up резистора |
|
|
|
Nov 5 2010, 02:51
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 5-05-08
Пользователь №: 37 279

|
Как считаете, можно ли резистор подтяжки линии D+ подключить напрямую к I/O порту? Настроив порт в режим push-pull и подав единицу мы, через встроенный P-MOS, подключим резистор к питанию, т.е. 3,3 вольта. Ток (резистор 1,5к) составит не более 2,2мА, по документации порт можно нагрузить 8мА. Вроде-бы все нормально. Если ли предубеждение?
|
|
|
|
|
Nov 5 2010, 08:58
|
Гуру
     
Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295

|
Цитата(ZyBEX @ Nov 5 2010, 05:51)  Как считаете, можно ли резистор подтяжки линии D+ подключить напрямую к I/O порту? Настроив порт в режим push-pull и подав единицу мы, через встроенный P-MOS, подключим резистор к питанию, т.е. 3,3 вольта. Ток (резистор 1,5к) составит не более 2,2мА, по документации порт можно нагрузить 8мА. Вроде-бы все нормально. Если ли предубеждение? Теоретически можно. Отключать этот резистор, настраивая порт на ввод и выключая PULLUP ... Но кто его знает, как в данном случае начнет влиять на работу вашей схемки встроенная в МК схема защиты линии I/O ? Не надо так делать. А то ведь сэкономите пару центов, а получите проблему. Не случайно так не делают. Поставьте лучше P-MOSFET ...
Сообщение отредактировал kovigor - Nov 5 2010, 08:59
|
|
|
|
|
Nov 7 2010, 23:29
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 5-05-08
Пользователь №: 37 279

|
В исследовательских целях попробовал на практике. Работает отлично. Цитата(kovigor @ Nov 5 2010, 11:58)  ...Но кто его знает, как в данном случае начнет влиять на работу вашей схемки встроенная в МК схема защиты линии I/O ? А разве линии DM-DP имеют защиту, отличную от других линий I/O ? Если нет, то схема должна быть корректна, имхо. Натолкнулся в инете на еще один вариант дисконнекта: Там резистор между VCC и DP сидит постоянно. И когда нужно сделать дисконнект, на 10 мс линия USB-DP (A12) становится push-pull с нулем. P.S. И дело думаю не всегда в экономии. Если нужно сделать экстремально миниатюрное устройство, на разьеме usb наподобие флэшек, то такой вариант годится.
|
|
|
|
|
Nov 8 2010, 08:08
|

Местный
  
Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070

|
Цитата(ZyBEX @ Nov 5 2010, 06:51)  Как считаете, можно ли резистор подтяжки линии D+ подключить напрямую к I/O порту? А смысл? Такое решение годится только для устройств с питанием от самого USB. Но в этом случае логичнее не тратить вывод и повесить резистор сразу на питание 3.3V. Проблемы могут возникнуть только при отладке (комп начинает детектить устройство, пока идет загрузка программы отладчиком), но это решается способом: Цитата когда нужно сделать дисконнект, на 10 мс линия USB-DP (A12) становится push-pull с нулем. благо порты STM32 позволяют такой трюк. По стандарту резистор должен быть подтянут к источнику 3.3V, запитанному от Vbus, подаваемого хостом. Это делается для того, чтобы при отключенном хосте (и автономном питании устройства) исключить подачу тока в линию D+.
|
|
|
|
|
Nov 8 2010, 22:15
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 5-05-08
Пользователь №: 37 279

|
Цитата(sonycman @ Nov 9 2010, 00:05)  А если 5 вольт? Как правило напряжение Vbus равно 5 вольтам, а не 3.3. Тогда ток потечет в хост и спалит там что-нибудь. Может тогда через делитель? Но Vbus не всегда равно 5 вольт, может быть просадка. Так что нужен стабилизатор на 3.3в
|
|
|
|
|
Nov 9 2010, 10:42
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(ZyBEX @ Nov 9 2010, 03:15)  Тогда ток потечет в хост и спалит там что-нибудь. Может тогда через делитель? Но Vbus не всегда равно 5 вольт, может быть просадка. Так что нужен стабилизатор на 3.3в Нет, я имею ввиду вот что - на многих схемах подтяжка производится через ключ напрямую с Vbus, то есть с 5-ти вольт, а не с трёх. Плюс защита в виде стабилитрона и диодов ставится тоже на Vbus и землю. То есть никакими 3.3 вольтами и не пахнет. Отсюда можно сделать вывод, что USB интерфейс как минимум должен быть 5v tolerant. Или всё же это не правильно?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|