Перейти к содержанию
    

STM32F401 usb cdc кто нибудь поднимал?

Народ, кто нибудь поднимал 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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

где то в конце-середине того года была подобная тема, человек бился с неправильной работой прерываний. Но поиск по форуму ее не находит, так как ищет слова больше 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за поиск, проблема таки решилась! Искал вчера весь день рабочий пример под 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 трафика бесплатный?!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А то, что точки другие - обнаружил через USBLyzer! Он гадина платный и не ломанный, рега скоро кончится на него. Хоть и оффтоп - посоветуйте народ, пожалуйтса, подобный просмоторщик USB трафика бесплатный?!

Могу посоветовать USBPcap+Wireshark:

http://desowin.org/usbpcap/

https://www.wireshark.org/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Могу посоветовать USBPcap+Wireshark:

http://desowin.org/usbpcap/

https://www.wireshark.org/

 

это только на линухе насколько я понял :(

 

упд. Неправильно видимо понял - не могу разобраться как запустить собственно. Установил и туплю.

 

упд2. Нашел инструкцию как пользовать на сайте, слона как водится не заметил, изучаю пробую...

Изменено пользователем kostyan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...