mantech 48 12 сентября, 2013 Опубликовано 12 сентября, 2013 · Жалоба Довелось мне поюзать платку дискавери в режиме усб-хоста. Так вроде все работает :rolleyes: За одним нюансом - когда вставляешь-вынимаешь флеху "на горячюю" она как правило потом снова нормально подключается, но раз на 10й, а может и на 20й ... Просто виснет и все тут!! "методом тыка" определил, что происходит постоянный вызов обработчика прерываний - OTG_FS_IRQHandler в котором вызывается процедура обработчика - USBH_OTG_ISR_Handler (...) Причем, при "нормальной" работе хоста, прерывания вызываются только при подключенной флехе, а когда ее нет то нет и прерывания, а тут такое... :05: Уважаемые гуру, может кто знает, что тут сделать можно?? Мое мнение - не происходит обработка какой-либо исключительной ситуации или ошибки хоста, хотя могу ошибаться. Как вариант - каким-либо образом проресетить усб контроллер, чтоб выйти из бесконечного прерывания... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 5 12 сентября, 2013 Опубликовано 12 сентября, 2013 · Жалоба Уважаемые гуру, может кто знает, что тут сделать можно?? В техподдержку ST напишите. Возможно, эта проблема им известна. P.S. Жизнь, елки-палки. Абсолютно все версии Win2000 и XP (а может, и более поздние - просто не проверял) абсолютно на всех машинах, когда-либо виденных мною, страдают одной и той же болезнью - при горячем выключении USB - клавиатуры (именно клавиатуры, и ничего другого, производитель клавиатуры при этом не важен) система мертво зависает в среднем раз из десяти, а то и из пяти. Спасает тольо кнопка сброса. И это в ОС, разошедшейся десятками миллионов экземпляров по всему миру. А тут какая-то учебная платка с демонстрационно-учебным ПО ... Когда я писал свой хост для ARM9, то пару месяцев "вылизывал" каждую строчку, тестировал все возможные режимы и вполне мог отвечать за то, что и как у меня работает. А здесь ... Что сказать ? Придется вам вгрызаться в этот проект, и вгрызаться серьезно. Чудес не бывает. Вернее, бывают, но чуда нужно быть достойным ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 12 сентября, 2013 Опубликовано 12 сентября, 2013 · Жалоба при горячем выключении USB - клавиатуры (именно клавиатуры, и ничего другого, производитель клавиатуры при этом не важен) система мертво зависает в среднем раз из десяти, а то и из пяти. Дак это понятное дело... В данном случае не думаю, что виновата "железка", а про СТ-шные библиотеки вообще разговор особый!! Мне просто интересно, что лучше сделать при таком поведении хоста - как-то сбрасывать прерывание или ресетить сам хост, правда пока не знаю как... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 5 12 сентября, 2013 Опубликовано 12 сентября, 2013 · Жалоба как-то сбрасывать прерывание или ресетить сам хост, правда пока не знаю как... Глубоко разобраться в причине проблемы и осознанно выбрать путь ее решения. C наскока ничего не выйдет, учитывая крайне сложную реализацию USB в STM и дaлекoе от совершенства ПО, предоставляемое ST ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 13 сентября, 2013 Опубликовано 13 сентября, 2013 · Жалоба Может кто дать ссылку на описание самого интерфейса усб? А то пока есть только общий даташит, и на сайте ст черт ногу сломает... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 5 13 сентября, 2013 Опубликовано 13 сентября, 2013 · Жалоба Может кто дать ссылку на описание самого интерфейса усб? А то пока есть только общий даташит, и на сайте ст черт ногу сломает... Я этим занимался года 2 назад. Документация на USB-движок, встроенный в эти МК была довольно неудачная и попросту неполная (т.е., даже имея ее, написать свою реализацию того же хоста было невозможно). Не знаю, как сейчас, я пока об ST забыл, как о страшном сне ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 13 сентября, 2013 Опубликовано 13 сентября, 2013 · Жалоба Документация на USB-движок, встроенный в эти МК была довольно неудачная и попросту неполная (т.е., даже имея ее, написать свою реализацию того же хоста было невозможно). Нее, я только одного не понимаю, они что, не хотят, чтобы их микросхемы покупали?? Я уже целый час сижу на их сайте и ничего кроме даташита о том, что есть в этом камне, больше ничего нет!!! В чем смысл скрывать данные о девайсах в контроллере, снабдить все это чудо полукривыми либами, к которым тоже нет доков, кроме убогого описания усб либы и то, на 60% посвященной девайсу, а не хосту?? Или просто я дурак, что связался с стшным контроллером??? Хотя время еще есть можно послать его к "ядреной бабушке", и раскурить что-нить более путевое, типа nxp или atmel... На вашем месте, что лучше сделать?? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 5 14 сентября, 2013 Опубликовано 14 сентября, 2013 · Жалоба Хотя время еще есть можно послать его к "ядреной бабушке", и раскурить что-нить более путевое, типа nxp или atmel... На вашем месте, что лучше сделать?? На моем ? На то время, когда я взялся за ST, у него был один конек - USB HS. Мне именно HS и был нужен, FS было мало. Поэтому пришлось мучиться, тратить время, нервы, здоровье и портить зрение. Сейчас наверняка ситуация изменилась, и можно подобрать МК и с HS у того же NXP или ATMEL. Сможете подобрать - подберите и используйте. ще. Говорят, STM дешевле. Планируете крупную серию ? Если да, возможно, стоит помучиться. Если нет, бегите от STM, теряя тапки, ломая крылья и теряя перья. Это мое ИМХО, основанное на тяжелом и выстраданном личном опыте. Следующее подобное счастье - AM1707 от TI. Документация на USB неполная, примеров ... нет (!!!) Зато есть Линукс с исходниками. Предлагается желающим добывать изюм из булочек, выискивая в этой навозной куче связанные с USB жемчужные зерна. Простите, оно мне надо ? И сил у меня на это нет. Ковыряние в мегабайтах исходников Линукса с целью выковыривания оттуда какой-то козявки - не мой конек. Полтора месяца промучился и плюнул. Хотя, опять же, раз есть Линукс, значит, все необходимые исходники, наброски, документы и проч. у фирмы-разработчика есть. Почему бы их не выложить ? Так нет же ! Вот вам Линукс, ешьте его с маслом. А мне нужно было именно Standalone - решение ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 14 сентября, 2013 Опубликовано 14 сентября, 2013 · Жалоба Предлагается желающим добывать изюм из булочек, выискивая в этой навозной куче связанные с USB жемчужные зерна. Простите, оно мне надо ? И сил у меня на это нет. Ковыряние в мегабайтах исходников Линукса с целью выковыривания оттуда какой-то козявки - не мой конек. Да уж, этот линукс... Меня тоже уже пытались "накормить" им, но не люблю копаться в чужих осях, особенно в тех, где нужно копать миллион файлов, с командной строкой в большинстве случаев и ждать несколько минут пересборку оси чтоб проверить тот-ли регистр был нужен... Вобщем проблему с зависанием я решил, нашел глюк в либе, дело было в обработчике прерывания состояния канала, не всегда сбрасывался флаг NAK, отсюда постоянное прерывание до бесконечности... Но моя радость еще не полная, есть еще одно НО, не всегда определяется картридер с карточкой... Чувствую придется еще "зарыться" в эти либы, мать их! :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 14 сентября, 2013 Опубликовано 14 сентября, 2013 · Жалоба Или просто я дурак, что связался с стшным контроллером??? Хотя время еще есть можно послать его к "ядреной бабушке", и раскурить что-нить более путевое, типа nxp или atmel... На вашем месте, что лучше сделать?? Ну, ST надо уметь готовить)) В моих задачах я на одном STM32 могу все решить блягодаря его "аццким" таймерам, DMA и т.п. Пытался аналогичное сделать на NXP (а ARM7 и первые Cortex я осваивал по NXP) - не получается. Сейчас уже не помню подробностей, но таймеры у NXP "обычные" - только захват и сравнение. DMA у NXP по крайне мере раньше обслуживал маленький список "счастливчиков" и АЦП, вроде, в него не входил. Крайний раз в NXP меня поразил Cortex с CAN-phy на борту (2 года назад), но так руки и не дошли, хотя с десяток микросхем все это время пылится в столе. Если вдруг решите связаться с ST, то про "его кухню" тут не мало постов. Но придется читать документацию, и некоторые особенности применения узнавать из StdLib - с течением времени рвотный рефлекс приглушается и все становится нормой. Самое интересное, что я практически купил кучку STM32F429 (в дороге), на которых даже нет документации на сайте)) Говорят, появится в октябре. Ну вот как-то так... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 14 сентября, 2013 Опубликовано 14 сентября, 2013 (изменено) · Жалоба я практически купил кучку STM32F429 (в дороге), на которых даже нет документации на сайте)) Говорят, появится в октябре. Ну вот как-то так... Прикольно, коты в мешке :blink: Это случаем не те, что с ЖК контроллером и сдрамкой на борту?? Интересно бы посмотреть как они в работе... Изменено 14 сентября, 2013 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A. Fig Lee 0 14 сентября, 2013 Опубликовано 14 сентября, 2013 · Жалоба Документация на USB-движок, встроенный в эти МК была довольно неудачная и попросту неполная (т.е., даже имея ее, написать свою реализацию того же хоста было невозможно). Нее, я только одного не понимаю, они что, не хотят, чтобы их микросхемы покупали?? Я уже целый час сижу на их сайте и ничего кроме даташита о том, что есть в этом камне, больше ничего нет!!! В чем смысл скрывать данные о девайсах в контроллере, снабдить все это чудо полукривыми либами, к которым тоже нет доков, кроме убогого описания усб либы и то, на 60% посвященной девайсу, а не хосту?? Или просто я дурак, что связался с стшным контроллером??? Хотя время еще есть можно послать его к "ядреной бабушке", и раскурить что-нить более путевое, типа nxp или atmel... На вашем месте, что лучше сделать?? что и RM0008 не гуглится? http://www.st.com/web/en/resource/technica.../CD00171190.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 14 сентября, 2013 Опубликовано 14 сентября, 2013 · Жалоба Да, с СТ чтото странное: недавно познакомился с их чипом STM32F051. Микроконтроллер мощный в плане периферии, её возможностях - тут ничего не попишешь. Но дока - отвратительная! В смысле - как буд-то бы слегка кастрированная. В общем порой мучался на ровных местах... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 14 сентября, 2013 Опубликовано 14 сентября, 2013 · Жалоба что и RM0008 не гуглится? http://www.st.com/web/en/resource/technica.../CD00171190.pdf Это для 107 мануал. Для 407 - RM0090 который я после 2х часов танцев с бубном и обращением к всевышнему, нашел у них на сайте Сразу и ошибку с NAKом нашел, но еще "не вечер"... Да, с СТ чтото странное: недавно познакомился с их чипом STM32F051. Микроконтроллер мощный в плане периферии, её возможностях - тут ничего не попишешь. Но дока - отвратительная! В смысле - как буд-то бы слегка кастрированная. В общем порой мучался на ровных местах... Да там нормальная дока (я про усб в смысле), просто сам контроллер навороченый очень, поэтому сложновато... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 14 сентября, 2013 Опубликовано 14 сентября, 2013 · Жалоба Это для 107 мануал. Для 407 - RM0090 который я после 2х часов танцев с бубном и обращением к всевышнему, нашел у них на сайте В отношении STM32F429 там (RM0090 ver 4) нет описания "плюшек", характерных именно 429, а не 407. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться