Easyelectronics.ru

Электроника для всех
Текущее время: 29 ноя 2022, 12:37

Часовой пояс: UTC + 5 часов




Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: STM32 USB Composite device
СообщениеДобавлено: 12 окт 2015, 14:30 
Заглядывает иногда

Зарегистрирован: 10 ноя 2013, 22:07
Сообщения: 51
Добрый день. Дело в следующем. Уже неделю мучаюсь, пытаясь написать составное устройство USB. У меня есть STM32 с внешней микросхемой. Работают на OTG HS. Мне нужно реализовать связку CDC+MSD, в идеале, но для понимания процесса в принципе достаточно любой связки. По отдельности поднял уже все стандартные классы, а вот в связке запустить их не могу. Может быть кто нибудь занимался данной проблемой, и поможет))
Заранее спасибо за помощь)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 12 окт 2015, 16:51 
Старожил

Зарегистрирован: 07 авг 2014, 17:15
Сообщения: 383
Откуда: дальнее надмосковье
Попробуйте использовать прикрепленный код.


Вложения:
composite.zip [68.96 Кб]
Скачиваний: 1258
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 12 окт 2015, 17:11 
Заглядывает иногда

Зарегистрирован: 10 ноя 2013, 22:07
Сообщения: 51
arm999 писал(а):
Попробуйте использовать прикрепленный код.

Спасибо, попробую. Если кто то еще сможет помочь, пишите, буду благодарен!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 12 окт 2015, 20:38 
Заглядывает иногда

Зарегистрирован: 10 ноя 2013, 22:07
Сообщения: 51
Спасибо пользователю arm999. Тема закрыта.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 14 окт 2015, 16:00 
Заглядывает иногда

Зарегистрирован: 10 ноя 2013, 22:07
Сообщения: 51
Foxek писал(а):
Спасибо пользователю arm999. Тема закрыта.


К сожалению тема снова открыта. Дело в следующем: Написал я Composite device MSC+ CDC. Все определяется в диспетчере, MSC работает и на прием и на передачу, а вот CDC работает только на прием. Посмотрел в отладчике, выглядит так как будто HOST(PC) генерирует запрос только к конечной точке MSC а вот конечную точку CDC не опрашивает.
Может кто знает в чем дело


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 14 окт 2015, 16:28 
Старожил

Зарегистрирован: 07 авг 2014, 17:15
Сообщения: 383
Откуда: дальнее надмосковье
Исходники бы не помешали.

Какие у Вас параметры endpoint-ов (usbd_conf.h) и размеры FIFO буферов (usb_conf.h)? Может переполнение буфера? Сделайте лог работы с USB с помощью sniffer-a Wireshark или USBLyzer, возможно это покажет в чем ошибка.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 14 окт 2015, 18:06 
Старожил
Аватара пользователя

Зарегистрирован: 17 дек 2014, 23:08
Сообщения: 605
Откуда: Nowhere
Занятное дело, выдрал из Cube библиотеку USB, подправил так, чтобы без кубовских библиотек работало. MSC и CDC классы по отдельности пашут без проблем. Захотел сделать composite из них, наваял враппер, чтобы запросы раскидывал по классам и получил точно такую же фигню: MSC работает, а CDC только прием. Долго наблюдал USBLyzer'ом, игрался настройками endpoint'ов, но так и не заработало, решил, что что-то сделал не так. Посмотрел сырцы от arm999 - суть та же.
Уж очень интересно, в чем грабли.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 14 окт 2015, 18:20 
Старожил

Зарегистрирован: 07 авг 2014, 17:15
Сообщения: 383
Откуда: дальнее надмосковье
Да, очень интересная ситуация, у меня тоже так же. Нашел еще одну реализацию от разработчиков MicroPython, можно тоже проверить, вот. Там поддерживаются 3 режима (функция USBD_SelectMode): USBD_MODE_CDC_MSC, USBD_MODE_CDC_HID, USBD_MODE_CDC.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 14 окт 2015, 18:31 
Заглядывает иногда

Зарегистрирован: 10 ноя 2013, 22:07
Сообщения: 51
Пробовали написать не в Hal библиотеках, а в стандарных от ST?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 14 окт 2015, 18:50 
Старожил
Аватара пользователя

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 5760
Откуда: КЧР, поселок Нижний Архыз
Мужики, а под opencm3 кто-нибудь составное устройство разрабатывал? Вдруг уже готовое есть, а я опять велосипедить буду...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 14 окт 2015, 21:46 
Заглядывает иногда

Зарегистрирован: 10 ноя 2013, 22:07
Сообщения: 51
Попробовал и в HAL библиотеки и в стандартной. HOST запрашивает только конечную точку MSC, а CDC не хочет, что делать не ясно


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 15 окт 2015, 17:51 
Заглядывает иногда

Зарегистрирован: 10 ноя 2013, 22:07
Сообщения: 51
Я тут подумал, а что если дело в драйверах под USB Windows. Стандартные драйвера запрашивают только одну конечную точку. Чтобы запрашивало те точки что мы хотим нужно писать драйвер


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 15 окт 2015, 18:03 
Старожил

Зарегистрирован: 07 авг 2014, 17:15
Сообщения: 383
Откуда: дальнее надмосковье
Можно попробовать на Linux, если Вы правы, то там должно взлететь с стандартными драйверами.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 15 окт 2015, 18:17 
Старожил
Аватара пользователя

Зарегистрирован: 17 дек 2014, 23:08
Сообщения: 605
Откуда: Nowhere
Пробовал на линуксе, с CDC та же борода, пашет в одну сторону, MSC из композита не завелся, т.к. в ядре не было под него модуля, поэтому про его работоспособность не скажу.

Еще про винду знаю такую штуку, вдруг на мысли натолкнет: игрался я с MSC, все работало, а потом решил освоить CDC и винда упорнно определяла мой девайс как два устройства с желтыми значками и не хотела их в одно объединять. Долго мучался, под линуксом все пашет, под виндой - никак. Потом случайно выяснил, что виноват серийный номер, ведь он был одинаков для MSC и CDC устройства. Итого вышло так, что если в реестре прописалось MSC устройство, то CDC с таким же серийником не заведется.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 15 окт 2015, 23:10 
Заглядывает иногда

Зарегистрирован: 10 ноя 2013, 22:07
Сообщения: 51
но на прием CDC ведь работает)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 16 окт 2015, 11:42 
Заглядывает иногда

Зарегистрирован: 16 окт 2015, 10:57
Сообщения: 33
Foxek писал(а):
но на прием CDC ведь работает)

А вы пробовали сделать CDM полностью из CubeMX ? прерывания стоят? на DMA и MEMTOMEM


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 19 окт 2015, 16:40 
Заглядывает иногда

Зарегистрирован: 10 ноя 2013, 22:07
Сообщения: 51
Пробовал. Прерывания стоят, только там один хрен одни и те же прерывания что на MSC что на CDC


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 19 окт 2015, 17:38 
Заглядывает иногда

Зарегистрирован: 10 ноя 2013, 22:07
Сообщения: 51
Да кстате, по отдельности и CDC и MSC работают


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 01 авг 2017, 01:04 
Заглядывает иногда

Зарегистрирован: 10 июн 2017, 14:46
Сообщения: 97
Ребят, а кто нибудь проблему победил то?
Та же фигня, MSC работает, а CDC только в сторону устройства


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 01 авг 2017, 02:48 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 09 янв 2017, 19:45
Сообщения: 157
https://github.com/robotsrulz/STM32-COMPOSITE

HID+CDC, CDC работает в обе стороны


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 07 авг 2017, 01:52 
Заглядывает иногда

Зарегистрирован: 10 июн 2017, 14:46
Сообщения: 97
Спасибо за ваш пример, было интересно изучить.
Нашел у себя пару косяков. Теперь все работает.

Оформил свой опыт в виде статьи на хабре: https://habrahabr.ru/post/335018/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 07 авг 2017, 13:08 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2013, 12:33
Сообщения: 1803
Откуда: Донецк, РФ
grafalex писал(а):
Оформил свой опыт в виде статьи на хабре: https://habrahabr.ru/post/335018/


Спасибо, почитаю. В инете очень мало завершённых статей про составные девайсы.
Немного напрягает HAL (я использую старые некубовые либы), ну да ладно, это уже мелочи.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 07 авг 2017, 13:52 
Заглядывает иногда

Зарегистрирован: 10 июн 2017, 14:46
Сообщения: 97
hd44780 писал(а):
Немного напрягает HAL

Меня тоже напрягает, но пришлось смириться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 07 авг 2017, 14:17 
Старожил
Аватара пользователя

Зарегистрирован: 17 дек 2014, 23:08
Сообщения: 605
Откуда: Nowhere
hd44780 писал(а):
Немного напрягает HAL (я использую старые некубовые либы), ну да ладно, это уже мелочи.
IMHO как раз в плане USB либы из HAL выглядят более вменяемыми. А если отучить USB либу от всего остального HAL (чтобы оно не тащило за собой кучу мусора), то вообще красота.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32 USB Composite device
СообщениеДобавлено: 07 авг 2017, 14:47 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 5896
LonelyWolf, прежде чем восхвалять недолибы с их кучей г. просьба внимательно ознакомиться -http://mcu.goodboard.ru/viewtopic.php?id=40


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB