kostyan1 0 15 января, 2015 Опубликовано 15 января, 2015 · Жалоба Народ, кто нибудь поднимал usb cdc именно на STM32F401? Есть две платы: диско429 и диско401. На диско429 отладил пример из набора STM32_USB-Host-Device_Lib_V2.1.0. Там пример идет для stm32f407, но заработало и для stm32f429 на хайспидовом usb но в режиме фулспида. Со стороны компа - libusb с двумя точками 0x01 и 0x82 для передачи приема данных. Беру ровно тот же код (ну ножки другие только буквально) и пробую запустить его на диско401. Енумерация проходит, работает приём - я принимаю от компа данные (несколько байт), посылаю в ответ посылку (тоже несколько), НО ПРЕРЫВАНИЯ ОТ ПЕРЕДАЧИ НЕ ПРОИСХОДИТ!!! Со стороны компа выхожу из кода чтения данных по таймауту в несколько секунд, а проц долбится в прерывании в коде анализа прерывания DCD_HandleInEP_ISR, где для epnum=2 бит XFRC:Transfer completed interrupt регистра OTG_FS_DIEPINT2 не встает! Хэзэ что думать - в гугле такой проблемы не нашел. HID пример для stm32f401 с эмуляцией мышки работает - так что железо вроде бы рабочее, но мне нужен cdc. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 16 января, 2015 Опубликовано 16 января, 2015 · Жалоба где то в конце-середине того года была подобная тема, человек бился с неправильной работой прерываний. Но поиск по форуму ее не находит, так как ищет слова больше 3 букв... Вроде бы там пришли к тому что какая-то ошибка контроллера и на макс скорости не запустить, попробуйте запустить на скорость ниже, имеется ввиду high speed, full speed. Ну или поищите руками тему, она была больше 2 страниц, с каким то понятным названием... ---update--- ой все наврал... вот темы про которые я говорил... но там изохронные обмены http://electronix.ru/forum/index.php?showtopic=123718 http://electronix.ru/forum/index.php?showtopic=112562 http://electronix.ru/forum/index.php?showtopic=123341 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kostyan1 0 16 января, 2015 Опубликовано 16 января, 2015 · Жалоба Спасибо за поиск, проблема таки решилась! Искал вчера весь день рабочий пример под 401й проц и под конец осенило про стм32куб. Сегодня как раз для диско401 создал проектик цдц, как то запустил его - передача идет! Через USBLyzer обнаружил что конечные точки в проекте, полученном через куб, другие : CDC_IN_EP = 0x81, CDC_OUT_EP = 0x01, CDC_CMD_EP = 0x82. А у меня были такие: CDC_IN_EP = 0x82, CDC_OUT_EP = 0x01, CDC_CMD_EP = 0x83. Сделал в своем проекте первый вариант, переделал libusb драйвер и заработало! А то, что точки другие - обнаружил через USBLyzer! Он гадина платный и не ломанный, рега скоро кончится на него. Хоть и оффтоп - посоветуйте народ, пожалуйтса, подобный просмоторщик USB трафика бесплатный?! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andries5 0 16 января, 2015 Опубликовано 16 января, 2015 · Жалоба Попробуйте Simple USB Logger. ___http://www.incentivespro.com/downloads.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BaN 0 20 января, 2015 Опубликовано 20 января, 2015 · Жалоба А то, что точки другие - обнаружил через USBLyzer! Он гадина платный и не ломанный, рега скоро кончится на него. Хоть и оффтоп - посоветуйте народ, пожалуйтса, подобный просмоторщик USB трафика бесплатный?! Могу посоветовать USBPcap+Wireshark: http://desowin.org/usbpcap/ https://www.wireshark.org/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kostyan1 0 21 января, 2015 Опубликовано 21 января, 2015 (изменено) · Жалоба Могу посоветовать USBPcap+Wireshark: http://desowin.org/usbpcap/ https://www.wireshark.org/ это только на линухе насколько я понял :( упд. Неправильно видимо понял - не могу разобраться как запустить собственно. Установил и туплю. упд2. Нашел инструкцию как пользовать на сайте, слона как водится не заметил, изучаю пробую... Изменено 21 января, 2015 пользователем kostyan Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться