питание USB

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

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: питание USB

Сообщение 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
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: питание USB

Сообщение 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
Аватара пользователя
Vitekkz88

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

Re: питание USB

Сообщение Vitekkz88 »

Мамка мамке рознь: схема подвода питания +5 В может отличаться, так же как и кол-во многоразовых предохранителей(либо ключей) и т.д.
В общем, программным способом отключить 5 В не получится. Дело даже не в OC, а именно в аппаратной части. На всех современных мат.платах USB-контроллер встроен в чипсет, а питание идёт напрямую с БП. Какой-то API-шной функции для отключения 5 Вольт никто не встречал :cry: Правда была гипотеза: если по входам питания на USB стоят некие ключи, а в BIOS есть настройка питания USB - то это может позволить снимать питание USB путём изменения положения ключа. И еще одна теория: послать запрос IRP(из словесного описания я понял то, что там трэш...).
Ищите альтернативу в виде переходной железки. Если хотите поговорить про аппаратные решения - то без проблем. Может даже схему нарисуем вместе или компонентную базу подскажем. Сделаете собственную железку с собственным API)
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
servk
junior
junior
Сообщения: 62
Зарегистрирован: 13 фев 2016, 19:35
Версия LabVIEW: 8
Контактная информация:

Re: питание USB

Сообщение servk »

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

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

Re: питание USB

Сообщение Vitekkz88 »

Что касается питания USB напрямую от БП - у меня на ноуте напр из 4х портов USB один постоянно с питанием (для зарядки девайсов и пр), остальные выключаются при выключении ноута.
Значит на эти USB питание подаётся дежурными 5 Вольт, а не прямыми. В мат.платах стационарных компьютеров тоже есть такая разводка питания. На переднюю панель выносят запитку от 5 В дежурного, а на задние разъемы постоянные 5 Вольт с БП. На некоторых моделях выносятся отдельные джемперы для переключения питания(мол, откуда брать? с дежурных 5 В или с постоянных 5 В).
servk писал(а):Решения есть (см напр проги упомянутые в начале)
Скиньте пожалуйста еще раз пример для программного отключения питания(тот, что Вы находили). Я проверю, насколько это работает на мат.плате с постоянной подачей питания на USB и с подачей питания по дежурным 5 В.
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
servk
junior
junior
Сообщения: 62
Зарегистрирован: 13 фев 2016, 19:35
Версия LabVIEW: 8
Контактная информация:

Re: питание USB

Сообщение servk »

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

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

Re: питание USB

Сообщение Vitekkz88 »

servk писал(а): http://safelyremove.com/blog/ru/usbsafe ... -4-4-final
Эта программа не отключает +5Вольт с выхода порта USB!
Я специально повешал на порт отладочную плату, она берет питание +5 по USB и диодом подсвечивает наличие этого питания.
Диод НЕ гаснет. Мультиметр кажет +5В. А Вам удалось? Что у вас за ноутбук? Или что за материнская плата?
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
servk
junior
junior
Сообщения: 62
Зарегистрирован: 13 фев 2016, 19:35
Версия LabVIEW: 8
Контактная информация:

Re: питание USB

Сообщение 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 предложит Вам включить эту возможность:
servk
junior
junior
Сообщения: 62
Зарегистрирован: 13 фев 2016, 19:35
Версия LabVIEW: 8
Контактная информация:

Re: питание USB

Сообщение servk »

а вот пример обсуждения для Linux программеров: http://sysadm.pp.ua/linux/usb.html
в общем инфа есть что все возможно сделать
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: питание USB

Сообщение 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: .
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: питание USB

Сообщение dadreamer »

Vitekkz88 писал(а):Правда была гипотеза: если по входам питания на USB стоят некие ключи, а в BIOS есть настройка питания USB - то это может позволить снимать питание USB путём изменения положения ключа.
Хотелось бы посмотреть на такую мать и поработать с этой опцией. Интересно, переключение ключа выполняется записью в некоторый базовый адрес USB-хаба или как-то иначе. Или, может, производитель платы предоставляет своё API.
Vitekkz88 писал(а):И еще одна теория: послать запрос IRP(из словесного описания я понял то, что там трэш...).
Это же обращение к драйверу ядра (sys) USB-контроллера. Если аппаратно питание не отключается, то драйвер не сможет это сделать. Максимум, переведёт порт в Disabled.
servk
junior
junior
Сообщения: 62
Зарегистрирован: 13 фев 2016, 19:35
Версия LabVIEW: 8
Контактная информация:

Re: питание USB

Сообщение servk »

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

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

Re: питание USB

Сообщение Vitekkz88 »

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

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: питание USB

Сообщение 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, будет любопытно узнать о результатах. У нас тоже есть подобный комп, но как-то не доводилось им плотно заниматься. Да и староват он уже.
servk
junior
junior
Сообщения: 62
Зарегистрирован: 13 фев 2016, 19:35
Версия LabVIEW: 8
Контактная информация:

Re: питание USB

Сообщение servk »

Упорства в этом вопросе у меня нет, уже заявлял что раз нет решения - значит и ладно. Но раз во многих местах человечки пишут что подобную задачу все же как то решили, пытался выяснить правду без погружения в детали. Давайте закроем тему, вот если хотя бы для зеленоградских USB реле кто напишет драйвер на LV, будет здорово для отечества
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»