Jump to content

    

Управление работой USB порта

Есть устройство, подключаемое через USB, прикидывается виртуальным COM-портом. Для его проверки нужно каким-то образом попереключать режимы работы USB порта на компьютере, например перевести его в режим suspend или запретить энумерацию после подключения устройства. Подскажите пожалуйста, как это можно сделать средствами Windovs 7 или других программ?

Share this post


Link to post
Share on other sites

Suspend - в драйвере поддержать "Selective suspend" у этого "ком-порта". Тогда по истечении какого-то времени виндовс его и вырубит.

А вот запретить енумерацию, это вряд ли...

Share this post


Link to post
Share on other sites
А вот запретить енумерацию, это вряд ли...

Элементарно: оторвать линии D+/D- оставить только питание и воткнуть. Можно оторвать только от источника D+/D-, высокий уровень на D+ к хосту всё равно подавать.

Старт firmware будет, но без энумерации. Скорей всего это и нужно ТС - старт ПО без подключения к хосту.

Share this post


Link to post
Share on other sites
Suspend - в драйвере поддержать "Selective suspend" у этого "ком-порта". Тогда по истечении какого-то времени виндовс его и вырубит.

А можно поподробнее? Это как-то в настройках можно посмотреть или на стадии написания драйвера? Драйвер у меня уже готовый идет, я его сам не писал.

 

Элементарно: оторвать линии D+/D- оставить только питание и воткнуть.

Для этого я втыкаю USB кабель не в комп, а в телефонную зарядку.

Меня энумерация собственно вот с какой стороны интересует... При подключении к хосту UBS устройство может потреблять не более 100мА, а после энумерации хост может выдавать тот ток, который прописан в дескрипторе устройства (но не более 500мА). Вот мне и надо как-то остановить процесс, чтобы хост только увидел, что что-то появилось на шине, и успокоился, не опрашивая конфигурацию у устройства.

Share this post


Link to post
Share on other sites
При подключении к хосту UBS устройство может потреблять не более 100мА, а после энумерации хост может выдавать тот ток, который прописан в дескрипторе устройства (но не более 500мА). Вот мне и надо как-то остановить процесс, чтобы хост только увидел, что что-то появилось на шине, и успокоился, не опрашивая конфигурацию у устройства.

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

Share this post


Link to post
Share on other sites
А можно поподробнее? Это как-то в настройках можно посмотреть или на стадии написания драйвера? Драйвер у меня уже готовый идет, я его сам не писал.

 

А это узнавайте у авторов драйвера. Если SS поддержан, то, возможно, его можно включить через реестр (так сделано, например, в примере драйвера в WDK bulkusb.sys)

Share this post


Link to post
Share on other sites

Вы хотите посмотреть, будет ли хост ограничивать ток на уровне 100 мА? - Не будет. Никто не заморачивается ключами с переменным ограничением нагрузки. Ограничение делают только на 500 мА, да и то правильное оно только на ноутбуках. На больших компах ограничение, как правило, в районе 1 А. Чтобы комп увидел устройство, но не делал больше ничего, подтяните D+ к 3.3 В через резистор 1.5к. При этом комп попытается начать энумерацию, у него ничего не выйдет, после чего он успокоится, напишет "неизвестное устройство" и будет ждать его отсоединения.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this