Имеется внешнее USB устройство (составное, представляет из себя несколько десятков виртуальных com портов), питается оно от своего БП. Пытаюсь подключить это устройство к ПК, получаю ошибку о том, что недостаточно ресурсов USB контроллера. Путем отключения всех других USB устройств кроме мышки, удается соединить желаемое устройство с ПК. Но стоить чуть задеть кабель, как устройство отпадает. Иногда приходит в себя если вытащить USB штекер и воткнуть обратно, иногда приходится перезагружать ПК.
ПК старенький и я грешил на нехватку напряжения на USB. Потому купил PCI-E USB контроллер (ORIENT VA-3U4PE USB 3.0), он имеет дополнительное питание от Molex. Подключил, втыкаю свое устройство и при установке драйверов для него отваливается сам USB контроллер с ошибкой 43. После этого при попытках с ним что-то сделать (обновить драйвера, отключить и включить в диспетчере и тд) ПК виснет намертво. Помогает только перезагрузка ПК. Если отключить устройство и перезагрузить ПК контроллер приходит в норму.
Подскажите, как совладать с этой нечистью? На других двух ПК поновее устройство работает штатно. Мне нужно подключить несколько таких устройств, но проблемы возникают даже с одним.
В своем ответе на этот вопрос Сколько можно подключить usb флешек в линуксе? я уже частично разъяснял эту ситуацию. USB имеет ограничения на число устройств и число устройств одного типа. Вероятно, вы в разных комбинациях умудряетесь исчерпать эти ограничения. Проблемы переменного свойства (устройство подключается, потом отваливается), вероятнее всего, имеют электрический характер - мощность цепи питания встроенного контроллера - недостаточна. Чтобы PCI-E контроллер заработал, отключите в биосе встроенный. Если не поможет - тогда уже совсем непонятно.
На счет ограничений на уровне протокола USB - я тоже об этом думал. 127 устройств не такая большая цифра. Но ведь на другом ПК устройство заработало, а кроме него к данному ПК по USB подключена только мышка с клавиатурой, как и на других ПК.
Все указывает на недостаток питания. Мне казалось, что PCI-E контроллер с дополнительным питанием должен решить эту проблему. Но потом я понял, что он запитывается от Molex с того же самого БП. Изначально я проверил теорию о проблемах с БП путем отключения дополнительного жесткого диска - это никак не помогло. Но БП старый, может он просто напросто не обеспечивает стабильное напряжение в 5 вольт? Хотя казалось бы, зачем оно, если у устройств внешнее питание?
Может ли помочь ситуации использование внешнего хаба с внешним питанием (и, возможно, полным физическим отключением VCC линии от ПК)?
Кстати, я правильно понимаю, что в теории я могу повесить 127 устройств на штатный контроллер и 127 устройств на контроллер PCI-E?
Cyapa, да, нужно начинать с хаба (хабов) с внешним питанием. Глюки с количеством устройств одного типа могут быть, как я уже писал, весьма далеки (в разы меньше) от теоретических пределов из-за особенностей драйверов, ОС и так далее.
Заколхозил девайс - подвел питание от дополнительного БП (зарядка от айфона, 5В и 1А). Линию питания от ПК отключил физически (сначала хотел бросить ее через диод Шоттки, но для надежности убрал совсем). К этой радости добавил электролитический конденсатор на 100 микрофарад, для надежности опять же.
При подключении устройства через PCI-E контроллер установка драйверов зашла чуть дальше и ОС отрапортовала о недостаточности ресурсов контроллера. Дальше повторилась старая картина с ошибкой 43.
О каких ресурсах контроллера может идти речь в подобном случае? Не уж то проблема в трехвольтовой линии данных?
Cyapa, ошибка 43 - это довольно бессмысленная хрень, которая не описывает то, что происходит на самом деле. Это может быть просто кривой драйвер. Питание тут, вероятнее всего, совершенно не при чем.