Подтвердить что ты не робот

Управление мощностью USB-порта?

Кто-нибудь знает, как управлять USB-контактами на определенном USB-порту? Я думаю, что это возможно в ассемблере, но как насчет С++ или С#?

Я хочу использовать USB-аккумулятор в качестве источника питания для светодиода или что-то в этом роде. Таким образом, программа включит питание и отключит его.

Я знаю, что это звучит бессмысленно, но мне нужно сделать это для чего-то потрясающего.

Я также знаю, что для него может потребоваться собственный драйвер.

4b9b3361

Ответ 1

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

Говоря, вы, вероятно, захотите посмотреть @: http://sourceforge.net/projects/libusbdotnet/

LP, Деяна

Ответ 2

Вы не можете просто переключать контакты на USB-порт. Период. USB - это последовательный протокол. Коннектор содержит

  • Питание. Хост может управлять линиями электропередач, так как он может отключить питание в случае перегрузки. Это что-то сделано драйвером USB-хоста, что означает драйвер хост-адаптера на ПК. Это не означает какой-либо пользовательский драйвер устройства, который вам может понадобиться для оборудования, которое не использует ни один из классов устройств, на которых ОС уже отправляет драйверы.
  • Данные. Данные отправляются через последовательный протокол, поэтому нет способа управлять этими контактами, если вы используете USB.

Если вы хотите получить несколько портов ввода-вывода, вам потребуется больше логики. Вам нужно, по крайней мере, что-то, что следует за протоколом USB, что означает какой-то микроконтроллер (или специальный контроллер USB-устройства, например FTDI USB контроллеры. FT232 и FT245 особенно хороши для работы). Интересно, что для недорогого решения на базе микроконтроллера может оказаться интересным драйвер V-USB для контроллеров AVR.

Для облегчения бит-биений IO-контактов на ПК используется параллельный порт. USB действительно не создан и не подходит для этого.

Ответ 3

Согласно http://www.gniibe.org/development/ac-power-control-by-USB-hub/index

USB 2.0 номинально поддерживает переключение между портами:

Hub Descriptor:
[...]
  wHubCharacteristic 0x0089
    Per-port power switching
[...]

К сожалению, автор сообщает, что, хотя прошивка хабов утверждает, что поддерживает это, производители сократили углы на плате.

Ответ 4

Нет программного обеспечения для управления питанием и заземлением контактов USB-порта, по крайней мере, на чипсетах ПК. Это осуществляется с помощью USB-контроллера. Посмотрите на получение адаптера параллельного порта USB, если вы хотите, чтобы программное обеспечение контролировало напряжения TTL.

Ответ 5

Я думаю, что попытка включения и выключения питания USB не является таким отличным способом сделать это: возможно, ваш USB-контроллер способен это сделать, но это не было бы "нормальной" вещью.

Вероятно, самый простой способ - использовать что-то вроде параллельного чипа USB- > FTDI FT245. Если вы просто пытаетесь погасить некоторые мигающие огни, возможно, выйдите и купите стандартный USB-кабель с параллельным принтером и интерфейс к этому... вы получите 8 бит вывода с очень простым управлением программным обеспечением и довольно много больше с небольшим количеством работы.

Или пойдите весь боров и получите микроконтроллер со встроенным USB... возможности бесконечны!

Ответ 6

Я думаю, что вы ищете USB-устройство. Простое зарядное устройство можно было бы сделать, поставив или увеличив регулятор, чтобы поднять 5в выше или регулятор, чтобы привести к более низкому зарядному напряжению. Для его включения или выключения потребуется устройство USB.

Ответ 7

Возможно, вы сможете включить и выключить питание устройства, делая все, что происходит, когда вы "безопасно удаляете аппаратное" устройство USB, но я не уверен на 100%, что это отключает питание, оно может просто отправить сигнал к устройству говорит ему, что он отключен, что заставляет его отключиться.

Лучшая ставка для того, что вы пытаетесь сделать, - это создать USB-устройство, которое действительно общается с компьютером (возможно, с помощью специального драйвера, но вы, вероятно, также можете использовать стандартный драйвер, такой как HID-устройство). У вас будет компьютер, который отправит "on" или "off" (или что-нибудь еще, что вы можете придумать) на свое устройство, которое будет интерпретировать сигналы по вашему усмотрению (возможно, включив и выключив этот светодиод, о котором вы говорили). Это не так сложно, как кажется. Вы можете купить микроконтроллеры с интерфейсами USB на борту, такими как Arduino или некоторые из высококлассных ПОС. Многие производители таких микроконтроллеров имеют документы, в которых объясняется, как с ними взаимодействовать USB.

Ответ 8

Нет никакого способа сделать это для реальных контактов питания и заземления. И вы, вероятно, должны прочитать эту часть статьи Wikipedia USB.

Ответ 9

Вам нужна плата разработчика с программируемыми выводами ввода/вывода (a.k.a. PIO) или UART (RS232).

Самый простой способ - подключить светодиод к Clear To Send (CTS) и к земле или VCC. Выход на линии CTS включает или выключает светодиод в зависимости от того, подключен ли другой конец к земле или нет. Можно использовать обычные выводы ввода-вывода, но они предназначены для последовательной передачи данных в UART. UART обычно создает 8-битный символ из этих контактов; но передает значения RTS (Request To Send) и CTS напрямую.

При использовании PIO все, что вам нужно сделать, это установить бит в переменной и записать эту переменную на адрес набора PIO. Вы также можете защелкнуть бит. Некоторые PIO-булавки запоминают значение до тех пор, пока не будет записано следующее значение (называемое фиксированным), другие будут помнить значение до тех пор, пока оно выписано.

Ответ 10

Вопрос заключается в том, что максимальная мощность USB большинства ответов не учитывается при изменении мА USB и влияет на напряжение.

Общий выход USB 1.0 и 2.0 равен 500 мА или 0,5 А. 500 мА раз 5 вольт равна 2,5 Вт мощности.

1 A даст вам полную мощность 5 Вт, а USB 2.0 можно будет использовать ASUS Ai Charger для вывода 1,2 А или 1200 мА, чтобы дать вам 6 Вт.