-
- У вас файл, ассоциированный с VCP, переоткрывается. Это
действительно надо делать со стороны программы. Но инициализацию
USB-порта Windows делает сама, когда в него что-то втыкают. Однако
проблема чаще бывает в другом - на плате линию от PA12 подтягивают
резистором к питанию. Тогда при после ресета MK забывает свой
прежний коннект, а Windows всё еще его помнит и повторную
инициализацию соединения не вызывает. Т.е. порт остается открытым,
и файл, ассоциированный с ним, Kceния(603 знак., 11.08.2021 08:04)
- Наконец понял, что вы пытаетесь описать - в спецификации USB2.0 это
есть в разделах 7.1.5 Device Speed Identification и 7.1.7.3 Connect
and Disconnect Signaling. В USB device, которые могут аппаратно
ресетиться без физического отключения от USB (как у ТС), для
корректной работы процедуры dis-/connect PU-резистор должен быть
отключаемый. rezident(3 знак., 11.08.2021 20:06, ссылка, картинка)
- На моей плате это резистор не отключаемый, но при запуске МК, когда
его USB-порт еще не проинициализирован, нога PA12 (D-) пока еще
работает как GPIO-порт, а потому запрограммировав его на выход, эту
линии можно заземлить даже при наличии подтягивающего резистора.
Что собственно я и делаю. Kceния(258 знак., 11.08.2021 23:14)
- Этот резистор нужен для определения подключения устройства USB хостом. UniSoft(357 знак., 12.08.2021 18:48)
- На моей плате это резистор не отключаемый, но при запуске МК, когда
его USB-порт еще не проинициализирован, нога PA12 (D-) пока еще
работает как GPIO-порт, а потому запрограммировав его на выход, эту
линии можно заземлить даже при наличии подтягивающего резистора.
Что собственно я и делаю. Kceния(258 знак., 11.08.2021 23:14)
- Не мной обгрызено, сам форум в тэг засунул то, что в угловых скобках... поправил... - UniSoft(11.08.2021 18:43)
- Наконец понял, что вы пытаетесь описать - в спецификации USB2.0 это
есть в разделах 7.1.5 Device Speed Identification и 7.1.7.3 Connect
and Disconnect Signaling. В USB device, которые могут аппаратно
ресетиться без физического отключения от USB (как у ТС), для
корректной работы процедуры dis-/connect PU-резистор должен быть
отключаемый. rezident(3 знак., 11.08.2021 20:06, ссылка, картинка)
- Вопрос сводился к следующему: кто должен вносить исправления: Constantin24(104 знак., 11.08.2021 07:12)
- Первое... программисты приложения на винде... другого способа не существует. - UniSoft(11.08.2021 19:37)
- "Передёргивание" порта: Закрыть порт (освободить дескриптор);
дождаться пока устройство передёрнет USB, пройдёт энумерацию и
появится в системе; открыть порт (получить новый дескриптор).
Форвардные "спасибо" выглядят крайне невежливо. - teap0t(11.08.2021 10:43)
- так он же ответил на вопрос. p.s. Программа на винде не моя. В своих так и делал. - Constantin24(11.08.2021 10:55)
- У вас файл, ассоциированный с VCP, переоткрывается. Это
действительно надо делать со стороны программы. Но инициализацию
USB-порта Windows делает сама, когда в него что-то втыкают. Однако
проблема чаще бывает в другом - на плате линию от PA12 подтягивают
резистором к питанию. Тогда при после ресета MK забывает свой
прежний коннект, а Windows всё еще его помнит и повторную
инициализацию соединения не вызывает. Т.е. порт остается открытым,
и файл, ассоциированный с ним, Kceния(603 знак., 11.08.2021 08:04)