|
stm32f4 Зависает USB Host, режим mass storage |
|
|
|
Sep 12 2013, 19:30
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Довелось мне поюзать платку дискавери в режиме усб-хоста. Так вроде все работает За одним нюансом - когда вставляешь-вынимаешь флеху "на горячюю" она как правило потом снова нормально подключается, но раз на 10й, а может и на 20й  ... Просто виснет и все тут!! "методом тыка" определил, что происходит постоянный вызов обработчика прерываний - OTG_FS_IRQHandler в котором вызывается процедура обработчика - USBH_OTG_ISR_Handler (...) Причем, при "нормальной" работе хоста, прерывания вызываются только при подключенной флехе, а когда ее нет то нет и прерывания, а тут такое... Уважаемые гуру, может кто знает, что тут сделать можно?? Мое мнение - не происходит обработка какой-либо исключительной ситуации или ошибки хоста, хотя могу ошибаться. Как вариант - каким-либо образом проресетить усб контроллер, чтоб выйти из бесконечного прерывания...
|
|
|
|
|
Sep 12 2013, 19:46
|
Гуру
     
Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295

|
Цитата(mantech @ Sep 12 2013, 22:30)  Уважаемые гуру, может кто знает, что тут сделать можно?? В техподдержку ST напишите. Возможно, эта проблема им известна. P.S. Жизнь, елки-палки. Абсолютно все версии Win2000 и XP (а может, и более поздние - просто не проверял) абсолютно на всех машинах, когда-либо виденных мною, страдают одной и той же болезнью - при горячем выключении USB - клавиатуры (именно клавиатуры, и ничего другого, производитель клавиатуры при этом не важен) система мертво зависает в среднем раз из десяти, а то и из пяти. Спасает тольо кнопка сброса. И это в ОС, разошедшейся десятками миллионов экземпляров по всему миру. А тут какая-то учебная платка с демонстрационно-учебным ПО ... Когда я писал свой хост для ARM9, то пару месяцев "вылизывал" каждую строчку, тестировал все возможные режимы и вполне мог отвечать за то, что и как у меня работает. А здесь ... Что сказать ? Придется вам вгрызаться в этот проект, и вгрызаться серьезно. Чудес не бывает. Вернее, бывают, но чуда нужно быть достойным ...
|
|
|
|
|
Sep 13 2013, 16:52
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Документация на USB-движок, встроенный в эти МК была довольно неудачная и попросту неполная (т.е., даже имея ее, написать свою реализацию того же хоста было невозможно).
Нее, я только одного не понимаю, они что, не хотят, чтобы их микросхемы покупали?? Я уже целый час сижу на их сайте и ничего кроме даташита о том, что есть в этом камне, больше ничего нет!!! В чем смысл скрывать данные о девайсах в контроллере, снабдить все это чудо полукривыми либами, к которым тоже нет доков, кроме убогого описания усб либы и то, на 60% посвященной девайсу, а не хосту?? Или просто я дурак, что связался с стшным контроллером??? Хотя время еще есть можно послать его к "ядреной бабушке", и раскурить что-нить более путевое, типа nxp или atmel... На вашем месте, что лучше сделать??
|
|
|
|
|
Sep 14 2013, 09:44
|
Гуру
     
Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295

|
Цитата(mantech @ Sep 13 2013, 19:52)  Хотя время еще есть можно послать его к "ядреной бабушке", и раскурить что-нить более путевое, типа nxp или atmel... На вашем месте, что лучше сделать?? На моем ? На то время, когда я взялся за ST, у него был один конек - USB HS. Мне именно HS и был нужен, FS было мало. Поэтому пришлось мучиться, тратить время, нервы, здоровье и портить зрение. Сейчас наверняка ситуация изменилась, и можно подобрать МК и с HS у того же NXP или ATMEL. Сможете подобрать - подберите и используйте. ще. Говорят, STM дешевле. Планируете крупную серию ? Если да, возможно, стоит помучиться. Если нет, бегите от STM, теряя тапки, ломая крылья и теряя перья. Это мое ИМХО, основанное на тяжелом и выстраданном личном опыте. Следующее подобное счастье - AM1707 от TI. Документация на USB неполная, примеров ... нет (!!!) Зато есть Линукс с исходниками. Предлагается желающим добывать изюм из булочек, выискивая в этой навозной куче связанные с USB жемчужные зерна. Простите, оно мне надо ? И сил у меня на это нет. Ковыряние в мегабайтах исходников Линукса с целью выковыривания оттуда какой-то козявки - не мой конек. Полтора месяца промучился и плюнул. Хотя, опять же, раз есть Линукс, значит, все необходимые исходники, наброски, документы и проч. у фирмы-разработчика есть. Почему бы их не выложить ? Так нет же ! Вот вам Линукс, ешьте его с маслом. А мне нужно было именно Standalone - решение ...
|
|
|
|
|
Sep 14 2013, 11:29
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Предлагается желающим добывать изюм из булочек, выискивая в этой навозной куче связанные с USB жемчужные зерна. Простите, оно мне надо ? И сил у меня на это нет. Ковыряние в мегабайтах исходников Линукса с целью выковыривания оттуда какой-то козявки - не мой конек. Да уж, этот линукс... Меня тоже уже пытались "накормить" им, но не люблю копаться в чужих осях, особенно в тех, где нужно копать миллион файлов, с командной строкой в большинстве случаев и ждать несколько минут пересборку оси чтоб проверить тот-ли регистр был нужен... Вобщем проблему с зависанием я решил, нашел глюк в либе, дело было в обработчике прерывания состояния канала, не всегда сбрасывался флаг NAK, отсюда постоянное прерывание до бесконечности... Но моя радость еще не полная, есть еще одно НО, не всегда определяется картридер с карточкой... Чувствую придется еще "зарыться" в эти либы, мать их!
|
|
|
|
|
Sep 14 2013, 11:40
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(mantech @ Sep 13 2013, 20:52)  Или просто я дурак, что связался с стшным контроллером??? Хотя время еще есть можно послать его к "ядреной бабушке", и раскурить что-нить более путевое, типа nxp или atmel... На вашем месте, что лучше сделать?? Ну, ST надо уметь готовить)) В моих задачах я на одном STM32 могу все решить блягодаря его "аццким" таймерам, DMA и т.п. Пытался аналогичное сделать на NXP (а ARM7 и первые Cortex я осваивал по NXP) - не получается. Сейчас уже не помню подробностей, но таймеры у NXP "обычные" - только захват и сравнение. DMA у NXP по крайне мере раньше обслуживал маленький список "счастливчиков" и АЦП, вроде, в него не входил. Крайний раз в NXP меня поразил Cortex с CAN-phy на борту (2 года назад), но так руки и не дошли, хотя с десяток микросхем все это время пылится в столе. Если вдруг решите связаться с ST, то про "его кухню" тут не мало постов. Но придется читать документацию, и некоторые особенности применения узнавать из StdLib - с течением времени рвотный рефлекс приглушается и все становится нормой. Самое интересное, что я практически купил кучку STM32F429 (в дороге), на которых даже нет документации на сайте)) Говорят, появится в октябре. Ну вот как-то так...
|
|
|
|
|
Sep 14 2013, 11:56
|

Знающий
   
Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467

|
Цитата(mantech @ Sep 13 2013, 12:52)  Документация на USB-движок, встроенный в эти МК была довольно неудачная и попросту неполная (т.е., даже имея ее, написать свою реализацию того же хоста было невозможно).
Нее, я только одного не понимаю, они что, не хотят, чтобы их микросхемы покупали?? Я уже целый час сижу на их сайте и ничего кроме даташита о том, что есть в этом камне, больше ничего нет!!! В чем смысл скрывать данные о девайсах в контроллере, снабдить все это чудо полукривыми либами, к которым тоже нет доков, кроме убогого описания усб либы и то, на 60% посвященной девайсу, а не хосту?? Или просто я дурак, что связался с стшным контроллером??? Хотя время еще есть можно послать его к "ядреной бабушке", и раскурить что-нить более путевое, типа nxp или atmel... На вашем месте, что лучше сделать?? что и RM0008 не гуглится? http://www.st.com/web/en/resource/technica.../CD00171190.pdf
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|