Меню

Разветвитель для usb своими руками

Лёгкий способ сделать крохотный USB-хаб для Raspberry Pi

e07f5d91862372f755f01000966ce019

Перевод статьи с сайта самодельщика Retrocution

Бывало у вас такое, что вам не хватает USB-портов при создании проекта на Raspberry Pi Zero? Притом внешние USB-хабы или HATS не подходили из-за ограничений по размеру? Если да, или если вы просто ищете себе интересный проект с пайкой деталей, в результате которого получится нечто полезное, то этот проект – для вас!

2d92128ac208f68fc60a1929548612da

Я постоянно пытаюсь впихнуть Raspberry Pi в какие-нибудь предметы для моих проектов, и несколько из них используют Pi Zero, совершенно не имея свободного места для USB Hub/HAT. Я поискал и нашёл несколько сайтов, продающих крохотные платы с USB-хабами, однако стоимость у них довольно высокая. Поэтому я решил сделать собственную платку, которую достаточно просто собрать из всего лишь 6 дешёвых компонентов. У неё есть версия размером с ноготь на 2 порта и немногим более крупная версия на 4 порта. Я дал общий доступ к проектам плат на OSH Park и вы можете заказать их оттуда:

Конечно, платы, возможно, будут совершенствоваться и дальше, в основном на основе отзывов читателей. Пока что они работают нормально, но не стоит заказывать их сразу по 100 штук.

9beee9c00e6063dfafbc88aa9ef25eed
Обратная сторона платы на 4 порта

Материалы для изготовления

Керамический конденсатор 0603 10 мкФ, 3 шт (то же самое — eBay или AliExpress)

Резистор 0603 2.7кОм (аналогично)

Лучшим местом для таких покупок является Китай. Придётся подождать 2-3 недели, однако в итоге будет дешевле, чем у любого продавца в США [то же обычно верно и для России / прим. перев.]. Я всегда покупаю большие количества компонентов, чтобы хватало надолго.

Сборка платы

На фотографиях показана старая версия платы, но процесс сборки новой ничем не отличается.

Сначала нужно припаять FE1.1. Это может оказаться сложным, поскольку шаг (расстояние между ног) равен всего 0,64 мм. Я уже паял их вручную, однако достаточно просто соединить контакты вместе. Иногда можно провести паяльником, чтобы разделить контакты (не забудьте добавить флюс!), но если так этого сделать не получится, попробуйте использовать косичку для удаления припоя.

У меня отлично получилась пайка при помощи паяльного фена, и теперь я всегда использую этот метод. Для такого метода можно заказать у OSH Stencils трафарет после заказа платы. Трафареты помогут нанести паяльную пасту на небольшие площадки платы.

ed36de8414979dd2b1ed9cc5ad24f992

97de603d8f36949a8e47ce959a5f0aa3

При помощи трафарета у меня получается очень чисто поставить чип. У моего трафарета есть вырезы только для чипа, потому что я заказал его перед окончательной переделкой платы, но если вы закажете трафареты совместно с платами, у них будут вырезы для конденсаторов и резисторов.

5e81b98a3ffb35a8c800aa2dc2fc4421

Я использую такой паяльный фен. Он очень дешёвый (Amazon, Ali), у него есть много версий, однако все они, кажется, сделаны на разных фабриках по одному шаблону. Если вы не очень часто паяете компоненты с поверхностным размещением, то этот фен вам послужит. Для такой пайки крайне рекомендую прикупить силиконовый мат, чтобы не сжечь стол.

Затем я обычно ставлю три конденсатора на 10 мкФ. Поскольку у моего шаблона нет вырезов под них, я просто паяю их вручную. Добавляю флюса, и держу конденсатор пинцетом, припаивая каждую сторону по очереди. Обязательно держите его пинцетом, иначе он прилипнет к паяльнику.

7b67350e74b1b6cd7bdf59b514dd4d3a

Припаяв конденсаторы, я тем же методом паяю резистор на 2,7 кОм.

0d90e14d603f4d81c71e3b97b01edd9d

После установки планарных компонентов я ставлю осциллятор на 12 МГц.

537c471d4fd5be88376d63b63ef7d82f

Когда все компоненты установлены на места, и флюс очищен, вы получаете крутейший крохотный USB-хаб! Кстати, цвет покрытия плат на фото называется After Dark – это один из вариантов, предлагаемых OSH Park. Стандартным у них является фиолетовый, но мне очень нравится, как выглядят эти чёрно-медные платы, и к тому же, за цвет не берут дополнительных денег!

eeef27f69962acad4e3deca2eb8c393f

Если вы выбрали платы на 4 порта, их сборка будет абсолютно такой же.

Ниже привожу несколько справочных изображений со схемой подсоединения к Raspberry Pi Zero и USB-портам.

f65d2de8a68ae301bc91cb6d2fd6f805

d7ef5508d57fae352a78a29dba4314cd

df839124ca8095d725617922ce0ec98b

eee514d6164b41ffa1d14f2b9b618602

Источник

Как выбрать или изготовить USB-хаб

Сегодня для подключения периферийных устройств к компьютеру чаще всего используют интерфейс USB. Но рано или поздно пользователь обнаруживает, что все имеющиеся в его компьютере USB-порты заняты мышью, клавиатурой, WEB-камерой и другими устройствами, а вновь приобретённый принтер, TV-тюнер, USB-осциллограф или что-либо ещё подключить некуда. Как же соединить с компьютером 127 устройств, обещанных спецификацией USB?

Эксперименты в лабораторных условиях показали, что оба хаба без проблем работают с мышью, клавиатурой, адаптером USB-COM и звуковой картой, оснащённой интерфейсом USB. Однако с внешним жёстким диском и FLASH-накопителем работает только хаб DNS. При подключении таких устройств через безымянный хаб компьютер выдаёт сообщение «USB-устройство не определено».

Дополнительные эксперименты с цифровым интерфейсом трансивера показали, что хаб DNS и здесь работает без проблем, а вот использование безымянного хаба приводит к «зависанию» компьютера при каждом включении передатчика. При непосредственном без хаба подключении адаптера USB-COM и внешней звуковой карты к компьютеру всё работало без проблем.

Такая ситуация меня заинтересовала. Я решил выяснить, чем же различаются эти два хаба. Почему один полностью выполняет свои функции, а второй, в принципе, работает, но не всегда и не со всеми устройствами?

Каково же было моё удивление, когда после вскрытия корпусов выяснилось, что оба хаба собраны на одной и той же элементной базе и по абсолютно одинаковым схемам! Только в семипортовом установлены две одинаковые микросхемы-контроллера USB-хаба последовательно: к одному из четырёх нисходящих портов первого контроллера подключён восходящий порт второго аналогичного контроллера. Отключение второго контроллера путём перерезания печатных проводников ситуацию не изменило. Чтобы понять причину, пришлось знакомиться с основами устройства и работы шины USB.

С логотипом «USB 2.0» связан один тонкий момент. Хотя предельная пропускная способность этого интерфейса 480 Мбит/с, в спецификации заложена и возможность его работы в режимах LS и FS. Таким образом, пропускную способность 480 Мбит/с могут обеспечить только устройства, способные работать в режиме HS.

Разработчики USB рекомендуют использовать логотип «USB 2.0» только для HS-устройств, но на рынке свои законы и многие производители используют этот логотип и для FS-устройств, удовлетворяющих, по сути, лишь спецификации USB 1.1. Другими словами, надпись на упаковке «USB 2.0» ещё ни о чём не говорит. Устройства, полностью удовлетворяющие этой спецификации, должны иметь маркировку «USB 2.0 HI-SPEED» и явное указание на возможность работы со скоростью 480 Мбит/с.

Сигнал, передаваемый по линии связи со скоростью 480 Мбит/с, представляет собой прямоугольные импульсы, следующие с частотой до 480 МГц. Любому мало-мальски сведущему в радиотехнике человеку понятно, что для неискажённой передачи прямоугольных импульсов такой частоты необходимо при разработке печатной платы жёстко соблюдать требования к волновому сопротивлению линий передачи между микросхемами и разъёмами и его постоянству по всей длине линии.

Ну и, конечно, нужно соблюдать обычные требования к монтажу высокочастотных цепей. Все проводники должны быть минимальной длины, а блокировочные конденсаторы располагаться как можно ближе к соответствующим выводам микросхем.

При взгляде на фотографии печатных плат покупных хабов видно, что в хабе DNS (рис. 2) эти требования более-менее соблюдены. Разработчики же безымянного хаба (рис. 3) применили в нём одностороннюю печатную плату, поэтому волновое сопротивление линий связи сильно отличается от стандартных 90 Ом и наблюдается высокая чувствительность к электромагнитным помехам.

В обоих хабах использованы одинаковые микросхемы-контроллеры USB-хаба FE1.1s. Сайт их производителя http:// www.jfd-ic.com/ доступен, к сожалению, только на китайском языке. Возможная схема включения этой микросхемы показана на рис. 4. Она отличается от типовой отсутствием светодиодных индикаторов активных портов и дополнительной микросхемы энергонезависимой памяти. Подробнее с характеристиками и особенностями микросхемы FE1.1s можно ознакомиться в [1] (на английском языке).

Геометрические размеры сигнальных линий для получения требуемого волнового сопротивления рассчитаны с помощью программы TX-LINE [2]. Она бесплатна и доступна для скачивания после регистрации на сайте. Программа не требует инсталляции, работа с ней интуитивно понятна.

Читайте также:  Прибор грандера своими руками

Если хаб будет использоваться только как пассивный (все подключённые к нему устройства будут получать питание от компьютера), то диод VD1 можно заменить перемычкой. При подключении к хабу устройств, потребляющих более 500 мА, питания от компьютера будет недостаточно. В этом случае перемычку следует удалить и, не устанавливая диод VD1, подключить к разъёму XS5 источник стабилизированного напряжения 5 В необходимой мощности.

Для эксплуатации хаба как в пассивном, так и в активном режиме без перепаек диод с барьером Шотки VD1 в нём должен быть установлен. Он исключит попадание напряжения внешнего блока питания в USB-порт компьютера.

В принципе, для уменьшения толщины платы все детали можно разместить со стороны печатных проводников, но без металлизации отверстий это усложняет монтаж. Если необходимо, можно изменить размеры платы и расположение разъёмов uSb, немного скорректировав рисунок печатных проводников.

Микросхему FE1.1 s я выпаял из своего семипортового хаба, но в Интернете её можно приобрести и отдельно. Это один из немногих контроллеров USB-хаба, выпускаемых в корпусе SSOP-28 с шагом выводов 0,64 мм. Плата под такой корпус вполне может быть изготовлена методом термопереноса рисунка на фольгу.

Пришлось выпаять из семипортового хаба второй контроллер и заменить им первый на самодельной плате. Теперь полноценно заработали три порта из четырёх. Причём перестал работать в режиме HS тот порт, который с первым контроллером функционировал без проблем.

В документации на микросхему FE1.1 s сказано, что все её экземпляры после изготовления проходят выходной контроль. Очевидно, бракованные экземпляры отправляются не в мусор, а к безымянным производителям. Либо контроллер имеет какие-то недокументированные варианты исполнения. Так или иначе, вариант с тремя полноценными портами USB 2.0 меня устроил.

Обращаю внимание, что практически все дешёвые хабы с разъёмом для подключения внешнего блока питания не имеют никакой развязки между цепями внешнего и внутреннего питания. Контакты питания всех разъёмов просто соединены между собой. В результате есть шанс вывести из строя USB-порт компьютера, подав на него напряжение внешнего блока питания, подключённого к хабу.

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

Если сопротивление между корпусами разъёмов бесконечно, значит, кабель не экранирован и для работы в режиме High Speed непригоден. В любом случае корпус разъёма не должен соединяться ни с одним из его контактов. Никакие самостоятельные пайки, сращивание проводов, экранирование или замена разъёмов в кабеле недопустимы.

Подытоживая сказанное, сформулирую основные критерии выбора хаба USB 2.0 для высокоскоростного обмена информацией:

— приобретать хаб лучше в розничном магазине, заранее оговаривая возможность его возврата или обмена на другую модель;

— на упаковку и корпус хаба должны быть нанесены логотип «USB 2.0 High Speed» и явное указание на возможность работы со скоростью 480 Мбит/с;

— сразу после покупки (а по возможности до неё) следует проверить работу всех портов хаба с высокоскоростным устройством, например с FLASH-накопителем USB 2.0;

— если для подключения устройств к хабу или хаба к компьютеру планируется использование соединительных кабелей, предпочтение лучше отдать тем хабам, у которых все разъёмы смонтированы на плате, поскольку торчащие «хвостики» с разъёмами почти наверняка не имеют экранов. В результате один конец экрана кабеля окажется никуда не подключённым, что может привести к сбоям при работе в режиме High Speed;

— если предполагается использовать хаб с внешним блоком питания, будьте готовы к тому, что потребуется доработка хаба, описанная выше;

— приобретайте высококачественный экранированный кабель с надписью «High Speed» на нём, по возможности с прозрачной внешней оболочкой.

Если ни одна из продаваемых моделей хабов не устраивает, сделайте его сами, как описано выше.

Файл печатной платы в формате Sprint Layout 6.0 имеется здесь

Автор: Н. Хлюпин, г. Киров

Мнения читателей

Автор ты черт гребаный, ни на схеме ни в файле *.lay не стоИт маркировка первой ножки микросхемы, развел оказалась зеркальной, с@%ка предупреждать надо.

Уважаемый автор, правильно ли было рассчитывать волновое сопротивление при помощи вкладки связанных микрополосковых линий (coupled MS line)? Разве по этим двум проводникам распространяются разные не сигналы (прием и передача)? На Ваш взгляд не было бы правильнее рассчитывать во вкладке Microstrip?

Вы можете оставить свой комментарий, мнение или вопрос по приведенному выше материалу:

Источник

FE1.1, FE2.1 или что нам стоит USB HUB построить

Лирическое отступление
8ff08c
Однажды возникла у меня на работе задача встроить USB HUB в уже имеющееся устройство. Первая мысль была — заказать некоторое кол-во готовых хабов у наших китайских друзей, и лишив их корпуса, впихнуть в корпус собственно конечного устройства. Но этот вариант был отметён по причине абсолютного отсутствия места, да и как то всё таки кривое решение. Тогда было решено встроить USB HUB в уже имеющеюся печатную плату. Благо места на плате для этих действий было достаточно.
Порыскав на предмет того, на основе какой микрухи можно построить USB 2.0 High Speed USB HUB, наткнулся на очень вкусные по цене микрухи FE1.1 и FE2.1, отлчие у которых только в количестве портов хаба — 4 и 7 соответственно.

Отмазки
В приведённых примерах не будет реализована защита от перегрузки по току USB порта, хотя микруха это тоже умеет. Мне это было не надо. Если вам будет интересно, то в даташите схемы даны. Всё будет рассмотрено на примере микросхемы FE1.1 (не путать с FE1.1S, хотя там тоже всё просто. FE1.1S является самой урезанной по всем параметрам в этой линейке), FE2.1 отличается только кол-вом портов.
Ну к сути.

Суть
Микросхема FE1.1 представляет из себя однокристальный USB HUB, которому для работы надо минимум деталей. А именно кварц на 12МГц, пару конденсаторов и несколько резисторов.

Распиновка
FE1.1 выпускается в корпусах LQFP48 и QFN48, отличие в распиновке не наблюдаются.
18b78a

Строим HUB

И так, заказав данные микросхемы я по быстрому набросал схему хаба, вот такую:
f055ca

Опыт использования

На самом деле, хаб выполненный по данной схеме работает без каких либо нареканий. На некоторых форумах я встречал описания проблем при применении хабов на данных микрухах, такие как периодический сброс хаба, и сигналы о перегрузке, но как описано выше, причину их мне вроде бы удалось найти. Девайс с хабом построенным по схеме приведённой выше работает уже больше года без нареканий.

Ещё отмазки
На самом деле как мне кажется, мало кому из электронщиков часто надо самостоятельно изготовить USB HUB. Но если задача возникла такая, вот решение дешёвое и сердитое:)
Даташит на FE1.1, FE2.1 и схематика для FE1.1 в прикрепленном архиве.

Источник

Пошаговая сборка USB хаб из старого монитора

Порой для работы за компьютером не хватает нужного количества USB- портов при избытке USB — устройств. Чтобы решить эту проблему, есть два варианта. Первый – отсоединить ненужные устройства на данный момент, освободив, таким образом, USB – порт. Второй – приобрести хаб или концентратор USB – устройство с несколькими портами. Разнообразные виды имеются в продаже. Концентратор можно смонтировать самостоятельно из вышедшего из строя монитора компьютера или телевизора.

speedlink sl 140011 bk images 1787299180

Преимущества использования USB хаба

Использование USB хаба расширяет функциональную деятельность компьютера. Увеличение портов USB уменьшает износ разъемов. Кроме этого, экономится время. Не отвлекаясь на переключение устройств, можно быстро и качественно работать. Если системный блок установлен под столом, установив хаб USB, не нужно нагибаться, чтобы искать разъем. Просто можно установить самодельный концентратор рядом с монитором компьютера.

Читайте также:  Починить мышку своими руками

Как собрать концентратор USB

Для работы понадобятся:

Берется концентратор от непригодного монитора LG или Samsung, освобождается от лишних проводов. В результате получается небольшая панель.

В наличии – 4 порта USB и один USB тип В. Если подключить его напрямую к компьютеру, то ПК ничего не видит. Сбоку на панели есть разъем, к нему подключено питание 5 вольт и два центральных – заземление.

К разъему припаиваются два провода, которые подсоединяются к компьютеру. На экране монитора компьютера в опции «Устройства со съемными носителями» определяется дополнительный USB хаб. К нему подключается флешка. Если флеш работает, проверка закончена.

Проверив работу, можно взять питание от самого порта USB к компьютеру, непосредственно припаивая провод на плате. Так соединятся USB и питание компьютера.

Концентратор должен определиться при подключении порта USB.

Таким образом, из концентратора от старого монитора получился новый USB девайс.

11 2

В данном концентраторе стоит версия 1.1, которая работать будет медленно. Если усилить дополнительной платой, то скорость передачи данных увеличится. Хаб вставляется в коробочку и можно работать.

К стационарному USB — порту можно подключить несколько хабов. По теории – 127 устройств в один порт. Но необходимо помнить, что передача данных распределяется между всеми устройствами. Поэтому, скорость может замедлиться.

Источник

Как превратить «столетний» usb-хаб в «умный» управляемый и сэкономить при этом 300$

Как-то давно понадобился мне хаб, желательно с большим количеством портов и c достаточно удобной формой, пригодной для встраивания вместо флоппи-дисковода в отсек 3,5». Беглый просмотр барахолки подкинул модель D-link DUB-H7, да еще и в комбинации «2 по цене 1». Внешний осмотр ничего особенного не дал, хаб как хаб, сделан добротно, капитальный «принтерный» USB AM-BM на оборотной стороне и 3 А блок питания. Как всегда первым делом разобрал, порадовался малому количеству пустых мест вместо элементов вкупе с качественной пайкой и успокоился. Правда на всякий случай зашел в интернет посмотреть, а что это за хаб и есть ли интересные проекты с его участием. Проектов не оказалось, отзывы пользователей 50/50, в общем, никакой динамики. Хаб на протяжении 5-7 лет довольно сносно работал и выполнял свою задачу, потом плавно переместился в коробку для электронного хлама и вполне возможно сгинул бы в итоге вместе с безызвестными переходниками, адаптерами и т. п. Но произошло у меня в жизни событие, которое заставило-таки меня покопаться в мешках со старым барахлом, найти этот, как оказалось уникальный D-link, и стряхнув пыль извлечь его на божий свет. Если интересно послушать зачем — добро пожаловать под cut.

3a7fdf977a4d085c2fcb08c4491a000f

Intro или Плач о жадных производителях usb-хабов

С появлением маленьких удобных SoC роутеров (вроде любовно описанного мной в статье Руководство по доведению «до кондиции» клона популярного китайского мини-роутера Hame A15, он же «unbranded A5-V11» ) и повсеместного внедрения openwrt для управления сонмами устройств (в абсолютном большинстве случаев, это устройства подключаемые по USB) очень актуальной задачей становится задача управления электропитанием всевозможных модемов, картридеров, usb-rs232 преобразователей и т. д. и т. п. Найболее часто встречается необходимость управления портом при работе с GSM-модемами (для перезагрузки, например). В принципе, народ наработал уже достаточное количество решений. Для этих целей, начиная от использования свободных GPIO выводов в роутере, и заканчивая готовыми реле. Существуют решения и от сторонних производителей. Это например программируемый USB хаб на 4 порта от Acroname, который и в корпусе приятном и программным обеспечением богат, но стоит около 300$.

5cbcdd5404d816d47e2a6917b9639f98

Есть вариант подешевле, умный переключаемый хаб с приятным названием Yupkit YKUSH всего лишь за 35€:

f0d7f444dbf40fd96967cd8a4900d783

Самые же экономные могут использовать связку из самого дешевого usb хаба, нормально закрытого 5V реле, и любой из Arduino-к для отключения питания от usb порта в случае необходимости. Стоимость такого решения Выдержки из спецификации, касающиеся управления питания USB

Self-powered hubs may have power switches that control delivery of power downstream facing ports but it is not required. Bus-powered hubs are required to have power switches. A hub with power switches can switch power to all ports as a group/gang, to each port individually, or have an arbitrary number of gangs of one or more ports. A hub indicates whether or not it supports power switching by the setting of the Logical Power Switching Mode field in wHubCharacteristics. If a hub supports per-port power switching, then the power to a port is turned on when a SetPortFeature(PORT_POWER) request is received for the port. Port power is turned off when the port is in the Powered-off or Not Configured states. If a hub supports ganged power switching, then the power to all ports in a gang is turned on when any port in a gang receives a SetPortFeature(PORT_POWER) request. The power to a gang is not turned off unless all ports in a gang are in the Powered-off or Not Configured states.

Although a self-powered hub is not required to implement power switching, the hub must support the Powered-off state for all ports. Additionally, the hub must implement the PortPwrCtrlMask (all bits set to 1B) even though the hub has no power switches that can be controlled by the USB System Software.

Переводя на русский, получается, что в стандарте USB уже прописана возможность управления питанием портов, с помощью т.н. Per-Port Power Switching (PPPS), но вот встретить устройство, которое бы поддерживало эту возможность не просто тяжело, а очень тяжело. Для реализации PPPS-функционала необходимы дополнительные компоненты (полевые транзисторы и обвязка), которые в целях экономии в хабы не устанавливаются.

Чутко реагируя на запросы рынка некоторые производители указывают в спецификациях хабов функцию PPPS, но на деле дальше надписи на коробке дело не идет. И в принципе, придраться тяжело, ведь многие чипы внутри хабов эту функцию поддерживают, но вот реализовать ее без дополнительных переключателей (транзисторов) невозможно (чаще всего USB порты напрямую подключены к линии +5V).

Я даже разобрал специально несколько маленьких USB-хабов, которые планировал использовать совместно c A5-V11 роутером. Внутри оказались: чип GL850G и горяче любимый китайцами FE1.1s. Естественно внутри обнаружились только сами контроллеры с минимумом деталей. Ввиду миниатюрного размера платы поместить даже навесным монтажом транзистор и примкнувшие к нему детали тяжело. Пришлось это успокоится. Хотя, в зависимости от чипа, если в даташите встречается упоминание о over-current detection and Individual or ganged power control, то можно провести операцию по smart-изации такого устройства по методу описанному в статье. Товарищ использовал комбинацию из транзистора и кучки резисторов для включения функции PPPS в своем хабе.

0b1202831fd6a456a90f8ab01c9ed48e
a5de65b1118b764b9fda1d32a1fb47f9

Также читая документацию, ловишь себя на том, что в ней нет-нет да и встречается упоминание о том, что режим управления портами можно реализовать, добавив дополнительно в схему какой-нибудь AIC1526-0 или MIC2026 (Dual-channel power distribution switch).

vnvyarpe24tec4a6skp0irp8grk

Часть основная или переходим к сути

Обуреваемый невеселыми мыслями по поводу покупки китайских хабов с неизвестным функционалом («кота в мешке») и невозможности предварительной их проверки, я нечаянно натолкнулся на статью, посвященную настройке openwrt для управления питанием USB-хаба, притом в качестве примера приведен тот самый, заброшенный и забытый D-Link DUB-H7 в сером корпусе.

b93ohvaf

Изучив матчасть стало ясно, что на борту хаба помимо достаточно продвинутого контроллера Philips ISP1521BE есть и целая куча тех самых dual-channel power distribution switch AIC1528-0 для полноценного переключения питания. Хотя судя по даташиту, чип с минимальным обвесом сам может управлять питанием downstream портов (а еще там много чего, как оказалось, не реализовано, например индикация активности upstream порта с помощью технологии GoodLink, или хост USB 1.1 для корректной поддержки смеси 2.0 и 1.1 на downstream портах и т.д. и т.п.).

Читайте также:  Раздвижная мебель своими руками

Кстати, для тех, кто решится повторить пройденный мной путь, сразу скажу, что современные версии D-Link DUB-H7 (в черном глянцевом корпусе) уже не так полезны, как старички серого цвета.

По информации с wikidevi.com (1,2,3,4) существует несколько ревизий данного хаба, с различным набором компонентов на борту, и соответственно с различным функционалом (А1/A5 — ISP1521BE 7-port, B1-2xGL854G 4-port, C1 — 2xGL850Z 4-port).

Внимание на D-Link DUB-H7 обращено еще и потому, что помимо его неплохого функционала, это еще и самый доступный (как по цене, так и по распространенности) в наших краях вариант. Из моделей, которые могли упоминаться попутно с «Per-Port Power Switching» можно дополнительно отметить, например, такие:

Мне искать упомянутые устройства не довелось, потому что когда-то повезло с версией ревизии A5. Правда сейчас, если бы пришлось покупать такой хаб, я бы постарался найти ревизию B1, потому что помимо управления питанием портов, чип, на котором она построена (GL854G) имеет внутри такую штуку, как Multi Transaction Translator.

Важность наличия Multi Transaction Translator (MTT) в USB хабе

Небольшое отступление для того, чтобы расказать, что такое этот Multi Transaction Translator (MTT) и почему он так важен и нужен. Передатчик операции (англ. transaction translator, TT) является важным компонентом любого высокоскоростного хаба, который обеспечивает связь между upstream и downstream портами концентратора, особенно в случае, когда эти порты работают на разных скоростях передачи данных. Фактически, TT отделяет низко- и среднескоростные устройства, от высокоскоростных (сугубо USB 2.0, например) и отвечает за работу на скоростях USB 1.1.

Передатчик операции может быть двух видов — одинарным (англ. Single Transaction Translator, STT) или множественным (англ. Multiple Transaction Translator, MTT). В случае STT используется один передатчик для всех портов, а в случае MTT — у каждого порта свой передатчик. Понятно что первый вариант более дешевый и простой, откуда происходит и основной недостаток такого варианта — в случае подключения к хабу нескольких USB 1.1 портов все они будут работать через одно-единственное «бутылочное горлышко». Думаю можно представить что будет со скоростью обмена.

g7eibabozthfur42lw3je15r tk

Говоря простым языком, STT-хабы имеют ограничение на количество устройств, которыми можно пользоваться одновременно. В противном случае это чревато потерей пакетов из-за конфликтов в планировании передачи данных, перегрузкой хаба (особенно в случае использования активно обменивающихся данными устройств, вроде звуковых карт) и т.п. Поэтому лучше при выборе хаба сразу ориентироваться на устройства с MTT, а не искать потом причину нестабильности в работе. Если хаб уже имеется, и он, к несчастью, оказался с STT, то остается только внимательно проверить стандарты подключенных к хабу устройств и, по возможности, сократить количество подключенных USB 1.1 до одного.

К сожалению, абсолютное большинство недорогих хабов, построенных на бюджетных чипах (fe1.1s, GL850G, и ISP1521BE моего A5 хаба) на борту имеют STT, более дорогие и продвинутые (GL852G, GL854G (B1 ревизия обсуждаемого D-link DUB-H7), GL3520, VL812, VL813, SMSC USB2514) работают под управлением MTT.

Bus 001 Device 005: ID 2001:f103 D-Link Corp. DUB-H7 7-port USB 2.0 hub
Couldn’t open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 1 Single TT
bMaxPacketSize0 64
idVendor 0x2001 D-Link Corp.
idProduct 0xf103 DUB-H7 7-port USB 2.0 hub
bcdDevice 1.00
iManufacturer 0
iProduct 0
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0001 1x 1 bytes
bInterval 12

Вместо lsusb можно использовать утилиту hwinfo с ключем —usb (ее желательно предварительно установить через sudo apt-get install hwinfo). Тогда вывод информации о usb устройствах будет выглядеть немного иначе:

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

Управляем питанием USB-портов

Cкажу сразу, найти способ реализации функционала PPPS в среде Windows мне не удалось (хотя бы из праздного интереса). Максимум — включить/отключить устройство с помощью утилиты devcon. Буду рад, если кто-то из читателей поправит и дополнит. А пока же все процедуры проводятся на примере Ubuntu (в случае openwrt – алгоритм аналогичен, хотя в последних trunk-ах она уже должна быть включена в состав «дистрибутива»).

Итак, возможность Per-Port Power Switching (PPPS) или «попортового переключения питания» реализуется на хабах с аппаратной поддержкой этой функции с помощью программы hub-ctrl или ее потомка uhubctrl. Рассмотрю их по-очереди.

HUB-CTRL

Программа написана японским борцом за независимость инженером Niibe Yutaka в далеком 2006 году. Но работает без проблем и сейчас. Для установки нам понадобится любой *nix и библиотека libusb-dev. На примере Ubuntu 16.04 LTS алгоритм следующий:

В случае недоступности адреса, можно вручную закачать исходники отсюда или отсюда и скомпилировать описанной выше командой.

У программы достаточно простой синтаксис командной строки, укладывающийся в следующее описание:

Для того, чтобы узнать эти параметры, достаточно запустить команду lsusb:

ppobtz0tg81cjzgnvla8ej1vw5s

А вот так будет выглядеть конфигурация, когда все порты включены:

ko4rwlpq2 uxinhoukzh

Чтобы получить конфигурацию как на картинке выше, понадобилось последовательно выполнить следующие команды (для изначально отключенных портов):

Соответственно, не сложно написать скрипт, который заставит for fun мигать светодиоды в нужной последовательности. Примеры таких вещей уже есть и успешно функционируют:
азбука Морзе на usb-хабе, елочные гирлянды и т.д. и т.п. Мне вот из возможностей hub-ctrl не хватило функции циклического включения для реализации своих сиюминутных светотехнических фантазий (чтобы не тратить время на написание скрипта ну и т.п.). Этот досадный недостаток устранен в преемнике — uhubctl.

UHUBCTL

Программа uhubctl представляет из себя оптимизированный аналог hub-ctrl и обладает некоторыми косметическими отличиями (ну и конечно же поддерживает большее количество устройств).

pnqgdwes bvg0n35yepl4pjjsp0

Алгоритм компиляции программы аналогичен алгоритму для hub-ctrl. За тем только исключением, что дополнительно нужно установить библиотеку libusb-1.0 (версия 1.0.12 или позднее) привычной командой sudo apt-get install libusb-1.0-0-dev, а затем скомпилировать бинарик командой make.

Синтаксис запуска программы следующий

Что из этого всего следует, или Выводы

А следует из этого то, что «секрет» в старом хабе от D-Link все-такие есть. Использование описанной технологии (PPPS) вполне обосновано при необходимости удаленного управления массивом устройств, подключенных к шине USB. Более того, способ этот уже используется для отключения жестких дисков, веб-камер и GSM-модемов (таких как на картинке):

d2999ae9b1938357484853650973e9b0

Хотя, что касается модемов и упомянутого мной D-link DUB-H7, то есть люди, которые подвергают сомнению работоспособность такой связки (при работе с программой hub-ctrl).

Описанные в статье утилиты (lsusb, hwinfo, hub-ctrl) могут выступать отличным подспорьем при выборе очередного USB-хаба, особенно, если нет доступа к просмотру внутреннего устройства. На хабре уже описывались пользовательские идеи и ожидания от идеальных usb-хабов (здесь и здесь). Описанные алгоритмы проверки существующих хабов, на мой взгляд, отлично дополнят и разбавят описанные авторами подходы. Ну и так, вдогонку, герой моей статьи (D-link DUB-H7 ver. A5) на мой взгляд очень неплохо выглядит с точки зрения схемотехнических решений. На сим, пожалуй, откланяюсь 🙂

s35lvmfuuc9jd67i9gvfk5s67n0

jjbpk6wn6mj9ftl9m2i8wscjgo

Что за детали установлены на обведенных позициях (а может быть кто-то даже видел схему)? Особенно интересуют элементы RP1. RP2 (подозреваю на резисторную сборку из 0-х cопротивлений).

Дополнение: если вдруг кому-то понадобится дамп прошивки микросхемы EEPROM 24C02, то выглядит он вот так:

Важно! Все обновления и промежуточные заметки из которых потом плавно формируются хабра-статьи теперь можно увидеть в моем телеграм-канале lab66. Подписывайтесь, чтобы не ожидать очередную статью, а сразу быть в курсе всех изысканий 🙂

Источник

Adblock
detector