Страница 3 из 4

Re: питание USB

Добавлено: 14 фев 2016, 10:40
Blackman
... если есть консольная утилита или DLL, то как правило они подключаются легко и непринуждённо (System Exec / Call Library Function Node)
ykush windows command utility
https://www.yepkit.com/learn/hookup-guide-ykush-windows
Резко отпугивает цена ...
Так там не все так просто
https://acroname.com/sites/default/file ... k=qUTECPXf
Хорошо, если будет библиотека под обычный C, а если нет...
утверждают, что есть
https://acroname.com/reference/capi/index.html

Re: питание USB

Добавлено: 14 фев 2016, 19:10
dadreamer
Сейчас замерил питание на USB-порту с помощью обычного удлиннителя и тестера. 5 вольт подаётся на порт сразу же при включении компьютера и остаётся там до самого выключения.
dadreamer писал(а):сдаётся мне, что питание на USB хаб постоянно подаётся от БП, а программно можно только Data линиии отключать.
При подключении флэшки питание чуть проседает до 4.8 В. Если в реестре прописан параметр DisableOnSoftRemove=1, то при безопасном извлечении порт переводится в режим Disabled и перестают передаваться данные по сигнальным линиям. В результате напряжение на порту восстанавливается до 5 В. Если параметр DisableOnSoftRemove=0, то после безопасного извлечения устройство продолжает потреблять электроэнергию, передавая/принимая данные. Напряжение на порту остаётся где-то 4.8 В. Это касается Windows Vista и более поздних. В Windows XP поведение всегда соответствует DisableOnSoftRemove=1, т.е. порт переводится в режим Disabled.
В USR галочка "Отключать питание устройства после его остановки" по факту переключает параметр DisableOnSoftRemove в реестре (после изменения параметра требуется перезагрузка ОС). Естественно, физически питание на порту никогда не отключается.
Статья-пруф на эту тему: https://support.microsoft.com/en-us/kb/2401954

Теоретически подача 5 В на порт зависит от аппаратного конструктива материнки. Не исключаю, что существуют платы, где 5 В приходит на порт не сразу или даже по какому-то внешнему сигналу. Хотя это и маловероятно, т.к. матери по единому стандарту изготавливаются. Я наблюдал обратное поведение на старых матерях - напряжение на порту оставалось даже после выключения компьютера. Было удивительно наблюдать подсветку мыши/клавы, когда всё выключено. По-моему такая "фича" задавалась спец. джампером на плате. А вот опцию управления питанием мне наблюдать не доводилось.

Завтра ещё проверю на других машинах на работе, может, обнаружится что-нибудь интересное. Но в целом вердикт соответствует моему первому посту:
dadreamer писал(а):Программно нельзя снять +5 В с USB-порта, по крайней мере в Windows точно. Хочешь - не хочешь, а придётся использовать аппаратное реле, например, Cleware USB Connect или аналог. См. тему http://www.labviewportal.org/viewtopic. ... are#p65065

Re: питание USB

Добавлено: 15 фев 2016, 08:31
Vitekkz88
Мамка мамке рознь: схема подвода питания +5 В может отличаться, так же как и кол-во многоразовых предохранителей(либо ключей) и т.д.
В общем, программным способом отключить 5 В не получится. Дело даже не в OC, а именно в аппаратной части. На всех современных мат.платах USB-контроллер встроен в чипсет, а питание идёт напрямую с БП. Какой-то API-шной функции для отключения 5 Вольт никто не встречал :cry: Правда была гипотеза: если по входам питания на USB стоят некие ключи, а в BIOS есть настройка питания USB - то это может позволить снимать питание USB путём изменения положения ключа. И еще одна теория: послать запрос IRP(из словесного описания я понял то, что там трэш...).
Ищите альтернативу в виде переходной железки. Если хотите поговорить про аппаратные решения - то без проблем. Может даже схему нарисуем вместе или компонентную базу подскажем. Сделаете собственную железку с собственным API)

Re: питание USB

Добавлено: 15 фев 2016, 12:23
servk
Спасибо всем за участие, оказалось что эта тема обсуждалась на многих форумах. Решения есть (см напр проги упомянутые в начале), но только не на LV. Упомянутые dadreamer внешние модули RODOS производства OLIMP из Зеленограда оч интересны и не оч дороги, но драйверов LV под них нет. Так что если умельцы решат проблему управления питанием USB средствами LV, человечество оценит. Ну и будем ждать драйверов для RODOS под LV. Что касается питания USB напрямую от БП - у меня на ноуте напр из 4х портов USB один постоянно с питанием (для зарядки девайсов и пр), остальные выключаются при выключении ноута.

Re: питание USB

Добавлено: 15 фев 2016, 13:46
Vitekkz88
Что касается питания USB напрямую от БП - у меня на ноуте напр из 4х портов USB один постоянно с питанием (для зарядки девайсов и пр), остальные выключаются при выключении ноута.
Значит на эти USB питание подаётся дежурными 5 Вольт, а не прямыми. В мат.платах стационарных компьютеров тоже есть такая разводка питания. На переднюю панель выносят запитку от 5 В дежурного, а на задние разъемы постоянные 5 Вольт с БП. На некоторых моделях выносятся отдельные джемперы для переключения питания(мол, откуда брать? с дежурных 5 В или с постоянных 5 В).
servk писал(а):Решения есть (см напр проги упомянутые в начале)
Скиньте пожалуйста еще раз пример для программного отключения питания(тот, что Вы находили). Я проверю, насколько это работает на мат.плате с постоянной подачей питания на USB и с подачей питания по дежурным 5 В.

Re: питание USB

Добавлено: 15 фев 2016, 13:52
servk
Vitekkz88 писал(а):
Скиньте пожалуйста еще раз пример для программного отключения питания(тот, что Вы находили). Я проверю, насколько это работает на мат.плате с постоянной подачей питания на USB и с подачей питания по дежурным 5 В.
http://safelyremove.com/blog/ru/usbsafe ... -4-4-final

Re: питание USB

Добавлено: 15 фев 2016, 14:05
Vitekkz88
servk писал(а): http://safelyremove.com/blog/ru/usbsafe ... -4-4-final
Эта программа не отключает +5Вольт с выхода порта USB!
Я специально повешал на порт отладочную плату, она берет питание +5 по USB и диодом подсвечивает наличие этого питания.
Диод НЕ гаснет. Мультиметр кажет +5В. А Вам удалось? Что у вас за ноутбук? Или что за материнская плата?

Re: питание USB

Добавлено: 15 фев 2016, 14:10
servk
Vitekkz88 писал(а):
servk писал(а): http://safelyremove.com/blog/ru/usbsafe ... -4-4-final
Эта программа не отключает +5Вольт с выхода порта USB!
Я специально повешал на порт отладочную плату, она берет питание +5 по USB и диодом подсвечивает наличие этого питания.
Диод НЕ гаснет. Мультиметр кажет +5В. А Вам удалось? Что у вас за ноутбук? Или что за материнская плата?
Из описания:

В версиях ОС до Windows XP включительно, при отключении устройства, операционная система отключала питание на его порту; в случае флэшки - гас ее светодиод и в случае внешнего диска - прекращалось его вращение. Однако, по неизвестным причинам Microsoft изменил это поведение и начиная с Windows Vista, после остановки устройства флэшка продолжает светиться, а жесткий диск вращаться. Все современные жесткие диски, при прекращении подачи питания на ходу, умеют парковать головки автоматически поэтому, в теории, новое поведение не должно вредить устройству. Однако, на практике, при отключении питания на ходу, внешние винчестеры могут издавать странные душераздирающие звуки, что заставляет нервничать его владельца :)
USB Safely Remove может изменить это поведение и заставить систему отключать USB порты. Для того, чтобы включить эту функцию нажмите кнопку "Да", когда USB Safely Remove предложит Вам включить эту возможность:

Re: питание USB

Добавлено: 15 фев 2016, 14:47
servk
а вот пример обсуждения для Linux программеров: http://sysadm.pp.ua/linux/usb.html
в общем инфа есть что все возможно сделать

Re: питание USB

Добавлено: 15 фев 2016, 15:28
dadreamer
Проверил сегодня ещё на трёх машинах с разными мамками. Ситуация везде аналогична той, что описана выше.
servk писал(а):Из описания:

В версиях ОС до Windows XP включительно, при отключении устройства, операционная система отключала питание на его порту; в случае флэшки - гас ее светодиод и в случае внешнего диска - прекращалось его вращение. Однако, по неизвестным причинам Microsoft изменил это поведение и начиная с Windows Vista, после остановки устройства флэшка продолжает светиться, а жесткий диск вращаться. Все современные жесткие диски, при прекращении подачи питания на ходу, умеют парковать головки автоматически поэтому, в теории, новое поведение не должно вредить устройству. Однако, на практике, при отключении питания на ходу, внешние винчестеры могут издавать странные душераздирающие звуки, что заставляет нервничать его владельца :)
USB Safely Remove может изменить это поведение и заставить систему отключать USB порты. Для того, чтобы включить эту функцию нажмите кнопку "Да", когда USB Safely Remove предложит Вам включить эту возможность:
Вы хоть читаете, что я пишу?
dadreamer писал(а):В USR галочка "Отключать питание устройства после его остановки" по факту переключает параметр DisableOnSoftRemove в реестре (после изменения параметра требуется перезагрузка ОС). Естественно, физически питание на порту никогда не отключается.
Вам два человека говорят, что нельзя отключить питание 5 В программными методами. А вы всё стоите на своём. Персонаж романа не может вырвать страницы из собственной книги. Герой компьютерной игры не в силах изменить файлы самой игры. Программа не может разорвать провод питания от БП к хабу USB-порта.
servk писал(а):Так что если умельцы решат проблему управления питанием USB средствами LV, человечество оценит. Ну и будем ждать драйверов для RODOS под LV.
Запуск System Exec или вызов DLL через CLFN - это базовый курс :labview: . Если вы не умеете это делать, то читайте литературу, изучайте примеры от NI, смотрите форумы. Ничего сложного там нет. Вряд ли кто-то будет делать обёртку для простейших библиотек под :labview: .

Re: питание USB

Добавлено: 15 фев 2016, 15:40
dadreamer
Vitekkz88 писал(а):Правда была гипотеза: если по входам питания на USB стоят некие ключи, а в BIOS есть настройка питания USB - то это может позволить снимать питание USB путём изменения положения ключа.
Хотелось бы посмотреть на такую мать и поработать с этой опцией. Интересно, переключение ключа выполняется записью в некоторый базовый адрес USB-хаба или как-то иначе. Или, может, производитель платы предоставляет своё API.
Vitekkz88 писал(а):И еще одна теория: послать запрос IRP(из словесного описания я понял то, что там трэш...).
Это же обращение к драйверу ядра (sys) USB-контроллера. Если аппаратно питание не отключается, то драйвер не сможет это сделать. Максимум, переведёт порт в Disabled.

Re: питание USB

Добавлено: 15 фев 2016, 15:49
servk
dadreamer писал(а): Если вы не умеете это делать, то читайте литературу, изучайте примеры от NI, смотрите форумы. Ничего сложного там нет. Вряд ли кто-то будет делать обёртку для простейших библиотек под :labview: .
Замечательно что Вы все умеете, читаете и изучаете на форумах. Если сложного ничего нет - попробуйте и сделайте. Вот я не претендую на роль всезнайки-знатока и даже пытаться не буду. Если нет готового решения на LV- переживем. Главное не раздражайтесь, при желании погуглить эту тему увидите что не я один дурак интересовался этим вопросом, и найдете где черным по белому написано что задача решаема. В каких условиях, в каких ОС и на каких "мамках" - второй вопрос. Возможно что все конечно кто это пишет тоже дураки.

Re: питание USB

Добавлено: 15 фев 2016, 16:46
Vitekkz88
servk писал(а):Если нет готового решения на LV- переживем. Главное не раздражайтесь, при желании погуглить эту тему увидите что не я один дурак интересовался этим вопросом, и найдете где черным по белому написано что задача решаема.
servk, не обратили ли Вы внимание, что никто из таких решал не выложил конфигурацию оборудования(мамки)? Выдавая псевдорешения для всех материнок. Если Вам удастся найти материнскую плату с возможностью управления питанием USB - то у Вас что-то получится. Вдогонку можете поискать или почитать про чипсет и встроенный в него контроллер USB(может ли этот контроллер делать Power OFF на отдельно взятый порт, или он грохает сразу все порты или он этого вовсе не умеет). Опережая события я Вам скажу, что в быту вы таких материнок не найдете. Опять же я не могу знать всего. Люди же как-то отключают где-то на форумах...))
Подумайте логически: питание +5В идёт напрямую. Если хотите, я скажу так: питание идёт напрямую к контакту Вашего порта USB. Остальные 3 линии - это сигнальные и заземление. Чтобы снять это питание - надо дорожку перерезать. Иначе никак.
Отсюда возвращаемся в начало: необходимо знать,как заведено питание в матери,есть ли ключи размыкания цепи, сможет ли Ваш контроллер встроенный в чипсет отключать(разрывать цепь питания USB-портов) функцией драйвера. Операционная система роли не играет. Дело не в программной поддержке, а в аппаратной.
У меня нет линукса, а если был бы - то я убежден, что результат был бы прежним(по крайней мере на моей материнке).
Если будет легче, то: именно моя материнка не может отрубать 5 Вольт с USB. Ну вон, мои ряды dadreamer пополнил. У него 4 таких матери нашлось. Не везёт нам сегодня(
dadreamer, у меня на работе где-то валялся одноплатный комп. Там по-моему прошивка биоса хитрая какая-то с кучей настроек. Это логично, комп на одной плате и есть резон делать управление питанием usb. Посмотрю марку, гляну биос и настройки на недельке. Может что интересного там найду.

Re: питание USB

Добавлено: 15 фев 2016, 19:07
dadreamer
servk, вы бы разобрались для начала в сабже, прежде чем сомневаться в чужих ответах. Приведённый вами пример
servk писал(а):а вот пример обсуждения для Linux программеров: http://sysadm.pp.ua/linux/usb.html
в общем инфа есть что все возможно сделать
использует команду

Код: Выделить всё

root@sasha-desktop:/sys/bus/usb/devices# echo suspend > 1-6/power/level
требующую CONFIG_USB_SUSPEND=y. Если почитаете внимательно описание параметра, то станет понятно, что это аналог перевода девайса в disabled mode на винде. То есть, прекращается обмен по data-линиям и устройство перестаёт потреблять энергию порта. А напряжение 5 В как поступало на порт, так и будет поступать. Если мне не верите, то прочтите этот небольшой тред: http://archlinux.org.ru/forum/topic/1420/ (народ даже вольтметром замерял).
servk писал(а):Если сложного ничего нет - попробуйте и сделайте.
Ну, а кому надо-то?.. :dntknw: Я много чего за свою жизнь уже сделал в :labview: и не только. Ваша проблема для меня не актуальна на данный момент и я специально этим заниматься не собираюсь. Да и проблемы-то нет, если подумать. У меня в наличии есть и USB-реле, и релейные платы от Advantech, я в любой момент могу их подключить и применить по назначению, хоть в :labview: , хоть в C/C++. Для PCI/ISA плат есть инструменты под :labview: , для реле есть консольная прога и DLL. Всё прекрасно работает и управляется. Говорю, как есть.
servk писал(а):черным по белому написано что задача решаема
Решаема с помощью дополнительной железки в виде реле или внешнего хаба.

Vitekkz88, будет любопытно узнать о результатах. У нас тоже есть подобный комп, но как-то не доводилось им плотно заниматься. Да и староват он уже.

Re: питание USB

Добавлено: 15 фев 2016, 21:26
servk
Упорства в этом вопросе у меня нет, уже заявлял что раз нет решения - значит и ладно. Но раз во многих местах человечки пишут что подобную задачу все же как то решили, пытался выяснить правду без погружения в детали. Давайте закроем тему, вот если хотя бы для зеленоградских USB реле кто напишет драйвер на LV, будет здорово для отечества