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

Довелось мне поюзать платку дискавери в режиме усб-хоста. Так вроде все работает :rolleyes:

За одним нюансом - когда вставляешь-вынимаешь флеху "на горячюю" она как правило потом снова нормально подключается, но раз на 10й, а может и на 20й :wacko: ... Просто виснет и все тут!!

 

"методом тыка" определил, что происходит постоянный вызов обработчика прерываний - OTG_FS_IRQHandler в котором вызывается процедура обработчика - USBH_OTG_ISR_Handler (...)

Причем, при "нормальной" работе хоста, прерывания вызываются только при подключенной флехе, а когда ее нет то нет и прерывания, а тут такое... :05:

 

Уважаемые гуру, может кто знает, что тут сделать можно?? Мое мнение - не происходит обработка какой-либо исключительной ситуации или ошибки хоста, хотя могу ошибаться. Как вариант - каким-либо образом проресетить усб контроллер, чтоб выйти из бесконечного прерывания...

 

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


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

Уважаемые гуру, может кто знает, что тут сделать можно??

В техподдержку ST напишите. Возможно, эта проблема им известна.

 

P.S. Жизнь, елки-палки. Абсолютно все версии Win2000 и XP (а может, и более поздние - просто не проверял) абсолютно на всех машинах, когда-либо виденных мною, страдают одной и той же болезнью - при горячем выключении USB - клавиатуры (именно клавиатуры, и ничего другого, производитель клавиатуры при этом не важен) система мертво зависает в среднем раз из десяти, а то и из пяти. Спасает тольо кнопка сброса. И это в ОС, разошедшейся десятками миллионов экземпляров по всему миру. А тут какая-то учебная платка с демонстрационно-учебным ПО ... Когда я писал свой хост для ARM9, то пару месяцев "вылизывал" каждую строчку, тестировал все возможные режимы и вполне мог отвечать за то, что и как у меня работает. А здесь ... Что сказать ? Придется вам вгрызаться в этот проект, и вгрызаться серьезно. Чудес не бывает. Вернее, бывают, но чуда нужно быть достойным ...

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


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

при горячем выключении USB - клавиатуры (именно клавиатуры, и ничего другого, производитель клавиатуры при этом не важен) система мертво зависает в среднем раз из десяти, а то и из пяти.

 

 

Дак это понятное дело... В данном случае не думаю, что виновата "железка", а про СТ-шные библиотеки вообще разговор особый!! Мне просто интересно, что лучше сделать при таком поведении хоста - как-то сбрасывать прерывание или ресетить сам хост, правда пока не знаю как...

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


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

как-то сбрасывать прерывание или ресетить сам хост, правда пока не знаю как...

Глубоко разобраться в причине проблемы и осознанно выбрать путь ее решения. C наскока ничего не выйдет, учитывая крайне сложную реализацию USB в STM и дaлекoе от совершенства ПО, предоставляемое ST ...

 

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


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

Может кто дать ссылку на описание самого интерфейса усб? А то пока есть только общий даташит, и на сайте ст черт ногу сломает...

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


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

Может кто дать ссылку на описание самого интерфейса усб? А то пока есть только общий даташит, и на сайте ст черт ногу сломает...

Я этим занимался года 2 назад. Документация на USB-движок, встроенный в эти МК была довольно неудачная и попросту неполная (т.е., даже имея ее, написать свою реализацию того же хоста было невозможно). Не знаю, как сейчас, я пока об ST забыл, как о страшном сне ...

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


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

Документация на USB-движок, встроенный в эти МК была довольно неудачная и попросту неполная (т.е., даже имея ее, написать свою реализацию того же хоста было невозможно).

 

 

Нее, я только одного не понимаю, они что, не хотят, чтобы их микросхемы покупали?? Я уже целый час сижу на их сайте и ничего кроме даташита о том, что есть в этом камне, больше ничего нет!!! В чем смысл скрывать данные о девайсах в контроллере, снабдить все это чудо полукривыми либами, к которым тоже нет доков, кроме убогого описания усб либы и то, на 60% посвященной девайсу, а не хосту?? Или просто я дурак, что связался с стшным контроллером??? Хотя время еще есть можно послать его к "ядреной бабушке", и раскурить что-нить более путевое, типа nxp или atmel... На вашем месте, что лучше сделать??

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


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

Хотя время еще есть можно послать его к "ядреной бабушке", и раскурить что-нить более путевое, типа nxp или atmel... На вашем месте, что лучше сделать??

На моем ? На то время, когда я взялся за ST, у него был один конек - USB HS. Мне именно HS и был нужен, FS было мало. Поэтому пришлось мучиться, тратить время, нервы, здоровье и портить зрение. Сейчас наверняка ситуация изменилась, и можно подобрать МК и с HS у того же NXP или ATMEL. Сможете подобрать - подберите и используйте.

ще. Говорят, STM дешевле. Планируете крупную серию ? Если да, возможно, стоит помучиться. Если нет, бегите от STM, теряя тапки, ломая крылья и теряя перья. Это мое ИМХО, основанное на тяжелом и выстраданном личном опыте.

Следующее подобное счастье - AM1707 от TI. Документация на USB неполная, примеров ... нет (!!!) Зато есть Линукс с исходниками. Предлагается желающим добывать изюм из булочек, выискивая в этой навозной куче связанные с USB жемчужные зерна. Простите, оно мне надо ? И сил у меня на это нет. Ковыряние в мегабайтах исходников Линукса с целью выковыривания оттуда какой-то козявки - не мой конек. Полтора месяца промучился и плюнул.

Хотя, опять же, раз есть Линукс, значит, все необходимые исходники, наброски, документы и проч. у фирмы-разработчика есть. Почему бы их не выложить ? Так нет же ! Вот вам Линукс, ешьте его с маслом. А мне нужно было именно Standalone - решение ...

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


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

Предлагается желающим добывать изюм из булочек, выискивая в этой навозной куче связанные с USB жемчужные зерна. Простите, оно мне надо ? И сил у меня на это нет. Ковыряние в мегабайтах исходников Линукса с целью выковыривания оттуда какой-то козявки - не мой конек.

 

Да уж, этот линукс... Меня тоже уже пытались "накормить" им, но не люблю копаться в чужих осях, особенно в тех, где нужно копать миллион файлов, с командной строкой в большинстве случаев и ждать несколько минут пересборку оси чтоб проверить тот-ли регистр был нужен...

 

Вобщем проблему с зависанием я решил, нашел глюк в либе, дело было в обработчике прерывания состояния канала, не всегда сбрасывался флаг NAK, отсюда постоянное прерывание до бесконечности...

 

Но моя радость еще не полная, есть еще одно НО, не всегда определяется картридер с карточкой... Чувствую придется еще "зарыться" в эти либы, мать их! :(

 

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


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

Или просто я дурак, что связался с стшным контроллером??? Хотя время еще есть можно послать его к "ядреной бабушке", и раскурить что-нить более путевое, типа nxp или atmel... На вашем месте, что лучше сделать??

Ну, ST надо уметь готовить))

В моих задачах я на одном STM32 могу все решить блягодаря его "аццким" таймерам, DMA и т.п.

Пытался аналогичное сделать на NXP (а ARM7 и первые Cortex я осваивал по NXP) - не получается.

Сейчас уже не помню подробностей, но таймеры у NXP "обычные" - только захват и сравнение.

DMA у NXP по крайне мере раньше обслуживал маленький список "счастливчиков" и АЦП, вроде, в него не входил.

Крайний раз в NXP меня поразил Cortex с CAN-phy на борту (2 года назад), но так руки и не дошли, хотя с десяток микросхем все это

время пылится в столе.

 

Если вдруг решите связаться с ST, то про "его кухню" тут не мало постов. Но придется читать документацию, и некоторые особенности

применения узнавать из StdLib - с течением времени рвотный рефлекс приглушается и все становится нормой. Самое интересное, что

я практически купил кучку STM32F429 (в дороге), на которых даже нет документации на сайте)) Говорят, появится в октябре. Ну вот как-то так...

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


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

я практически купил кучку STM32F429 (в дороге), на которых даже нет документации на сайте)) Говорят, появится в октябре. Ну вот как-то так...

 

 

Прикольно, коты в мешке :blink:

Это случаем не те, что с ЖК контроллером и сдрамкой на борту?? Интересно бы посмотреть как они в работе...

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

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


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

Документация на USB-движок, встроенный в эти МК была довольно неудачная и попросту неполная (т.е., даже имея ее, написать свою реализацию того же хоста было невозможно).

 

 

Нее, я только одного не понимаю, они что, не хотят, чтобы их микросхемы покупали?? Я уже целый час сижу на их сайте и ничего кроме даташита о том, что есть в этом камне, больше ничего нет!!! В чем смысл скрывать данные о девайсах в контроллере, снабдить все это чудо полукривыми либами, к которым тоже нет доков, кроме убогого описания усб либы и то, на 60% посвященной девайсу, а не хосту?? Или просто я дурак, что связался с стшным контроллером??? Хотя время еще есть можно послать его к "ядреной бабушке", и раскурить что-нить более путевое, типа nxp или atmel... На вашем месте, что лучше сделать??

что и RM0008 не гуглится?

http://www.st.com/web/en/resource/technica.../CD00171190.pdf

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


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

Да, с СТ чтото странное: недавно познакомился с их чипом STM32F051. Микроконтроллер мощный в плане периферии, её возможностях - тут ничего не попишешь. Но дока - отвратительная! В смысле - как буд-то бы слегка кастрированная. В общем порой мучался на ровных местах...

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


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

что и RM0008 не гуглится?

http://www.st.com/web/en/resource/technica.../CD00171190.pdf

 

Это для 107 мануал. Для 407 - RM0090 который я после 2х часов танцев с бубном и обращением к всевышнему, нашел у них на сайте :wacko:

 

Сразу и ошибку с NAKом нашел, но еще "не вечер"...

 

Да, с СТ чтото странное: недавно познакомился с их чипом STM32F051. Микроконтроллер мощный в плане периферии, её возможностях - тут ничего не попишешь. Но дока - отвратительная! В смысле - как буд-то бы слегка кастрированная. В общем порой мучался на ровных местах...

 

 

Да там нормальная дока (я про усб в смысле), просто сам контроллер навороченый очень, поэтому сложновато...

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


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

Это для 107 мануал. Для 407 - RM0090 который я после 2х часов танцев с бубном и обращением к всевышнему, нашел у них на сайте :wacko:

В отношении STM32F429 там (RM0090 ver 4) нет описания "плюшек", характерных именно 429, а не 407.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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