mr.smart 0 6 января, 2011 Опубликовано 6 января, 2011 · Жалоба Доброго всем Нового Года и Привет! Для AT91SAM7S256 написал небольшую программу общения с платой через hyper terminal с задействованием CDC. В данном проекте используется usbser.sys. Проблема в том, что программа работает некорректно в Windows XP SP3 (зависает при попытке отправить пакет хосту), в то время как в Windows 7 все работает как надо. Подозрение падает на usbser.sys. Плюс я слышал, что для XP данный драйвер немного непопулярен из-за своей кособокости, поэтому люди, работающие в ХР, меняют стандартный usbser на аналог из Win2000. Вопросы: Сталкивались ли вы с проблемами Вашего usbser.sys и если да, то как вы их решали? Например у меня возникли трудности с удалением драйвера. После удаления или изменения usbser.sys система сразу же его восстанавливает. Удалил все его бэкапы из папки WINDOWS, а система все-равно откуда-то его восстанавливает... Хотя вроде через безопасный режим я заменял его на другие юсбсеры которые нашел в интернетах (не знаю для какой ОС они), эффект с зависанием программы остается. Ну и было бы идеально если бы кто-нибудь скинул мне файлик юсбсера для Вин2000 или любой, с которым он успешно работает в ХР. Буду благодарен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aurochs 0 6 января, 2011 Опубликовано 6 января, 2011 · Жалоба Вот драйвер, которым я уже в течение 3-х лет пользуюсь на XP SP3. Работает надежно и без нареканий. Единственное - тормозной. Скорости больше 70 Кб/сек мне из него выжать не удалось. usbser.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 51 6 января, 2011 Опубликовано 6 января, 2011 · Жалоба Уже давно работаю под WinXP с вируальным COM-портом и жаловаться не приходилось. Сейчас у меня тоже SP3 стоит, но и здесь на usbser.sys у меня нет нареканий. Правда я работаю не с AT91SAM, а с AT90USB, но это не должно менять дело. Драйвер, который предложил Aurochs, имеет: Product Version 5.1.2600.2180 а родной от SP3: Product Version 5.1.2600.5512 но это не кажется мне существенным, т.к. и с прошлыми SP у меня работало ровно так же. А вот какие-нибудь нарушения протокола со стороны внешнего устройства вполне могут быть причиной нарушений. Единственный минус, который я у usbser.sys знаю, так это неспособность самостоятельно восстанавливать коннект, если внешнее устройство "отвалилось". Например, уснуло или вовремя не проснулось. Или протокол нарушило, не ответив на запрос в установленные сроки. На предельных скоростях я его не гоняла, но лишь потому, что не было повода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mr.smart 0 6 января, 2011 Опубликовано 6 января, 2011 · Жалоба Спасибо за файлик, поставил его... Ничего не изменилось... Блин, теперь даже не знаю куда смотреть. Может быть хоть у Вас будет идея почему данный код работает на одной машине и не работает на другой (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. Может ли проблема быть в этом? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
npopok 0 11 февраля, 2011 Опубликовано 11 февраля, 2011 · Жалоба Добрый день. проблема точно такая-же.Есть приложение работающее по виртуальному ком-порту с использованием драйвера usbser.sys. На 80% машин(Win7,XP) приложение работает четко,но на некоторых из машин соединение устанавливается,но чтения из устройства не происходит.Правильно ли я понимаю,что дело именно в драйвере?Что с этим можно сделать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 51 11 февраля, 2011 Опубликовано 11 февраля, 2011 · Жалоба Добрый день. проблема точно такая-же.Есть приложение работающее по виртуальному ком-порту с использованием драйвера usbser.sys. На 80% машин(Win7,XP) приложение работает четко,но на некоторых из машин соединение устанавливается,но чтения из устройства не происходит.Правильно ли я понимаю,что дело именно в драйвере?Что с этим можно сделать? Чаще всего не драйвер виноват, а плохой контакт или наводки. Вставляю в USB-разъем на фронтальной панели - не работает (а то и не определяется), а вставляю в зад (разъем на материнке) - всё OK. Даже санацию проводила причин такого поведения. Оказалось, что в один кабель завели жилы от USB-порта и от читателя MMC/SDC-карт, да и внутри не пайка, а соединение "на трении". Отюда и глюки. Не любит USB 2.0 хилых соединений. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться