реклама на сайте
подробности

 
 
> usb stm32f401
juvf
сообщение Apr 2 2016, 15:28
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Что то не получается USB FS поднять. Как работает USB?
1) Подключается к компу кабелем USB Device
2)устройство на шине создает эффект присутствия.
3)Комп(хост) видит что на усб кто-то появился на начинает процедуру енумерации
4)в девайсе срабатывае прерывание УСБ. Сначало сработает такое прерыванеи, на него девайс должен ответить то и то
5)потом комп сделает то и то
6).... и т.д....

У меня комп видит девайс.... в уарт выводится отладочная информация
Код
USB Device Library v1.1.0 [FS]..
DCD_HandleUsbReset_ISR..
DCD_HandleEnumDone_ISR..
USB Device Library v1.1.0 [FS]..
DCD_HandleUsbReset_ISR..
DCD_HandleEnumDone_ISR..
USB Device Library v1.1.0 [FS]..
DCD_HandleUsbReset_ISR..
DCD_HandleEnumDone_ISR..
USB Device Library v1.1.0 [FS]..
DCD_HandleUsbReset_ISR..
DCD_HandleEnumDone_ISR..
DCD_HandleUSBSuspend_ISR..
> USB Device in Suspend Mode....


и комп не может выичитать пид и вид. USB постоянно ресетиться. почему? Плата дискавери на 401-ом. Демопроект работает, а свой не могу поднять.

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
www...
сообщение Apr 5 2016, 04:32
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 26-10-14
Из: Екатеринбург
Пользователь №: 83 345



Компилятор Keil? Начальный код кубе генерили?
Если да, установите Heap_Size 0x400
Go to the top of the page
 
+Quote Post
juvf
сообщение Apr 5 2016, 10:21
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(www... @ Apr 5 2016, 09:32) *
Компилятор Keil? Начальный код кубе генерили?
Если да, установите Heap_Size 0x400

IAR. нет не в кубе, код взят из библиотеки STM32F401-Discovery_FW_V1.0.0. стоит cstack = 0x400, heap = 0x1000

Цитата
встаньте на отладку на то место,где происходит прием control ep0 в фазе setup
Не попадает туда код. Вот нашел отличия между рабочим кодом из демо проекта с моим.

Последовательность усб-ишных прерываний в процессоре.... в рабочем демо
Сначало происходит прерывание по флагу OTG_FS_GINTSTS.USBRST (usb rerset)
далее OTG_FS_GINTSTS.ENUMDNE
OTG_FS_GINTSTS.RXFLVL
OTG_FS_GINTSTS.RXFLVL
OTG_FS_GINTSTS.OEPINT
OTG_FS_GINTSTS.IEPINT
OTG_FS_GINTSTS.IEPINT
OTG_FS_GINTSTS.IEPINT
OTG_FS_GINTSTS.IEPINT
OTG_FS_GINTSTS.IEPINT
OTG_FS_GINTSTS.RXFLVL
....
и т.д. Нормальный обмен

Какие прерывания и в какой последовательности срабатывают при подключении усб к компу в нерабочем коде:
OTG_FS_GINTSTS.USBRST
OTG_FS_GINTSTS.ENUMDNE
OTG_FS_GINTSTS.USBRST
OTG_FS_GINTSTS.ENUMDNE
OTG_FS_GINTSTS.USBRST
OTG_FS_GINTSTS.ENUMDNE
OTG_FS_GINTSTS.USBRST
OTG_FS_GINTSTS.ENUMDNE
OTG_FS_GINTSTS.ESUSP

что не нравиться хосту? почему он постоянно ресетит девайс? Посмотрел что в обработчике на енумДан.... и в том и в том проекте один т тот же код.... вычитывает регистр GUSBCFG, выставлает в его поле usbtrdtim = 5, и записывает обратно в GUSBCFG. И там и там значения регистра одинаковы. Почему хост после опять запрашивает ресет?
OTG_FS_GINTSTS.USBSUSP


Цитата
должно сильно поспособствовать сравнение рабочего и нерабочего вариантов каким-нибудь сниффером. Я крайний раз пользовался "free usb analyzer". Не очень удобно, зато совесть чиста :-)
А как оно работает? Можно наверно под\смотреть обмен с распознанным устройством. А если устройство не распознано и его нет в дерево в окошке Devices..... как подсмотреть обмен компьютера с новым подключаемым нераспознанным устройством?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- juvf   usb stm32f401   Apr 2 2016, 15:28
- - Fedor   Как работает usb можно почитать на usb.org как вар...   Apr 2 2016, 19:59
|- - juvf   Цитата(Fedor @ Apr 3 2016, 00:59) вывод о...   Apr 4 2016, 12:59
|- - romas2010   Цитата(juvf @ Apr 4 2016, 15:59) Кто нибу...   Apr 4 2016, 18:07
- - ViKo   Лучшая книга для изучения USB - Михаил Гук. Шины P...   Apr 3 2016, 06:05
- - esaulenka   Reset - это команда со стороны хоста. Виндовс при ...   Apr 4 2016, 19:14
|- - ig_z   QUOTE (esaulenka @ Apr 4 2016, 22:14) Вин...   Apr 5 2016, 11:11
|- - jcxz   Цитата(juvf @ Apr 5 2016, 16:21) А как он...   Apr 5 2016, 10:34
|- - juvf   Цитата(jcxz @ Apr 5 2016, 15:34) Сделать ...   Apr 5 2016, 10:44
|- - jcxz   Даже аппаратный USB-контроллер сам никакие фреймы ...   Apr 5 2016, 10:55
|- - juvf   Цитата(jcxz @ Apr 5 2016, 15:55) Лог долж...   Apr 5 2016, 12:15
|- - jcxz   Цитата(juvf @ Apr 5 2016, 18:15) Где-то б...   Apr 5 2016, 15:01
- - juvf   где можно взять рабочий пример usb device cdc для ...   Apr 6 2016, 12:44
- - juvf   Разобрался я с усб.... ЦитатаОказалось, что генер...   Apr 7 2016, 06:39


Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th June 2025 - 06:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.02542 секунд с 7
ELECTRONIX ©2004-2016