Easyelectronics.ru

Электроника для всех
Текущее время: 22 окт 2021, 11:39

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



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 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 Кб]
Скачиваний: 1108
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: 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
Сообщения: 5180
Откуда: КЧР, поселок Нижний Архыз
Мужики, а под 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
Сообщения: 95
Ребят, а кто нибудь проблему победил то?
Та же фигня, 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
Сообщения: 95
Спасибо за ваш пример, было интересно изучить.
Нашел у себя пару косяков. Теперь все работает.

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


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

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


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


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

Зарегистрирован: 10 июн 2017, 14:46
Сообщения: 95
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 часов


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

Сейчас этот форум просматривают: Driver_gv


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

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

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