Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: USB для чайников
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Интерфейсы
Lexy_one
У важаемые форумчане ПОМОГИТЕ КТО ЧЕМ МОЖЕТ!!!

Вобщем проблема в следующем....
Нужно сделать виртуальный COM на шине USB процессора LPC2368.
Поступил следующим образом: взял пример проэкта "VirtualCom" с примеров включенных в IAR ARM v5.41. Прикрутил к своему проэкту... И "О чудо" - заработало.... Но работало не долго sm.gif ....
Поработает так час - два и загибается, а вчем проблема найти не могу.... может кто сталкивался - подскажите как решить проблему...

kovigor
Цитата(Lexy_one @ Aug 23 2011, 09:56) *
И "О чудо" - заработало.... Но работало не долго sm.gif ....
Поработает так час - два и загибается, а вчем проблема найти не могу....


А может, у вас кабель от машины до LPC плохой ? Или резисторов согласующих в линии нет ? Или помеховая обстановка сложная ? А если попробовать на другой машине ? Под другой ОС ? А если залить в МК любой другой поставляемый с IAR (Keil) проект, например, тот же HID, тоже такая проблема будет ? А если взять CDC не от IAR'а, как сейчас, а от Keil'а, то это решит проблему ? Задаваемый вами вопрос очень и очень сложен. Если не поможет то, что я написал, то придется читать литературу по USB, спецификацию, глубоко вникать в исходники и их отлаживать. От себя добавлю, что поставляемые со средами разработки примеры для USB никогда не были законченными коммерческими проектами. Да этого от них и не требуется ...
Lexy_one
С кабелем все в порядке... И даже резисторы согласующие есть sm.gif ...
пробовали на друго машине - глюк проявляется аналогичным образом...
примера от Keil'а нету... есть от IAR'а...

Есть готовое устройство в с программой на IAR'е - и поэтому хотелось бы использовать примет от IAR'а
Едиственное отличие - в процессоре -- в примере используется LPC2378, а у меня LPC2368. Хотя по докам вроде разници в реализации USB в этих процессорах нету...

хотелось бы уяснить.... Это глюк примера.... или нет... и если да то возможно ли его побороть....
или лучше напистать свой код?
kovigor
Цитата(Lexy_one @ Aug 23 2011, 11:27) *
Это глюк примера.... или нет... и если да то возможно ли его побороть....
или лучше напистать свой код?


А кто ж его знает ? Я вам предлагаю простейший путь. Скачайте Кейл, возьмите оттуда пример, компильните и залейте. Просто для проверки. Работает ? Ну, тогда пример от ИАРа сбоит. Нет ? Придется разбираться. Писать свой проект с нуля не стоит (поверьте, это очень непросто). Гораздо лучше разобрать проект от КЕЙЛа по косточкам, понять, как он работает и подкорректировать то, что нужно ...
Lexy_one
А что пример от кейла реализован более просто чем от иара?
скинте пож.. пример от кейла или ссылочку....
kovigor
Цитата(Lexy_one @ Aug 23 2011, 12:36) *
А что пример от кейла реализован более просто чем от иара?
скинте пож.. пример от кейла или ссылочку....


Скачайте Кейл, там внутри примеры. Если я вам дам сам пример от Кейла, толку от этого будет мало. Его надо компилировать и изучать в Кейле, а не отдельно от оного. Так гораздо приятнее и проще. Примеры от Кейла вполне разбираемые и корректные. С примерами от ИАРа я не работал ...
Lexy_one
Проблема найдена: USB переходит в состояние "Suspend"
Подскажите как корректно выйти из этого сотояния.
Как вариант, я думаю контролировать это состояние и перезагружать USB при его обнаружении. Но мне кажется что данный вариант не очень корректен. Может кто знает как "сказать" хосту что нужно переинициализировать порт?
kovigor
Цитата(Lexy_one @ Aug 31 2011, 10:01) *
Проблема найдена: USB переходит в состояние "Suspend"
Подскажите как корректно выйти из этого сотояния.
Как вариант, я думаю контролировать это состояние и перезагружать USB при его обнаружении. Но мне кажется что данный вариант не очень корректен.


А мне кажется, что вам как минимум нужно еще раз вчитаться в даташит, вникнуть в пример от Кейла и выяснить, как же все-таки в этом примере обрабатывается Suspend (а обрабатывается он там совсем не таким зверским способом, и, кстати, при энумерации устройство заходит в это состояние раза 2-3, а то и больше, и ничего). Если хотите, могу дать пример, но он для LPC214x ...
Lexy_one
Цитата(kovigor @ Aug 31 2011, 11:22) *
А мне кажется, что вам как минимум нужно еще раз вчитаться в даташит, вникнуть в пример от Кейла и выяснить, как же все-таки в этом примере обрабатывается Suspend

Ооо Даташит форевер... Перечитываю уже раз 3й... и в данный момент тоже sm.gif..
Кейла скачать не удалось... и примера соответсвенно нету... есть,как я уже говорил, проект для IAR и туда над прикрутить USB. А Кейловский пример хотелось бы поиметь, хотябы для ознакомления.

Цитата(kovigor @ Aug 31 2011, 11:22) *
при энумерации устройство заходит в это состояние раза 2-3, а то и больше

Возможно, но когда залипает, то он висит в етом состоянии постоянно.

Цитата(kovigor @ Aug 31 2011, 11:22) *
Если хотите, могу дать пример, но он для LPC214x ...

Хочу.... дайте если есть...
kovigor
Цитата(Lexy_one @ Aug 31 2011, 14:51) *
Хочу.... дайте если есть...


А куда слать ?

P.S. А Кейл элементарно скачивается на сайте производителя. Там огромный архив, и внутри него все, и примеры - тоже:

www.keil.com
Lexy_one
Цитата(kovigor @ Aug 31 2011, 15:09) *
А куда слать ?


Выслал адрес в личку
kovigor
Цитата(Lexy_one @ Aug 31 2011, 15:27) *
Выслал адрес в личку


Ушло. Просьба не распространять ...
Lexy_one
Цитата(kovigor @ Aug 31 2011, 15:48) *
Ушло. Просьба не распространять ...

Спасиба! Ни комоу не дам --- честное пионерское sm.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.