реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> STMicroelectronics Virtual COM Port, Запуск этого устройства невозможен. (Код 10)
ViKo
сообщение May 13 2014, 06:26
Сообщение #1


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Попробовал на двух платах Discovery (STM32F407, STM32F429) создать CDC устройство в STM32CubeMX. И оба раза компьютер обнаруживает устройство, устанавливает драйвер, но не может его запустить. И в настройках USB в Cube менял, и все равно. ОС - Windows 7 x64. Что не так? Полный интернет подобных сообщений, но ни одного ответа я не нашел.
И кабель менял, и в другую щель засовывал. rolleyes.gif
Go to the top of the page
 
+Quote Post
derun
сообщение May 13 2014, 09:18
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 133
Регистрация: 12-01-05
Из: Украина. Чернигов
Пользователь №: 1 908



Цитата(ViKo @ May 13 2014, 08:26) *
Попробовал на двух платах Discovery (STM32F407, STM32F429) создать CDC устройство в STM32CubeMX. И оба раза компьютер обнаруживает устройство, устанавливает драйвер, но не может его запустить. И в настройках USB в Cube менял, и все равно. ОС - Windows 7 x64. Что не так? Полный интернет подобных сообщений, но ни одного ответа я не нашел.
И кабель менял, и в другую щель засовывал. rolleyes.gif

Непонятна фраза "Не Запускается driver" -это как, какие сообщения выдает Винда?
У меня тоже Виндовс 7 x64 и все работает. Подробнее проблему опишите пожалуйста. Файл конфигурации Куба (*.ioc) приложите если можно.
Go to the top of the page
 
+Quote Post
uriy
сообщение May 13 2014, 09:29
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



C 32 битнымми windows плата работает?
Если да отключите проверку подписи драйвера в 64 битной windows.
Go to the top of the page
 
+Quote Post
derun
сообщение May 13 2014, 09:57
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 133
Регистрация: 12-01-05
Из: Украина. Чернигов
Пользователь №: 1 908



Цитата(uriy @ May 13 2014, 11:29) *
C 32 битнымми windows плата работает?
Если да отключите проверку подписи драйвера в 64 битной windows.

Думаю Вы правы, причина может быть именно в этом, хотя у меня заработало и без отключения цифровой подписи драйвера.
Может какая-то старая версия драйвера.
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 13 2014, 10:01
Сообщение #5


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(derun @ May 13 2014, 12:18) *
Непонятна фраза "Не Запускается driver" -это как, какие сообщения выдает Винда?
У меня тоже Виндовс 7 x64 и все работает. Подробнее проблему опишите пожалуйста. Файл конфигурации Куба (*.ioc) приложите если можно.

Вот так и пишет, как в подзаголовке показал, скопировал: "Запуск этого устройства невозможен. (Код 10)"
Зашиваю прошивку, втыкаю USB разъем, нажимаю сброс, Windows 7 находит устройство, автоматически находит драйвер для него (и вручную ставил - тот же, с сайта ST), устанавливает. После в Диспетчере устройств появляется COM3, но "запуск..." (см. выше).
Конфигурация в Cube - простая, выбираю Discovery плату, в ней включаю USB выводы, в USB включаю CDC. Своего не пишу ничего.
И так на двух разных платах.
Вот есть ссылка с подобной проблемой.
https://my.st.com/public/STe2ecommunities/m...rentviews=13131

Цитата(uriy @ May 13 2014, 12:29) *
C 32 битнымми windows плата работает?
Если да отключите проверку подписи драйвера в 64 битной windows.

С x86 не работал, не имею. biggrin.gif
Версия драйвера - последняя, что есть, 1.3.1
С этим возился дома, сейчас ничего больше сказать не могу.
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение May 13 2014, 12:14
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(ViKo @ May 13 2014, 11:01) *
Вот есть ссылка с подобной проблемой.
https://my.st.com/public/STe2ecommunities/m...rentviews=13131

Ну так там по ссылке написал один, что решил все проблемы, изменив размер буфера на 64. Думаю, где-то в настройках для CDC Endpoint. Другой пишет, что проблема ушла после установки CDC_IN_FRAME_INTERVAL в 0 в файле usbd_conf.h.
Я не пробовал еще эти Cube, но у нас на F103 на собственных платах CDC работают. Более того, мой коллега, гуру в Windows, написал свой собственный *.INF файл для установки CDC. Ведь по сути для CDC не нужен никакой сторонний драйвер. Просто Windows до XP включительно для каждого нового воткнутого CDC устройства проводит якобы установку драйвера, которая заключается просто в копировании родного файла usbser.sys из одного угла системы в другой, напрягая пользователя дурными вопросами. Более новые Win'ды это делают молча. Поэтому, если Windows не хочет общаться с CDC, надо покрутить дескриптор на предмет тех самых размеров буфера и временнЫх параметров.
Go to the top of the page
 
+Quote Post
derun
сообщение May 15 2014, 11:18
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 133
Регистрация: 12-01-05
Из: Украина. Чернигов
Пользователь №: 1 908



Цитата(ViKo @ May 13 2014, 12:01) *
Вот так и пишет, как в подзаголовке показал, скопировал: "Запуск этого устройства невозможен. (Код 10)"
Зашиваю прошивку, втыкаю USB разъем, нажимаю сброс, Windows 7 находит устройство, автоматически находит драйвер для него (и вручную ставил - тот же, с сайта ST), устанавливает. После в Диспетчере устройств появляется COM3, но "запуск..." (см. выше).
Конфигурация в Cube - простая, выбираю Discovery плату, в ней включаю USB выводы, в USB включаю CDC. Своего не пишу ничего.
И так на двух разных платах.
Вот есть ссылка с подобной проблемой.
https://my.st.com/public/STe2ecommunities/m...rentviews=13131


С x86 не работал, не имею. biggrin.gif
Версия драйвера - последняя, что есть, 1.3.1
С этим возился дома, сейчас ничего больше сказать не могу.

На форуме ST была рекомендация заменить строку:
pdev->pClassData = USBD_malloc(sizeof (USBD_CDC_HandleTypeDef));
в файле usbd_cdc.c
на :
pdev->pClassData = (void *) USBD_malloc(sizeof (USBD_CDC_HandleTypeDef));
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 15 2014, 19:24
Сообщение #8


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(derun @ May 15 2014, 14:18) *
На форуме ST была рекомендация заменить строку:
pdev->pClassData = USBD_malloc(sizeof (USBD_CDC_HandleTypeDef));
в файле usbd_cdc.c
на :
pdev->pClassData = (void *) USBD_malloc(sizeof (USBD_CDC_HandleTypeDef));

Не помогло. Результат тот же.

Параллельно для STM32F3Discovery сотворил из библиотеки STM32_USB-FS-Device_Lib_V4.0.0 VirtualComport_Loopback, он работает. "Устройство работает нормально." Общаюсь с платой через HTerm. Правда, она другим кабелем подключена к компьютеру (на этой плате разъем другой). Код там другой, конечно, но, делаю вывод, что с компьютером и драйвером все нормально.

Для STM32F30x в CubeMX пока кодогенератора нет.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 15 2014, 20:13
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(ViKo @ May 15 2014, 23:24) *
Не помогло. Результат тот же.

Попробуйте подключить устройство и затем удалить его в диспетчере.
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение May 15 2014, 20:36
Сообщение #10


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Я бы посмотрел что на USB творится. "Device Monitoring Studio" то ли 30 то ли 40 баксов всего, да и трайал наверное есть.


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 15 2014, 20:51
Сообщение #11


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



https://my.st.com/public/STe2ecommunities/m...urrentviews=328
Почитав эту тему, изменил размер кучи до 0x0400, и COM Port заработал. Буду пытаться разбираться дальше...
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение May 15 2014, 21:09
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



я вот смотрел на это
pdev->pClassData = (void *) USBD_malloc(sizeof (USBD_CDC_HandleTypeDef));

и вот мне подумалось, что тот кто код отлаживал сначала заметил что получил неверный указатель. Потом изменил это и кучу, и все заработало, сделал выводы что надо так сделать.

А мне кажется что надо поглядеть что возвращает USBD_malloc, наверняка в начальном варианте с маленькой кучей оно возвращало 0, как код ошибки что не удалось выделить буфер...
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 15 2014, 21:13
Сообщение #13


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Я там еще других настроек в CubeMX покрутил, в частности, задал скорость ножек USB High...
В-общем, пока ответ не готов.
Go to the top of the page
 
+Quote Post
uriy
сообщение May 16 2014, 05:32
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Цитата
Я бы посмотрел что на USB творится. "Device Monitoring Studio" то ли 30 то ли 40 баксов всего, да и трайал наверное есть.
Есть и бесплатная версия http://freeusbanalyzer.com/
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 16 2014, 08:45
Сообщение #15


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



За ссылки-советы - спасибо!
Я пользовался USBlyzer, USBTrace, но не в этом случае.
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 13th August 2025 - 21:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.03613 секунд с 7
ELECTRONIX ©2004-2016