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

USB Custom HID: "отваливается" устройство.

Чт апр 27, 2017 11:29:01

Приветствую!
Сейчас делаю Custom HID устройство на STM32F042. И застрял на простом этапе :(
Устройство создает конечную точку на чтение, типа Interrupt. Несколько раз в секунду отправляются данные в ПК.
В приложении (C# + LibUsbDotNet) идет прием этих данных. и вывод в консоль. Устройство шлет данные буквально несколько секунд,
потом перестает.

Глянул шину анализатором, в процессе передачи происходит два сброса, после третьего хост отрубает устройство от шины :(
В чем может быть проблема?

ОС Windows 8.1, при создании проекта использовал STM32Cube

Re: USB Custom HID: "отваливается" устройство.

Чт апр 27, 2017 11:35:57

Проблема где-то на стороне МК. Возможно ошибка в коде или в схеме. Также может быть причиной некачественный USB шнур.

Re: USB Custom HID: "отваливается" устройство.

Чт апр 27, 2017 11:39:09

Просто отваливается оно как-то странно и неравномерно, то через 3,то через 30 секунд.
Шнур проверенный, в МК юзаю только стандартный HALовские функции.

В приложении точно не может быть дела?

В схеме вроде все нормально, с линий D+,D- через 22Ом идет на соответствующие выводы МК. Стабилитронов нет(а может ли это мешать?)

Re: USB Custom HID: "отваливается" устройство.

Чт апр 27, 2017 11:51:18

Возьмите отладчик и посмотрите как выполняется программа после отвала USB. Не исключено что происходит HardFault.

Re: USB Custom HID: "отваливается" устройство.

Чт апр 27, 2017 14:33:34

Кстати, если меняю тип конечной точки на Bulk (соответственно как и в дескрипторе устройства), все начинает
нормально работать. Но! В Windows 7 не отваливается (как и в WinXP), а вот под восьмеркой начинаются проблемы.
Поэтому сначала грешил на драйвера

Добавлено after 2 hours 38 minutes 24 seconds:
Ура, проблема решилась!

Нужно было зайти в реестр, найти ключ
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\<Device Instance Path>\Device Parameters,
где Device Instance Path состоит из VID и PID устройства.

Далее найти парамет EnhancedPowerManagementEnabled и изменить его с 1 на 0.
Мало ли кому пригодится :)

Re: USB Custom HID: "отваливается" устройство.

Чт апр 27, 2017 17:40:15

Не исключено что в дескрипторах ошибка. Устройство сообщает о том что имеет автономный источник питания либо же неправильно задан потребляемый им ток.

Re: USB Custom HID: "отваливается" устройство.

Пт апр 28, 2017 22:29:16

ИМХО, если ошибка в дескрипторе - не работало бы нигде в принципе. Но под ХР и 7 проблем нет(все работает как хочу),
А под 8 и 10 не то чтобы не работает - но работает нестабильно. То есть отваливается-подключается, и так постоянно спустя
несколько минут.
По току задано следующее: своего источника питания не имеет, макс. ток потребления - 100мА (реальный макс. ток - 60мА)
Ответить