Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > драйвер serial USB под win xp для ecos


Автор: daemonaz 14.5.2012, 09:34
Приветствую!
Просьба помочь решить одну проблемку, пишу приложение под eCOS, проц at91sam9263, требуется реализовать serial USB с использованием имеющихся в арсенале RTOS eCOS функциии, но вот проблема возникает с драйвером Windows, в документации ecos указано что нужно скопировать eCosUsbSerial.inf и usbser.sys в папку, затем с помошью диспетчера устройств указать на эту папку для установки драйвера? как и было сделано. Однако при запуске платы появляется значок COM7 и восклицательный знак, виртуальный COM-порт не открывается, не могу понять почему так происходит. С linux проблем таких не было, достаточно набрать modprobe usbserial vendor=0xffff product=0x0001 и вуаля, все работает. Как заставить windows xp работать с портом?

Автор: UniBomb 14.5.2012, 09:59
daemonaz, а что пишет в состоянии устройства?

Автор: daemonaz 14.5.2012, 13:38
Пишет, что

Запуск этого устройства невозможен. (Код 10)

Есть подозрение на глукавый usbser.sys

Автор: UniBomb 14.5.2012, 15:06
Мелкомягкие в данном случае сами не знают причину неработоспособности и http://support.microsoft.com/kb/943104/. Советуют при этом обновить всё что можно - начиная от дрйверов устройства и кончая обновлениями самой системы. 

У меня был похожий случай с библиотекой lufa. Залил пример на мк, поставил драйвер и радость закончилась. Долго разбираться не пришлось - через день или два вышла новая версия библиотеки. Я скомпилировал новый пример, скормил новый драйвер и всё заработало. Поэтому чем чёрт не шутит - может действительно стоит обновить драйвера.

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

Автор: daemonaz 14.5.2012, 16:15
хм, а на Линуске все работает, принимает и передает данные, спасибо за ссылку, действительно мягкотелые чего-то не доработали.. Имеет ли смысль пробывать на windows 7?
Кстати через тот же шнур SAM-BA работает безупречно..

Автор: UniBomb 14.5.2012, 16:37
Цитата(daemonaz @  14.5.2012,  17:15 Найти цитируемый пост)
на Линуске все работает

На линуксе же не стоят предлагаемые драйвера.

Цитата(daemonaz @  14.5.2012,  17:15 Найти цитируемый пост)
через тот же шнур SAM-BA работает безупречно

Если бы работоспособность драйверов зависела от шнура  smile 

Цитата(daemonaz @  14.5.2012,  17:15 Найти цитируемый пост)
Имеет ли смысль пробывать на windows 7?

Ну почему бы и нет. Правда это не решит проблему неработоспособнисти под ХР. Кстати, а всё же менять драйвера ты ещё не пробовал? Попробуй подсунуть драйвера свежее/старее.

Автор: daemonaz 14.5.2012, 18:11
Скачал из сети несколько дров usbser.sys, отличающиеся по размеру, ни один не заработал, а последний стал засовывать, так операционка перестала грузиться, вместо системы синий эран смерти.. smile 
Поставил win 7 x64, то же самое, ничего не меняется. Что не так?

Автор: UniBomb 16.5.2012, 12:33
daemonaz, починился хоть?  smile Вообще, для отладки чего бы то ни было, особенно когда оно вносит изменения в систему, надо использовать виртуальные машины. Я например использую Virtual Box. 

Кстати пришла ещё мысль - а соответствуют ли vid и pid устройства тем, что указаны в драйверах (это как раз твои vendor=0xffff product=0x0001)? Не менял ли ты их? Ещё момент - возможно ты уже втыкал в компьютер другие устройства с такими vid и pid и в системе остались старые драйвера. Хотя это конечно маловероятно.

Автор: daemonaz 16.5.2012, 13:34
UniBomb, нет, не менял, я все проверил, vid и pid такой же что и у устройства, иначе win его не распознал, вряд ли есть такие устройства с данными Vid-pid (0xFFFF:0x0001), через Virtual box я также пытался подключить, но безуспешно, сам Virtual box отказывается транслировать порт, ругается как на неизвестное устройство.  В самом деле драйвер это и есть usbser.sys, а inf - это всего лишь информация что нужно делать с данным устрйоством с данными Vid:pid, inf фактически ничем не отличается от других стандартных рабочих inf для USB serial convertor. Есть подозрение на реализации библиотечных функции eСos, пока не знаю.

Что самое интересное, что в Линуксе запустив CuteCom, порт открылся в режиме приема, но не одновременно прием-передача.

Автор: UniBomb 16.5.2012, 14:34
Цитата(daemonaz @  16.5.2012,  14:34 Найти цитируемый пост)
вряд ли есть такие устройства с данными Vid-pid

Зря сомневаешься. Тут какое дело - операционная система ставит драйвер по комбинации vid-pid. Сам по себе vid стоит денег. Посему, что бы не платить, то многие используют незанятый vid, ибо если оно будет совпадать, то драйвера будут всегда подсовываться от первого установленного устройства. Что бы не морочиться с уникальными комбинациями многие просто ffff. Это значение популярно среди радиолюбителей и китайцев.

А по существу - больше я ничем не могу помочь (хотя и так ничем не помог  smile ) smile Попробуй обратится к разработчикам или на тематические форумы (именно по eCos).

Автор: daemonaz 17.5.2012, 11:48
Короче решил проблему, может кому-то пригодится, в текущей сборке ecos по умолчанию класс устройств = 0 (generic), что для Линуха норма, то для Windos плохо, однако Win работает с классом устройств CDC (0x02).
Пересобрал сборку с нужными настройками и вуаля! спасибо за поддержку.

Автор: UniBomb 17.5.2012, 13:09
daemonaz, я про классы устройств даже и не думал. В моём примере про луфу были аналогичные симптомы и железка тоже реализовывала CDC. Вот поэтому это и не вызывало подозрений smile 

Но хорошо, что проблема решилась smile Помечаю тему как решённая (хотя ты и сам бы мог smile  ).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)