Перейти к содержанию
    

Сделал USB host, как отучить подключаемые девайсы от зарядки?

Есть USB хост на GD32F105 (копия STM32F105), к нему подключаются HID девайсы. В основном - игровые пульты.
Реализован просто - 5 вольт на разъём, два 22 ом резистора в линиях D+ D-, никаких дополнительных менеджеров USB не установлено.
Всё хорошо до тех пор, пока не подключается устройство с АКБ и не начинает заряжаться.
На зарядку нахлебников мой девайс никак не рассчитан. Кроме того, некоторые наглые девайсы пытаются всосать 2А, чем кладут в защиту питальник моего хоста.
Пока временно решил проблему, впаяв 22 ома в линию 5В. По крайней мере теперь девайсы понимают, что им тут много не дадут, но всё равно по чуть подсасывают. А у меня тоже питание батарейное и кормить ещё и внешнее устройство я не хочу.
Внимание, вопрос. Как правильно организовать юсб хост, чтобы не отдавать внешнюю зарядку, но и чтобы работало всё?

Насколько понимаю, одними подтяжками не обойтись. Нужна МС менеджмента зарядки. Или можно обойтись подтяжками?

Изменено пользователем Dikoy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 часов назад, Dikoy сказал:

Как правильно организовать юсб хост, чтобы не отдавать внешнюю зарядку, но и чтобы работало всё?

По стандарту усб хост должен отдавать в линию до 500мА по 5В, и ничего вы с этим не сделаете, и никому "сосать" не запретите, либо нужно подбирать устройства без АКБ...

11 часов назад, Dikoy сказал:

Насколько понимаю, одними подтяжками не обойтись.

Подтяжки определяют скоростной режим порта. Это конечно про усб 2.0 я имею ввиду, что там в 3.0 и типС - х.з.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

56 minutes ago, mantech said:

По стандарту усб хост должен отдавать в линию до 500мА по 5В, и ничего вы с этим не сделаете, и никому "сосать" не запретите, либо нужно подбирать устройства без АКБ...

Вроде раньше было 100мА, а выше (до 500мА) надо было просить по протоколу (указанию в дескрипторах) и пока хост 500мА не даст - потреблять столько было неправильно.

Но это врят-ли кто из девайсов поддерживает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

38 минут назад, _4afc_ сказал:

а выше (до 500мА) надо было просить по протоколу

Все эти "протоколы", разные напряжения и пр. начались с версии 3.0(PD) или как там еще, в версиях 1.1 и 2.0 было 5В макс. 500мА. Где-то вкручивали и до 2А, но это уже от производителя зависит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, mantech said:

Все эти "протоколы", разные напряжения и пр. начались с версии 3.0(PD) или как там еще, в версиях 1.1 и 2.0 было 5В макс. 500мА. Где-то вкручивали и до 2А, но это уже от производителя зависит.

Не, там же в дескрипторе пишется: я девайс, у меня профили: 99мА и 153,4мА. Хост говорит, переходи на второй профиль... Образно. Для FullSpeed.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

девайсы могут иметь в профиле что-то абстрактное, вплоть до selfpowered, и при этом без зазрения совести пытаться съесть 2А, и ничего с этим не сделать.

500мА по любому вынь да положь в хост. Если ест больше отключать порт или становиться источником тока. Больше никак.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

54 минуты назад, mitya1698 сказал:

и ничего с этим не сделать.

Рубить питание и на пересдачу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, _4afc_ сказал:

Не, там же в дескрипторе пишется: я девайс, у меня профили: 99мА и 153,4мА. Хост говорит, переходи на второй профиль... Образно. Для FullSpeed.

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

1 час назад, mitya1698 сказал:

Если ест больше отключать порт или становиться источником тока. Больше никак.

Именно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 часов назад, mantech сказал:

Все эти "протоколы", разные напряжения и пр. начались с версии 3.0(PD) или как там еще, в версиях 1.1 и 2.0 было 5В макс. 500мА. Где-то вкручивали и до 2А, но это уже от производителя зависит.

Отнюдь. Ещё в эпоху ранних FTDI им в еппром можно было прописать дескриптор и, в том числе, потребление. Я так делал когда надо было получить 1А. 

По умолчанию обязан выдать 100, и 500 выдержать. Соответственно, девайс не должен потреблять больше 500, пока не договорится с хостом. 

 

6 часов назад, _4afc_ сказал:

у меня профили: 99мА и 153,4мА. Хост говорит, переходи на второй профиль... Образно. Для FullSpeed.

Совершенно верно. Нюанс в том, что все девайсы мне отдают ОДИН дескриптор на 500 мА, а ток берут какой вздумается.

 

5 часов назад, Сергей Борщ сказал:

Рубить питание и на пересдачу.

Тогда девайс обижается и больше не приходит 🙂

 

6 часов назад, mitya1698 сказал:

или становиться источником тока

Ну вот я резистор и воткнул. По крайней мере питальник перестал дымиться. 

Теперь думаю, может есть аппаратные МС менеджмента порта? Чтобы 5В на порту был, ибо без них ничего не работает, но и зарядку не давал. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

OTG хост обязан выдавать не менее 8 мА. Может стоит почитать стандарт на OTG и там будет какая-то информация о том, как это реализовать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну а если быть источником тока? Что проще всего применить?

Как-то давно слышал про источники тока для светодиодов, двухвыводные. Как раз были на 10 и 20 мА. Но не нашёл... Поставить бы такой в разрыв +5В и дело в шляпе.

Во! Нашёл! драйвер CCR это, https://mysku.club/blog/aliexpress/23523.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 часов назад, Dikoy сказал:

Как-то давно слышал про источники тока для светодиодов, двухвыводные. Как раз были на 10 и 20 мА. Но не нашёл...

Посмотрите здесь: https://www.onsemi.com/products/power-management/led-drivers/linear-led-drivers#products=fnN0YXR1c352YWx1ZX4zfiF+TGFzdCBTaGlwbWVudHN+IX5MaWZldGltZX4hfk9ic29sZXRlfg==

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 hours ago, Dikoy said:

Ну а если быть источником тока? Что проще всего применить?

Само-восстанавливающийся предохранитель. Он на самом деле ограничит ток до номинала, а не отключится. mf-msmf050

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...