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

 
 
> не работает USB-Serial в Windows 7 32bit
itester
сообщение Dec 21 2010, 08:08
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 21-12-10
Пользователь №: 61 770



пытаюсь сделать USB устройства класса CDC. Примеров на эту тему вроде бы много.
Пытаюсь повторить один из примеров и вот какая штука.
В Windows XP SP2 работает хорошо.

В Windows 7 32bit не устанавливаются драйвера - ошибка 10. Перепробовал на 3х компьютерах.

Смотрю USB трекером, какие пакеты ходят в шине.
Ошибок нет - все транзакции выполняются без ошибок.
GetDescriptor(addr0)
SetAddress(addr1)
GetDescriptor(addr1)
GetConfiguration(67bytes)
...
GetDescriptor(addr1)
GetConfiguration(67bytes)
SetConfiguration()

Все - дальше не работает. Драйвер не устанавливается, в DeviceManager желтая иконка.

Единственная странность которую заметил - при первом чтении configuration хост запрашивает 255 байт и устройство отдает 67 - сколько есть. При втором чтении configuration хост почему-то спрашивает 265 байт - это 0х109! Конечно устройство и в этом случае отдает все 67 байт дескриптора, которые есть. Странность в том, что всякие другие устройства какие я пробою подключать у них хост спрашивает только 9 байт при втором чтении конфиг дескриптора и никогда не спрашивает 0х109.

Вот те дескрипторы, что у меня есть:

//////////////////////////////////////////////////////////////////////////
UCHAR usb_device_descriptor_a[]=
{
0x12,0x01,0x00,0x02,0x02,0x00,0x00,0x08,
0x10,0xff,0x10,0xff,0x01,0x00,0x00,0x00,
0x00,0x01
};

UCHAR usb_configuration_descriptor_a[]=
{
0x09,0x02,0x43,0x00,0x02,0x01,0x00,0x80,
0x32,0x09,0x04,0x00,0x00,0x01,0x02,0x02,
0x01,0x00,0x05,0x24,0x00,0x10,0x01,0x04,
0x24,0x02,0x02,0x05,0x24,0x06,0x00,0x01,
0x05,0x24,0x01,0x00,0x01,0x07,0x05,0x82,
0x03,0x08,0x00,0x02,0x09,0x04,0x01,0x00,
0x02,0x0a,0x00,0x00,0x00,0x07,0x05,0x03,
0x02,0x08,0x00,0x00,0x07,0x05,0x83,0x02,
0x08,0x00,0x00
};
//////////////////////////////////////////////////////////////////////////

Я уже и всякие другие пробовал из других примеров - результат тот же

Может кто сталкивался почему виндовс 7 хочет прочитать 265 байт?




Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
itester
сообщение Dec 21 2010, 15:42
Сообщение #2





Группа: Новичок
Сообщений: 4
Регистрация: 21-12-10
Пользователь №: 61 770



хм..
вроде бы заработало, но как-то все очень странно.
Что бы начало работать в Windows 7 32бит пришлось ставить драйвер lowcdc.sys вот отсюда http://www.recursion.jp/avrcdc/driver.html
Как такое может быть? А как же стандартный драйвер виндовс и стандартный класс CDC?

Там же на сайте есть такое разъяснение:

Windows system has a CDC protocol driver (usbser.sys) to generate virtual COM port. However, it requires a "Setting Information" file at the first connection. At this time, the patch driver (lowcdc.sys) is installed together.
The low-speed bulk transfer mostly works on Windows XP, but it sometimes stalls the transfer on some host controller or hub. Furthermore, this transfer is not allowed on Windows Vista. This patch disables the interrupt pipe that is used for status report, and switches the bulk and the interrupt pipe configuration at the initial configuration process.

Здесь он пишет что lowspeed bulk не работает в Vista (а может и в Windows7)?
Возможно это зависит от хост контроллера ПК или его драйвера?

Так все таки у кого нибудь работало оно в Windows 7 32bit без дополнительных шаманств????
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 13:30
Рейтинг@Mail.ru


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