Цитата(Fedor @ Apr 3 2016, 00:59)

вывод отладочной информации в уарт в процессе инициализации usb мешает работе usb?
не должен. в прерывании в очередь отправляется указатель на сообщение, в фоновой задаче идет вывод сообщений в уарт
Цитата
Как работает usb можно почитать на usb.org
ну это все равно что "
Почитай в инете"
На скрине вывод отладочной информации.....
1)>USB Device Connected... - устройство подключено
2)DCD_SessionRequest_ISR - попал в обработчик прерывания усб по флагу OTG_FS_GINTSTS.SRQINT. Вызывается из библиотеки DCD_SessionRequest_ISR()
3) DCD_HandleUsbReset_ISR - попал в обработчик прерывания усб по флагу OTG_FS_GINTSTS.USBRST
4) DCD_HandleEnumDone_ISR - попал в обработчик прерывания усб по флагу OTG_FS_GINTSTS.ENUMDNE
здесь вызвается обработчик этого прерывания в котором вызывается USB_OTG_EP0Activate(). USB_OTG_EP0Activate() возвращяет USB_OTG_OK. Вроде всё нормально...
ВНЕЗАПНО!!!
5)DCD_HandleUsbReset_ISR - опять попал в обработчик прерывания усб по флагу OTG_FS_GINTSTS.USBRST
в даташите на этот бит
"The core sets this bit to indicate that a reset is detected on the USB." Почему ядро ресетится? Ему хост присылает команду отресетиться? Или у ядра какой вачдок срабатывает? Не могу понять.... Ну и далее всё по кругу.... емумдан-ресет-енумдан-ресет..... и в конце USB in SuspendMode!!!
Кто нибудь разбирался на низком уровне с USB? Почему так происходит?
Эскизы прикрепленных изображений