питание USB

Простейшие вопросы в области инженерной разработки

Re: питание USB

Postby Blackman on 14 Feb 2016, 10:40

... если есть консольная утилита или 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
Blackman
leader
leader
 
Posts: 626
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 148

Re: питание USB

Postby dadreamer on 14 Feb 2016, 19:10

Сейчас замерил питание на USB-порту с помощью обычного удлиннителя и тестера. 5 вольт подаётся на порт сразу же при включении компьютера и остаётся там до самого выключения.
dadreamer wrote:сдаётся мне, что питание на 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 wrote:Программно нельзя снять +5 В с USB-порта, по крайней мере в Windows точно. Хочешь - не хочешь, а придётся использовать аппаратное реле, например, Cleware USB Connect или аналог. См. тему viewtopic.php?f=84&t=8168&p=65109&hilit=cleware#p65065
User avatar
dadreamer
doctor
doctor
 
Posts: 2783
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 696
I/O VIP vision internet

Re: питание USB

Postby Vitekkz88 on 15 Feb 2016, 08:31

Мамка мамке рознь: схема подвода питания +5 В может отличаться, так же как и кол-во многоразовых предохранителей(либо ключей) и т.д.
В общем, программным способом отключить 5 В не получится. Дело даже не в OC, а именно в аппаратной части. На всех современных мат.платах USB-контроллер встроен в чипсет, а питание идёт напрямую с БП. Какой-то API-шной функции для отключения 5 Вольт никто не встречал :cry: Правда была гипотеза: если по входам питания на USB стоят некие ключи, а в BIOS есть настройка питания USB - то это может позволить снимать питание USB путём изменения положения ключа. И еще одна теория: послать запрос IRP(из словесного описания я понял то, что там трэш...).
Ищите альтернативу в виде переходной железки. Если хотите поговорить про аппаратные решения - то без проблем. Может даже схему нарисуем вместе или компонентную базу подскажем. Сделаете собственную железку с собственным API)
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
leader
leader
 
Posts: 909
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 250
hardware I/O VIP

Re: питание USB

Postby servk on 15 Feb 2016, 12:23

Спасибо всем за участие, оказалось что эта тема обсуждалась на многих форумах. Решения есть (см напр проги упомянутые в начале), но только не на LV. Упомянутые dadreamer внешние модули RODOS производства OLIMP из Зеленограда оч интересны и не оч дороги, но драйверов LV под них нет. Так что если умельцы решат проблему управления питанием USB средствами LV, человечество оценит. Ну и будем ждать драйверов для RODOS под LV. Что касается питания USB напрямую от БП - у меня на ноуте напр из 4х портов USB один постоянно с питанием (для зарядки девайсов и пр), остальные выключаются при выключении ноута.
servk
junior
junior
 
Posts: 62
Joined: 13 Feb 2016, 19:35
LabVIEW Version: 8
Karma: 0

Re: питание USB

Postby Vitekkz88 on 15 Feb 2016, 13:46

Что касается питания USB напрямую от БП - у меня на ноуте напр из 4х портов USB один постоянно с питанием (для зарядки девайсов и пр), остальные выключаются при выключении ноута.

Значит на эти USB питание подаётся дежурными 5 Вольт, а не прямыми. В мат.платах стационарных компьютеров тоже есть такая разводка питания. На переднюю панель выносят запитку от 5 В дежурного, а на задние разъемы постоянные 5 Вольт с БП. На некоторых моделях выносятся отдельные джемперы для переключения питания(мол, откуда брать? с дежурных 5 В или с постоянных 5 В).
servk писал(а):Решения есть (см напр проги упомянутые в начале)

Скиньте пожалуйста еще раз пример для программного отключения питания(тот, что Вы находили). Я проверю, насколько это работает на мат.плате с постоянной подачей питания на USB и с подачей питания по дежурным 5 В.
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
leader
leader
 
Posts: 909
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 250
hardware I/O VIP

Re: питание USB

Postby servk on 15 Feb 2016, 13:52

Vitekkz88 wrote:
Скиньте пожалуйста еще раз пример для программного отключения питания(тот, что Вы находили). Я проверю, насколько это работает на мат.плате с постоянной подачей питания на USB и с подачей питания по дежурным 5 В.

http://safelyremove.com/blog/ru/usbsafe ... -4-4-final
servk
junior
junior
 
Posts: 62
Joined: 13 Feb 2016, 19:35
LabVIEW Version: 8
Karma: 0

Re: питание USB

Postby Vitekkz88 on 15 Feb 2016, 14:05

servk писал(а): http://safelyremove.com/blog/ru/usbsafe ... -4-4-final

Эта программа не отключает +5Вольт с выхода порта USB!
Я специально повешал на порт отладочную плату, она берет питание +5 по USB и диодом подсвечивает наличие этого питания.
Диод НЕ гаснет. Мультиметр кажет +5В. А Вам удалось? Что у вас за ноутбук? Или что за материнская плата?
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
leader
leader
 
Posts: 909
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 250
hardware I/O VIP

Re: питание USB

Postby servk on 15 Feb 2016, 14:10

Vitekkz88 wrote:
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 предложит Вам включить эту возможность:
servk
junior
junior
 
Posts: 62
Joined: 13 Feb 2016, 19:35
LabVIEW Version: 8
Karma: 0

Re: питание USB

Postby servk on 15 Feb 2016, 14:47

а вот пример обсуждения для Linux программеров: http://sysadm.pp.ua/linux/usb.html
в общем инфа есть что все возможно сделать
servk
junior
junior
 
Posts: 62
Joined: 13 Feb 2016, 19:35
LabVIEW Version: 8
Karma: 0

Re: питание USB

Postby dadreamer on 15 Feb 2016, 15:28

Проверил сегодня ещё на трёх машинах с разными мамками. Ситуация везде аналогична той, что описана выше.
servk wrote:Из описания:

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

Вы хоть читаете, что я пишу?
dadreamer wrote:В USR галочка "Отключать питание устройства после его остановки" по факту переключает параметр DisableOnSoftRemove в реестре (после изменения параметра требуется перезагрузка ОС). Естественно, физически питание на порту никогда не отключается.

Вам два человека говорят, что нельзя отключить питание 5 В программными методами. А вы всё стоите на своём. Персонаж романа не может вырвать страницы из собственной книги. Герой компьютерной игры не в силах изменить файлы самой игры. Программа не может разорвать провод питания от БП к хабу USB-порта.
servk wrote:Так что если умельцы решат проблему управления питанием USB средствами LV, человечество оценит. Ну и будем ждать драйверов для RODOS под LV.

Запуск System Exec или вызов DLL через CLFN - это базовый курс :labview: . Если вы не умеете это делать, то читайте литературу, изучайте примеры от NI, смотрите форумы. Ничего сложного там нет. Вряд ли кто-то будет делать обёртку для простейших библиотек под :labview: .
User avatar
dadreamer
doctor
doctor
 
Posts: 2783
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 696
I/O VIP vision internet

Re: питание USB

Postby dadreamer on 15 Feb 2016, 15:40

Vitekkz88 wrote:Правда была гипотеза: если по входам питания на USB стоят некие ключи, а в BIOS есть настройка питания USB - то это может позволить снимать питание USB путём изменения положения ключа.

Хотелось бы посмотреть на такую мать и поработать с этой опцией. Интересно, переключение ключа выполняется записью в некоторый базовый адрес USB-хаба или как-то иначе. Или, может, производитель платы предоставляет своё API.
Vitekkz88 wrote:И еще одна теория: послать запрос IRP(из словесного описания я понял то, что там трэш...).

Это же обращение к драйверу ядра (sys) USB-контроллера. Если аппаратно питание не отключается, то драйвер не сможет это сделать. Максимум, переведёт порт в Disabled.
User avatar
dadreamer
doctor
doctor
 
Posts: 2783
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 696
I/O VIP vision internet

Re: питание USB

Postby servk on 15 Feb 2016, 15:49

dadreamer wrote: Если вы не умеете это делать, то читайте литературу, изучайте примеры от NI, смотрите форумы. Ничего сложного там нет. Вряд ли кто-то будет делать обёртку для простейших библиотек под :labview: .

Замечательно что Вы все умеете, читаете и изучаете на форумах. Если сложного ничего нет - попробуйте и сделайте. Вот я не претендую на роль всезнайки-знатока и даже пытаться не буду. Если нет готового решения на LV- переживем. Главное не раздражайтесь, при желании погуглить эту тему увидите что не я один дурак интересовался этим вопросом, и найдете где черным по белому написано что задача решаема. В каких условиях, в каких ОС и на каких "мамках" - второй вопрос. Возможно что все конечно кто это пишет тоже дураки.
servk
junior
junior
 
Posts: 62
Joined: 13 Feb 2016, 19:35
LabVIEW Version: 8
Karma: 0

Re: питание USB

Postby Vitekkz88 on 15 Feb 2016, 16:46

servk писал(а):Если нет готового решения на LV- переживем. Главное не раздражайтесь, при желании погуглить эту тему увидите что не я один дурак интересовался этим вопросом, и найдете где черным по белому написано что задача решаема.

servk, не обратили ли Вы внимание, что никто из таких решал не выложил конфигурацию оборудования(мамки)? Выдавая псевдорешения для всех материнок. Если Вам удастся найти материнскую плату с возможностью управления питанием USB - то у Вас что-то получится. Вдогонку можете поискать или почитать про чипсет и встроенный в него контроллер USB(может ли этот контроллер делать Power OFF на отдельно взятый порт, или он грохает сразу все порты или он этого вовсе не умеет). Опережая события я Вам скажу, что в быту вы таких материнок не найдете. Опять же я не могу знать всего. Люди же как-то отключают где-то на форумах...))
Подумайте логически: питание +5В идёт напрямую. Если хотите, я скажу так: питание идёт напрямую к контакту Вашего порта USB. Остальные 3 линии - это сигнальные и заземление. Чтобы снять это питание - надо дорожку перерезать. Иначе никак.
Отсюда возвращаемся в начало: необходимо знать,как заведено питание в матери,есть ли ключи размыкания цепи, сможет ли Ваш контроллер встроенный в чипсет отключать(разрывать цепь питания USB-портов) функцией драйвера. Операционная система роли не играет. Дело не в программной поддержке, а в аппаратной.
У меня нет линукса, а если был бы - то я убежден, что результат был бы прежним(по крайней мере на моей материнке).
Если будет легче, то: именно моя материнка не может отрубать 5 Вольт с USB. Ну вон, мои ряды dadreamer пополнил. У него 4 таких матери нашлось. Не везёт нам сегодня(
dadreamer, у меня на работе где-то валялся одноплатный комп. Там по-моему прошивка биоса хитрая какая-то с кучей настроек. Это логично, комп на одной плате и есть резон делать управление питанием usb. Посмотрю марку, гляну биос и настройки на недельке. Может что интересного там найду.
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
leader
leader
 
Posts: 909
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 250
hardware I/O VIP

Re: питание USB

Postby dadreamer on 15 Feb 2016, 19:07

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

использует команду
Code: Select all
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 wrote:Если сложного ничего нет - попробуйте и сделайте.

Ну, а кому надо-то?.. :dntknw: Я много чего за свою жизнь уже сделал в :labview: и не только. Ваша проблема для меня не актуальна на данный момент и я специально этим заниматься не собираюсь. Да и проблемы-то нет, если подумать. У меня в наличии есть и USB-реле, и релейные платы от Advantech, я в любой момент могу их подключить и применить по назначению, хоть в :labview: , хоть в C/C++. Для PCI/ISA плат есть инструменты под :labview: , для реле есть консольная прога и DLL. Всё прекрасно работает и управляется. Говорю, как есть.
servk wrote:черным по белому написано что задача решаема

Решаема с помощью дополнительной железки в виде реле или внешнего хаба.

Vitekkz88, будет любопытно узнать о результатах. У нас тоже есть подобный комп, но как-то не доводилось им плотно заниматься. Да и староват он уже.
User avatar
dadreamer
doctor
doctor
 
Posts: 2783
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 696
I/O VIP vision internet

Re: питание USB

Postby servk on 15 Feb 2016, 21:26

Упорства в этом вопросе у меня нет, уже заявлял что раз нет решения - значит и ладно. Но раз во многих местах человечки пишут что подобную задачу все же как то решили, пытался выяснить правду без погружения в детали. Давайте закроем тему, вот если хотя бы для зеленоградских USB реле кто напишет драйвер на LV, будет здорово для отечества
servk
junior
junior
 
Posts: 62
Joined: 13 Feb 2016, 19:35
LabVIEW Version: 8
Karma: 0

PreviousNext

Return to Для чайников

Who is online

Users browsing this forum: Yahoo and 2 guests

cron