Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32Cube USB CDC
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Atlantis-
Допиливаю проект в Cube, возникла необходимость в двух IN Endpoint. В исходном проекте CDC было по одной IN и Out Endpoint и некая Command. В общем добавил я в дескрипторы еще одну IN Endpoint (0x83), прописал ее в USBD_CDC_Init и для проверки изменил USBD_CDC_TransmitPacket (при вызове USBD_LL_Transmit вместо CDC_IN_EP - 0x83). Данные от новой EP не приходят. Подскажите, в какую сторону копать?
Golikov A.
может в сторону того что CDC предполагает
одну контрольную и две интерапт (передающую и опционно приемную) конечные точки и все?
Atlantis-
Цитата(Golikov A. @ Oct 21 2014, 16:31) *
может в сторону того что CDC предполагает
одну контрольную и две интерапт (передающую и опционно приемную) конечные точки и все?

я поле класса изменил в дескрипторе
Копейкин
Цитата(Atlantis- @ Oct 21 2014, 17:48) *
я поле класса изменил в дескрипторе

Тогда должен быть свой драйвер для ОС, который поддерживает ваше устройство,
в частности работу с дополнительным эндпойнтом.
Golikov A.
странно что такое устройство вообще не выкинуло из системы...
Atlantis-
Цитата(Копейкин @ Oct 21 2014, 18:19) *
Тогда должен быть свой драйвер для ОС, который поддерживает ваше устройство,
в частности работу с дополнительным эндпойнтом.

так он есть
Копейкин
Цитата(Atlantis- @ Oct 21 2014, 22:35) *
так он есть

То есть вы сделали железо со своим VID&PID?
Написали сами драйвер, который поддерживает инициализацию вашего устройства
и обмен со всеми конечными точками?
А в железо запросы на транзакцию по USB для вашей EP приходят?
USB-device сам ничего не передаёт - только по запросу от хоста.
Atlantis-
Цитата(Копейкин @ Oct 22 2014, 11:15) *
То есть вы сделали железо со своим VID&PID?
Написали сами драйвер, который поддерживает инициализацию вашего устройства
и обмен со всеми конечными точками?
А в железо запросы на транзакцию по USB для вашей EP приходят?
USB-device сам ничего не передаёт - только по запросу от хоста.

драйвер не я написал, в остальном все верно
приложил скрин неудачной передачи (сверху) и удачной из USBTrace. 0x81 - сгенерированная кубом ЕР, 0х83 - мною созданная
Нажмите для просмотра прикрепленного файла
Golikov A.
а тот кто писал драйвер в курсе новой конечной точки то, может он чего накосячил?
Atlantis-
Цитата(Golikov A. @ Oct 22 2014, 19:25) *
а тот кто писал драйвер в курсе новой конечной точки то, может он чего накосячил?

программу верхнего уровня правлю я, как мне нужно. а что, судя по скрину что-то не так на верхнем уровне?
Golikov A.
что то не понимаю как на верхнем уровне заставить хост опрашивать еще одну конечную точку?

хостом управляет драйвер, вроде как....
Atlantis-
Цитата(Golikov A. @ Oct 22 2014, 21:38) *
что то не понимаю как на верхнем уровне заставить хост опрашивать еще одну конечную точку?

хостом управляет драйвер, вроде как....

не еще одну, а другую (вместо 0x81 - 0x83).
Golikov A.
А!!!! то есть сменили номер.
А контроллер USB это позволяет? У STM какие-то корявые самодельные контроллеры USB, может это он не может?
Atlantis-
Цитата(Golikov A. @ Oct 23 2014, 00:07) *
А!!!! то есть сменили номер.
А контроллер USB это позволяет? У STM какие-то корявые самодельные контроллеры USB, может это он не может?

что значит позволяет? в доке написано 5 IN и 5 OUT Endpoints
Golikov A.
могут ли они идти не подряд?
то есть можно ли использовать 83 точку, если 81 не используется?
Atlantis-
Цитата(Golikov A. @ Oct 23 2014, 10:05) *
могут ли они идти не подряд?
то есть можно ли использовать 83 точку, если 81 не используется?

я пробовал 0x81 и 0х82 (обе инициализированы, передача от 0x81 идет, от 0х82 нет)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.