реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Драйвер usbser, Разбирательство с версиями
mr.smart
сообщение Jan 6 2011, 14:15
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 2-10-10
Пользователь №: 59 884



Доброго всем Нового Года и Привет!
Для AT91SAM7S256 написал небольшую программу общения с платой через hyper terminal с задействованием CDC. В данном проекте используется usbser.sys.
Проблема в том, что программа работает некорректно в Windows XP SP3 (зависает при попытке отправить пакет хосту), в то время как в Windows 7 все работает как надо. Подозрение падает на usbser.sys. Плюс я слышал, что для XP данный драйвер немного непопулярен из-за своей кособокости, поэтому люди, работающие в ХР, меняют стандартный usbser на аналог из Win2000.

Вопросы: Сталкивались ли вы с проблемами Вашего usbser.sys и если да, то как вы их решали?
Например у меня возникли трудности с удалением драйвера. После удаления или изменения usbser.sys система сразу же его восстанавливает. Удалил все его бэкапы из папки WINDOWS, а система все-равно откуда-то его восстанавливает... Хотя вроде через безопасный режим я заменял его на другие юсбсеры которые нашел в интернетах (не знаю для какой ОС они), эффект с зависанием программы остается.

Ну и было бы идеально если бы кто-нибудь скинул мне файлик юсбсера для Вин2000 или любой, с которым он успешно работает в ХР. Буду благодарен.
Go to the top of the page
 
+Quote Post
Aurochs
сообщение Jan 6 2011, 15:36
Сообщение #2


Ортодокс
***

Группа: Свой
Сообщений: 219
Регистрация: 26-10-07
Из: Смела, Украина
Пользователь №: 31 775



Вот драйвер, которым я уже в течение 3-х лет пользуюсь на XP SP3.
Работает надежно и без нареканий. Единственное - тормозной.
Скорости больше 70 Кб/сек мне из него выжать не удалось.
Прикрепленные файлы
Прикрепленный файл  usbser.zip ( 13.64 килобайт ) Кол-во скачиваний: 54
 
Go to the top of the page
 
+Quote Post
Xenia
сообщение Jan 6 2011, 16:13
Сообщение #3


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Уже давно работаю под WinXP с вируальным COM-портом и жаловаться не приходилось. Сейчас у меня тоже SP3 стоит, но и здесь на usbser.sys у меня нет нареканий. Правда я работаю не с AT91SAM, а с AT90USB, но это не должно менять дело.

Драйвер, который предложил Aurochs, имеет:
Product Version 5.1.2600.2180
а родной от SP3:
Product Version 5.1.2600.5512
но это не кажется мне существенным, т.к. и с прошлыми SP у меня работало ровно так же.

А вот какие-нибудь нарушения протокола со стороны внешнего устройства вполне могут быть причиной нарушений.
Единственный минус, который я у usbser.sys знаю, так это неспособность самостоятельно восстанавливать коннект, если внешнее устройство "отвалилось". Например, уснуло или вовремя не проснулось. Или протокол нарушило, не ответив на запрос в установленные сроки.
На предельных скоростях я его не гоняла, но лишь потому, что не было повода.
Go to the top of the page
 
+Quote Post
mr.smart
сообщение Jan 6 2011, 16:47
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 2-10-10
Пользователь №: 59 884



Спасибо за файлик, поставил его... Ничего не изменилось... Блин, теперь даже не знаю куда смотреть.
Может быть хоть у Вас будет идея почему данный код работает на одной машине и не работает на другой (usbser, как мы выяснили тут не при чем...)

Вот моя функция передачи данных хосту:
Код
static uint AT91F_UDP_Write(AT91PS_CDC pCdc, const char *pData, uint length)
{
    AT91PS_UDP pUdp = pCdc->pUdp;
    
    // проверяем, готов ли юсб к передаче
    if (pUdp->UDP_CSR[AT91C_EP_IN] & AT91C_UDP_TXPKTRDY) {
      return 0;
    }
    pUdp->UDP_FDR[AT91C_EP_IN] = 0x73; // хотим передать символ "t"
    pUdp->UDP_CSR[AT91C_EP_IN] |= AT91C_UDP_TXPKTRDY; // готовы отправлять
    while ( !(pUdp->UDP_CSR[AT91C_EP_IN] & AT91C_UDP_TXCOMP) ); // ждем пока нам не вернут TXCOMP
    pUdp->UDP_CSR[AT91C_EP_IN] &= ~(AT91C_UDP_TXCOMP); // обнуляем TXCOMP
}


Первое использование этой функции происходит нормально. При повторном ее использовании не приходит бит TXCOMP, и программа не выходит из цикла.
В программе я никак не настраивал и вообще не использовал блок управления прерываниями AIC. Может ли проблема быть в этом?
Go to the top of the page
 
+Quote Post
npopok
сообщение Feb 11 2011, 13:15
Сообщение #5





Группа: Участник
Сообщений: 10
Регистрация: 4-05-08
Пользователь №: 37 271



Добрый день. проблема точно такая-же.Есть приложение работающее по виртуальному ком-порту с использованием драйвера usbser.sys. На 80% машин(Win7,XP) приложение работает четко,но на некоторых из машин соединение устанавливается,но чтения из устройства не происходит.Правильно ли я понимаю,что дело именно в драйвере?Что с этим можно сделать?
Go to the top of the page
 
+Quote Post
Xenia
сообщение Feb 11 2011, 13:34
Сообщение #6


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(npopok @ Feb 11 2011, 16:15) *
Добрый день. проблема точно такая-же.Есть приложение работающее по виртуальному ком-порту с использованием драйвера usbser.sys. На 80% машин(Win7,XP) приложение работает четко,но на некоторых из машин соединение устанавливается,но чтения из устройства не происходит.Правильно ли я понимаю,что дело именно в драйвере?Что с этим можно сделать?

Чаще всего не драйвер виноват, а плохой контакт или наводки. Вставляю в USB-разъем на фронтальной панели - не работает (а то и не определяется), а вставляю в зад (разъем на материнке) - всё OK. Даже санацию проводила причин такого поведения. Оказалось, что в один кабель завели жилы от USB-порта и от читателя MMC/SDC-карт, да и внутри не пайка, а соединение "на трении". Отюда и глюки. Не любит USB 2.0 хилых соединений.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 08:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01975 секунд с 7
ELECTRONIX ©2004-2016