Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ключ пуллапа для USB
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Схемотехника
sonycman
Вот кусок схемы с USB сокетом платы стартеркита SK-MLPC1768:
Нажмите для просмотра прикрепленного файла

Как видно, ключ на NPN транзисторе, управляемый сигналом с трёхвольтового контроллера.
Ключ будет полностью открыт только при условии низкого уровня на Data+.
При появлении высокого уровня транзистор закроется.

То есть в работе он будет постоянно переключаться туда-сюда?

Но почему автор не поставил PNP транзистор или P-мосфет?
Как надо делать "правильно"?
Herz
Это одновременно и pull-up, и pull-down, в зависимости от уровня U_CON, ведь транзистор включен эмиттерным повторителем.
ukpyr
Цитата
Это одновременно и pull-up, и pull-down
и как ? при нуле в базе транзистор полностью закрыт, резистор будет висеть в воздухе.
Цитата
Но почему автор не поставил PNP транзистор или P-мосфет?
может так было удобно (включать единицей).
Цитата
То есть в работе он будет постоянно переключаться туда-сюда?
будет, ну и что ? PNP тоже будет включаться/выключаться, что это меняет ?
sonycman
Цитата(ukpyr @ Dec 29 2009, 18:22) *
будет, ну и что ? PNP тоже будет включаться/выключаться, что это меняет ?

Криво это.
А PNP не будет самопроизвольно переключаться, эмиттер на 3v3, база на 0v -> транзистор открыт.
Herz
Цитата(ukpyr @ Dec 29 2009, 16:22) *
и как ? при нуле в базе транзистор полностью закрыт, резистор будет висеть в воздухе.

Да, верно, значит pull-up-а просто не будет. rolleyes.gif

Цитата(sonycman @ Dec 29 2009, 17:11) *
Криво это.

А PNP не будет самопроизвольно переключаться, эмиттер на 3v3, база на 0v -> транзистор открыт.

Ничего тут кривого нет. Почему Вас заботит, что от будет открываться? выбор, по-моему, абсолютно правильный и вот почему.
Дело в том, что если на линии D+ появится напряжение (с другого конца, например), то NPN-транзистор просто закроется, а с PNP ток через pull-up резистор потечёт в обратную сторону.
rezident
Цитата(sonycman @ Dec 29 2009, 13:37) *
Но почему автор не поставил PNP транзистор или P-мосфет?
Как надо делать "правильно"?
ИМХО в данном применении большую роль играет вносимая в шину емкость этого pull-up-а, а не тип проводимости ключа.
Demeny
Это кусок схемы, реализующий USB-device (но не хост). Суть в том, что любое USB-устройство до начала обмена по шине обязано подтягивать D+ к "единице" - по этому признаку USB-хост распознаёт, что на порту появилось устройство. Затем, когда с устройством начинается обмен, этот pull-up необходимо отключить, чтобы не вносить на шину дополнительную несимметричную нагрузку.
sonycman
Цитата(Herz @ Dec 30 2009, 01:55) *
Дело в том, что если на линии D+ появится напряжение (с другого конца, например), то NPN-транзистор просто закроется, а с PNP ток через pull-up резистор потечёт в обратную сторону.

Ну и пусть течёт. Зато не будет никаких "щёлканий" ключом.
На большинстве схем ключ выполняется таким образом, чтобы резистор 1.5к был подключен к шине до тех пор, пока имеется сигнал с контроллера.
А тут иначе, почему и спросил совета.

Ну, не важно, так не важно. Но схемка кривая всё равно smile.gif

Цитата(rezident @ Dec 30 2009, 03:11) *
ИМХО в данном применении большую роль играет вносимая в шину емкость этого pull-up-а, а не тип проводимости ключа.

Эта ёмкость просто ничтожна, за полуторакилоомным резистором её просто не видно, имхо smile.gif

Цитата(Demeny @ Dec 30 2009, 03:24) *
Суть в том, что любое USB-устройство до начала обмена по шине обязано подтягивать D+ к "единице" - по этому признаку USB-хост распознаёт, что на порту появилось устройство.

Не совсем.
Full Speed устройства подтягивают D+.
Low Speed - D-.
Насчёт High Speed не помню smile.gif

Цитата(Demeny @ Dec 30 2009, 03:24) *
Затем, когда с устройством начинается обмен, этот pull-up необходимо отключить, чтобы не вносить на шину дополнительную несимметричную нагрузку.

Разве?
А хост, потеряв высокий уровень на D+, не посчитает, что устройство отключили от шины? smile.gif
rezident
Цитата(sonycman @ Dec 30 2009, 04:38) *
Разве?
А хост, потеряв высокий уровень на D+, не посчитает, что устройство отключили от шины? smile.gif
Для высокоскоростных устройств резистор требуется только на момент конфигурирования устройства. После завершения конфигурирования, для работы на большой скорости, резистор должен быть отключен для уменьшения влияния на симметричность (волновое согласование) линии связи. Цитата (скриншот) из спецификации USB2.0.
sonycman
Цитата(rezident @ Dec 30 2009, 04:05) *
Для высокоскоростных устройств резистор требуется только на момент конфигурирования устройства. После завершения конфигурирования, для работы на большой скорости, резистор должен быть отключен для уменьшения влияния на симметричность (волновое согласование) линии связи. Цитата (скриншот) из спецификации USB2.0.

А в случае Full Speed устройств?
Что же, надо попробовать отсоединить пуллап после энумерации и конфигурирования устройства.
Если хост будет не против, это даже хорошо smile.gif
goodwin
Сколько страстей smile.gif Я просто взял и присопливил pnp в подобную платку от стартеркита. По одной простой причине - в keil примеры заточены (лень везде строчку править), да и в самих контроллерах LPC аппаратное уплавление подтяжкой требует pnp...
Хотя тоже озадачила такая схемотехника...
sonycman
Хм, странно, а почему не подсоединяют корпус USB коннектора на землю напрямую?
Вот схема:
Нажмите для просмотра прикрепленного файла

Почему через резистор\конденсатор?
aaarrr
Чтобы не разряжать статику на "чистую" землю. Лучше для корпусов разъемов вообще ввести отдельную.
sonycman
aaarrr
Понятно, спасибо.
Значит, буду лучше делать так, чем напрямую smile.gif
sonycman
Только вот не понял, в чём смысл конденсатора?
Его не прошибёт киловольтным разрядом статики?
На какое напряжение его ставить?
rezident
Цитата(sonycman @ Jan 4 2010, 04:39) *
Только вот не понял, в чём смысл конденсатора?
Дык через него и протекает электростатический заряд с человеческого тела. А резистор нужен для того, чтобы заряд на конденсаторе "рассосался" через некоторое время и для того, чтобы на корпусе (экране) разъема не скапливался заряд, самопроизвольно заряжающий упомянутый конденсатор.
goodwin
Только вся эта usb схемотехника, применительно к электростатическому разряду, относится скорее к танцам с бубном wink.gif
Определяющим является то, что сигнальные линии USB заводятся в кристаллы можно сказать напрямую...
И при хорошо приложенном электростатическом разряде ничто не спасает от сбоя usb обмена.
Практический пример:
Если "хорошо зарядиться" и коснуться экрана просто пальцем, то возникает искра несколько мм длиной, но обмен не сбивается.
Если же коснуться металлическим предметом, то все usb девайсы, над которыми пробовал так издеваться, гарантированно виснут.
Не помогают ни ферритовые бусины во всех линиях usb разъема, включая экран, ни RC цепочки.
sonycman
Цитата(rezident @ Jan 4 2010, 04:16) *
Дык через него и протекает электростатический заряд с человеческого тела. А резистор нужен для того, чтобы заряд на конденсаторе "рассосался" через некоторое время и для того, чтобы на корпусе (экране) разъема не скапливался заряд, самопроизвольно заряжающий упомянутый конденсатор.

Хм, ну а сколько киловольт способен выдержать этот конденсатор?
Обычный 50 вольтовый чип кондёр не почернеет от такого над ним издевательства? smile.gif

Или надо ставить огромный плёночник размером с пол-платы?

Цитата(goodwin @ Jan 4 2010, 08:37) *
Только вся эта usb схемотехника, применительно к электростатическому разряду, относится скорее к танцам с бубном wink.gif

Ещё заметил, что в половине схем не ставят кондёры (десятки пикофарад) на сигнальные линии.
Стоит с ними заморачиваться, или тоже игнорировать установку?
sonycman
Вот стандартная схема ключа:
Нажмите для просмотра прикрепленного файла

Не сразу дошло, для чего нужен делитель, в частности - его нижнее плечо R14 - 36k.

Думаю, в активном режиме (на базе T2 низкий уровень) схема работает так:
1. на линии USB низкий уровень, 0в.
На базе T1 3.9 вольт с делителя, Т1 открыт, на эмиттере 3.3в.

2. на линии USB высокий уровень от хоста, 5в.
На эмиттере Т1 напряжение поднимается до 5в, так как NPN переход не может проводить ток от эмиттера к коллектору.
Т1 закрывается сразу, как только потенциал эмиттера начинает превышать 3.3в, так как напряжение на базе, благодаря делителю, не может подняться выше 3.9 вольт.

Правильно ли я рассуждаю?
galjoen
В реальности, хаб воспринимает на своём порте только положительный ФРОНТ на D+ (или D-), вызванный пуллапом, при подключении USB девайса. И информирует хост о подключении к этому порту нового девайса. Потом, когда хост запросил дескриптор DEVICE, можно этот пуллап резистор отключать (а на high speed нужно), всё равно от него никакого толку больше не будет. Даже если хаб отключит порт, к которому подключен ваш девайс (из-за помехи), то чтобы переподключится нужно убрать перекос, а потом снова создать (сформировать фронт). Иначе хаб ничего не шлёт (смотри сниффером).

doodwin, почитайте про зависание USB девайсов в разделе интерфейсы - это обсуждалось. Я там написал совет как при этом переподключится со стороны девайса. А если с этим USB девайсом работает ваша программа, то можно переподключится и со стороны ОС.
goodwin
Цитата(galjoen @ Jan 4 2010, 18:04) *
doodwin, почитайте про зависание USB девайсов в разделе интерфейсы - это обсуждалось. Я там написал совет как при этом переподключится со стороны девайса. А если с этим USB девайсом работает ваша программа, то можно переподключится и со стороны ОС.


Да мне проще. Я хост в девайсе мучаю - все под контролем...
Просто упомянул про то, что от хорошего статического разряда никакие схемотехнические ухищрения не помогут.
sonycman
Цитата(galjoen @ Jan 4 2010, 19:04) *
В реальности, хаб воспринимает на своём порте только положительный ФРОНТ на D+ (или D-), вызванный пуллапом, при подключении USB девайса.

Я в курсе, спасибо.
Вообще то, вопрос был не об этом. smile.gif
А про режимы работы данного ключа.
Просто интересно, правильно ли я всё понял.
galjoen
Цитата(goodwin @ Jan 4 2010, 18:20) *
Просто упомянул про то, что от хорошего статического разряда никакие схемотехнические ухищрения не помогут.

Ухищрения помогают, только они все рассчитаны на body-модель. Т.е. что человек касаться будет. А у него определённые ёмкость/сопротивление. И на это все номиналы защиты рассчитаны.
А если статика от чего-нибудь другого, с другими ёмкостью/сопротивлением, стрельнёт, то да, всё сбивается.
Demeny
Цитата(sonycman @ Jan 4 2010, 12:36) *
Ещё заметил, что в половине схем не ставят кондёры (десятки пикофарад) на сигнальные линии.
Стоит с ними заморачиваться, или тоже игнорировать установку?

USB 2.0 при установленных конденсаторах (27 пФ) на сигнальных линиях просто не работает - устройство не опознается хостом. Всё же это очень значительная нагрузка на 480 Мбит интерфейс. USB 1.1 работает с ними нормально.
ukpyr
Цитата
Но почему автор не поставил PNP транзистор или P-мосфет?
вероятно потому что включающий уровень как правило 5В питание от USB.
aaarrr
Цитата(Demeny @ Jan 7 2010, 20:09) *
USB 2.0 при установленных конденсаторах (27 пФ) на сигнальных линиях просто не работает - устройство не опознается хостом. Всё же это очень значительная нагрузка на 480 Мбит интерфейс. USB 1.1 работает с ними нормально.

Вообще, тот же Интел рекомендует предусматривать элементы для подавления EMI/EMC/ESD, а ставить их только если это потребуется по результатам испытаний.
sonycman
Цитата(aaarrr @ Jan 7 2010, 23:57) *
Вообще, тот же Интел рекомендует предусматривать элементы для подавления EMI/EMC/ESD, а ставить их только если это потребуется по результатам испытаний.

Ага, значит, последовательные резисторы и эти пикофарадные кондёры чисто для уменьшения уровня излучаемых шумов?
Понятненько smile.gif
Резисторы всегда втыкают, а на кондёрах экономят...

Цитата(ukpyr @ Jan 7 2010, 21:44) *
вероятно потому что включающий уровень как правило 5В питание от USB.

Хм... уровень для включения ключа может быть какой угодно - зависит от схемотехники.

Цитата(Demeny @ Jan 7 2010, 21:09) *
USB 2.0 при установленных конденсаторах (27 пФ) на сигнальных линиях просто не работает - устройство не опознается хостом. Всё же это очень значительная нагрузка на 480 Мбит интерфейс. USB 1.1 работает с ними нормально.

Ну вот у STM32 именно USB2.0 -> прекрасно работает как с конденсаторами, так и без.
Другое дело, что скорость только Full Speed, а не High smile.gif
galjoen
Цитата(Demeny @ Jan 7 2010, 20:09) *
USB 2.0 при установленных конденсаторах (27 пФ) на сигнальных линиях просто не работает - устройство не опознается хостом. Всё же это очень значительная нагрузка на 480 Мбит интерфейс. USB 1.1 работает с ними нормально.

Странно это. В любом случае "опознание" (пересылка дескрипторов) идёт на full speed, а уже потом на high переключаются.
Цитата(sonycman @ Jan 7 2010, 23:53) *
Ну вот у STM32 именно USB2.0 -> прекрасно работает как с конденсаторами, так и без.
Другое дело, что скорость только Full Speed, а не High smile.gif

Тогда, в контексте этого обсуждения, это будет USB1.1.
А вообще там написано "компатибле" USB2.0. Маркетинговый ход такой... Как устройство, сделанное по стандарту USB1.1 и нормально работающее там, может при этом не работать на USB2.0???
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.