prottoss
Участник
Offline
|
|
« : 22-05-2011 05:48 » |
|
Привет всем.
Есть устройство выполненное на AT91SAM7S - подробнее на <реклама почикана>. Для РС обозначено как СОМ-порт. Из драйверов только INF-файл, указывающий на штатный для Windows драйвер usbser.sys
В микроконтроллере инициализирован штатный внутренний загрузчик (SAM-BA). Этот загрузчик прошит на заводе (масочное ПЗУ) и я пытаюсь через свою программу с ним связаться и залить в МК свою прошивку. Проблема в том что, при работе с SAM-BA, на некоторых материнских платах, с не-INTEL чипсетами обмен между ПО на РС и устройством может прерываться. Т.е. первый запрос в устройство через WriteFile проходит (2 байта), далее чтение через ReadFile (2 байта) тоже отлично. Далее новый запрос. Но функция ReadFile вылетает по таймауту.
Утилита работает с устройством не как с СОМ-портом, а как с USB устройством. Т.е через "SetupDiEnumDeviceInterfaces" находится устройство с нужным VID/PID затем извлекается хэндл и, далее, уже стандартно, открывается через CreateFile. Далее все как обычно - ReadFile/WriteFile
Моя прошивка тоже работает через usbser.sys. Т.е. прошитое устройство видится программами как последовательный порт. И моя прошивка нормально функционирует на всех материнских платах с любыми чипсетами и процессорами.
В приложении функции ввода-вывода и реализованный протокол загрузчика SAM-BA
|
|
« Последнее редактирование: 22-05-2011 09:22 от Джон »
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #1 : 22-05-2011 06:02 » |
|
prottoss, интересные сведения.
Наверно эту тему нужно подвинуть куда-то поближе к железу и драйверам. И переименовать во что-нибудь вроде "Вот какие глюки бывают с устройствами на AT91SAM7S".
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
prottoss
Участник
Offline
|
|
« Ответ #2 : 22-05-2011 06:43 » |
|
Я думаю, все таки, это можно как-то решить методами Win32 API. По это и создал тему здесь.
Добавлено через 6 часов, 14 минут и 19 секунд: Есть мысль, что как-то нужно передернуть драйвер после W/R обмена. как-то это можно сделать средствами WinAPI?
|
|
« Последнее редактирование: 22-05-2011 12:57 от prottoss »
|
Записан
|
|
|
|
RXL
|
|
« Ответ #3 : 22-05-2011 13:33 » |
|
Может надо отключить устройство от драйвера usbser на время заливки прошивки?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
prottoss
Участник
Offline
|
|
« Ответ #4 : 22-05-2011 13:36 » |
|
Может надо отключить устройство от драйвера usbser на время заливки прошивки?
Не понял Вас Как это? Передача данных от программы в устройство и обратно идет через драйвер устройства. Прошивка передается в устройство блоками.
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #5 : 22-05-2011 13:43 » |
|
Понятия не имею, как. Но если устройство контролируется этим драйвером, то подключаться параллельно ему глупо.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
prottoss
Участник
Offline
|
|
« Ответ #6 : 22-05-2011 14:02 » |
|
Понятия не имею, как. Но если устройство контролируется этим драйвером, то подключаться параллельно ему глупо. Оно и видно, что понятия не имеете Извините. Я не могу параллельно драйверу подключится к устройству. Это аксиома операционных систем. Я работаю с устройством только, и только через драйвер.
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #7 : 22-05-2011 15:10 » |
|
Умничаем? Тебе помощь или поспорить? Выгрузи драйвер и попробуй.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
prottoss
Участник
Offline
|
|
« Ответ #8 : 22-05-2011 15:16 » |
|
Умничаем? Тебе помощь или поспорить? Выгрузи драйвер и попробуй. Я и не спорю, и тем более не умничаю. Я не пойму как это? - "Выгрузи драйвер"
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #9 : 22-05-2011 15:23 » |
|
Я тоже. Потому и написал, что не знаю как. Но есть факт, что драйвера могут динамически загружаться и выгружаться. Лучше об этом спросить в разделе драйверов. Перенести туда тему? Суть в том, что над драйвером USB, обслуживающим хаб, стоит драйвер последовательного порта. Последний и нужно либо выгрузить, либо как-то заставить отключиться от данного устройства. Полагаю, что он конфликтует с прямым доступом через пользовательское API. К примеру, поиск дает: https://forum.shelek.ru/index.php/topic,15073.msg176967.htmlhttp://exelab.ru/f/index.php?action=vthread&forum=5&topic=9160http://forum.sources.ru/index.php?showtopic=246564&hl=Есть еще такая идея: зайди в device manager и удали там COM-порт данного устройства.
|
|
« Последнее редактирование: 22-05-2011 15:27 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
prottoss
Участник
Offline
|
|
« Ответ #10 : 22-05-2011 15:26 » |
|
Но ведь, когда я заливаю в МК свою прошивку, она тоже работает через этот же usbser.sys и проблем таких совершенно не возникает...
Если считаете, что тема больше относится к проблеме драйверов, то перенесите тему.
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #11 : 22-05-2011 15:28 » |
|
prottoss, в первом посте ты сказал, что утилита работает с USB-устройством, а не с последовательным портом...
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
prottoss
Участник
Offline
|
|
« Ответ #12 : 22-05-2011 15:42 » |
|
Устройство общается с РС через USB-порт но в системе видится как СОМ-порт.
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #13 : 22-05-2011 15:53 » |
|
А через CreateFile что ты открываешь? Выше писал, что USB-устройство.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
prottoss
Участник
Offline
|
|
« Ответ #14 : 22-05-2011 16:02 » |
|
Так и есть - открываю как USB устройтсво. Потому что я знаю, что реально это НЕ СОМ-порт, поэтому ищу устройство через VID и PID. Нахожу его путь, прибавляю к строке \\PIPE00 и открываю через CreateFile.
Так же пробовал открывать и как СОМ-порт, т.е типа CreateFile("\\\\.\\COM4", Ничего абсолютно не меняется.
На INTEL работает, на не-INTEL нет...
Добавлено через 1 минуту и 42 секунды: Главное что интересно - один обмен данными то проходит! Т.е. я отсылаю первые два байта, и получаю от устройства ответ в виде двух байт.
Добавлено через 8 минут и 53 секунды: Провел эксперимент. Заслал в устройство 256 байт, которые оно не понимает - символы '?' За тем по протоколу команду инициализации - 2 байта - ответ есть За тем по протоколу команду дать версию загрузчика - ответа нет. Можно сделать вывод что операция посылки данных в устройство работает нормально. А вот с чтением данных какие то проблемы...
|
|
« Последнее редактирование: 22-05-2011 16:12 от prottoss »
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #15 : 22-05-2011 17:28 » |
|
2 байта... а порядок следования младших и старших байтов во всех случаях одинаков?
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
prottoss
Участник
Offline
|
|
« Ответ #16 : 22-05-2011 17:47 » |
|
Да.
|
|
|
Записан
|
|
|
|
Ochkarik
|
|
« Ответ #17 : 22-05-2011 18:33 » |
|
понаписали))))) ну вы блин даете! попробую обобщить. 1. имеется AT91SAM7S с бутовым загрузчиком. 2. эмулятора нет. 3. необходимо залить во flash свою прошивку. пардон программу. теперь вопросы: 1. существует утилита SAM-BA которая в принципе все это должна делать - она вообще работает? на интеле, на не интеле? чем она не устраивает? 2. вы хотите повторить ее функционал в своем коде? 3. что это за куски вашей программы я почти не понял) 4. вылетает по таймауту - а сам таймаут задан - сколько? что за CFG_IO_TIMEOUT в коде встречается? где оно определено? 6. вы какой таймаут в настройках com-порта выставляли? хм. вижу... хотя неплохо бы остальные поля структуры определить. PS протокол программирования видимо описан? PPS больше секунды ставили? (на всякий случай) PPЗS и наконец, на родном сайте http://www.at91.com/ не спрашивали?
|
|
« Последнее редактирование: 22-05-2011 18:37 от Ochkarik »
|
Записан
|
RTFM уже хоть раз наконец! :[ ну или хотя бы STFW...
|
|
|
prottoss
Участник
Offline
|
|
« Ответ #18 : 22-05-2011 18:53 » |
|
понаписали))))) Вы почти все правильно поняли SAM-BA лично меня устраивает всем. Утилита же написана для того, чтобы не парится с SAM-BA. Утилита содержит в теле прошивку и сама ее и заливает в контроллер. CFG_IO_TIMEOUT описан в другом хедере - равен 10000 миллисекундам. Исходники ввода-вывода выложены мною в начале темы. Таймауты с помощью SetCommTimeouts я не устанавливаю. Хотя, пробовал и ими играться - безтолку. Первый обмен данными проходит. Далее все - затык. Самое хреновое, что я не могу проверить, получает ли их контроллер Но все же склоняюсь к мысли, что проблема где то между драйвером и железом материнской платы. Повторюсь. На INTEL все летает как и задумано. При чем тестировалось на разных ОС, как 32, так и 64 бит. Еще по поводу SAM-BA - у нее обмен данными тоже обрывается. И точно так же - после первой транзакции.
|
|
|
Записан
|
|
|
|
Ochkarik
|
|
« Ответ #19 : 23-05-2011 09:11 » |
|
так может дело не в бобине?) а в том что таймауты в бутовой прошивке SAM-BA некорректно выставлены?\
|
|
|
Записан
|
RTFM уже хоть раз наконец! :[ ну или хотя бы STFW...
|
|
|
prottoss
Участник
Offline
|
|
« Ответ #20 : 23-05-2011 09:16 » |
|
так может дело не в бобине?) а в том что таймауты в бутовой прошивке SAM-BA некорректно выставлены?\
В прошивке ни каких таймаутов нет. Программа ждет команду, и, если команда корректная, выполняет и выдает ответ в виде двух символов \r\n. И почему на всех INTEL работает??? Добавлено через 51 секунду:Имеется ввиду чипсетах. Потому как связка ATOM + nForce тоже отказывается работать
|
|
« Последнее редактирование: 23-05-2011 09:16 от prottoss »
|
Записан
|
|
|
|
Ochkarik
|
|
« Ответ #21 : 23-05-2011 09:21 » |
|
я бы вот что попробовал.... сильноне поможет, но может прояснить насчет таймаутов. установить на две машины с Intel и НЕ-intel что нибудь на вроде HHD USB monitor. на сайте раньше была полнофункциональная демка на 30 дней. и помоему она выводила тайминг всех запросов/ответов. можно попробовать сравнить - нет ли где больших пауз... но это если других идей нет.
второй вариант - я бы все таки написал на форум службы поддержки. потому что если родная утилита не работает - то это баг.
|
|
|
Записан
|
RTFM уже хоть раз наконец! :[ ну или хотя бы STFW...
|
|
|
prottoss
Участник
Offline
|
|
« Ответ #22 : 23-05-2011 09:25 » |
|
я бы вот что попробовал.... сильноне поможет, но может прояснить насчет таймаутов. установить на две машины с Intel и НЕ-intel что нибудь на вроде HHD USB monitor. на сайте раньше была полнофункциональная демка на 30 дней. и помоему она выводила тайминг всех запросов/ответов. можно попробовать сравнить - нет ли где больших пауз... но это если других идей нет. Я пользуюсь USB сниффером SnoopyPro второй вариант - я бы все таки написал на форум службы поддержки. потому что если родная утилита не работает - то это баг.
Не думаю, что это проблема ATMEL. Написал в техподдержку мелкософтам.
|
|
|
Записан
|
|
|
|
Ochkarik
|
|
« Ответ #23 : 23-05-2011 15:20 » |
|
майкрософту... это вряд ли)))))) откуда вы протокол SAM-BA взяли? не вижу его на офф-сайте. посмотрел список 2.7 bugfix sam-ba на сайте: "- Fixed Usb/com timeout problem on some 8-Bit Nand flash." "- Fixed DataFlash init problem on AT91SAM7A3." и т.д. наводит на размышления) не думаю что тут драйвер CDC виноват. ему уже более десяти лет фактически.. "по протоколу команду инициализации - 2 байта - ответ есть" и "по протоколу команду дать версию загрузчика - ответа нет." попробуйте паузу вставить между этими командами?... или какую нибудь другую команду... и попробуйте поспрашивать на електрониксе - все таки это более профильный форум в данном случае.
|
|
|
Записан
|
RTFM уже хоть раз наконец! :[ ну или хотя бы STFW...
|
|
|
prottoss
Участник
Offline
|
|
« Ответ #24 : 23-05-2011 15:51 » |
|
майкрософту... это вряд ли))))))
Посмотрим откуда вы протокол SAM-BA взяли? не вижу его на офф-сайте.
Протокол на SAM-BA описан в любом даташите на МК серии ATMEL AT91. Он там, правда, не совсем полный. Но на это есть сниффер, с помощью которого нужное можно подглядеть посмотрел список 2.7 bugfix sam-ba на сайте: "- Fixed Usb/com timeout problem on some 8-Bit Nand flash." "- Fixed DataFlash init problem on AT91SAM7A3." и т.д. наводит на размышления) не думаю что тут драйвер CDC виноват. ему уже более десяти лет фактически.. С драйвером usbser.sys общаюсь достаточно продолжительное время - примерно со времен появления Windows 2000 Одни баги исчезают, другие появляются... В принципе как и во всей ОС Смотрел дескриптор загрузчика SAM-BA AT91 - проблем не обнаружил - нормальный такой дескриптор USB CDC-устройства. "по протоколу команду инициализации - 2 байта - ответ есть" и "по протоколу команду дать версию загрузчика - ответа нет." попробуйте паузу вставить между этими командами?... или какую нибудь другую команду...
Пробовал уже всяко разно. Я, обычно, отправляюсь задавать вопросы на форумах, когда уже все патроны кончились. и попробуйте поспрашивать на електрониксе - все таки это более профильный форум в данном случае. Там я давно обитаю. И тему там прежде и создал, но чего то внятного, увы, не дождался. http://electronix.ru/forum/index.php?showtopic=90229
|
|
|
Записан
|
|
|
|
Ochkarik
|
|
« Ответ #25 : 23-05-2011 16:14 » |
|
не знаю не знаю) usbser в XPsp3 - 2008го года выпуска а последние багфиксы утилиты датированы 2010тым)) тут уж, нечего сказать) так что, сказать честно, чтоб не разводить флуд на десять страниц: к сожалению не знаю, чем помочь.... и даже не знаю, что в данном случае от драйвера надо требовать. IRB то - идентичные, по монитору? время отправки/приема IRB пакетов похожи, в рабочей/нерабочей конфигурации? времянку прохождения пакетов вроде можно по IRBURB посмотреть. в IRB URB пакетах вроде должны аппаратные счетчики времени лежать.... в фреймах/микрофлеймах.
других идей нет)
|
|
« Последнее редактирование: 24-05-2011 07:46 от Ochkarik »
|
Записан
|
RTFM уже хоть раз наконец! :[ ну или хотя бы STFW...
|
|
|
prottoss
Участник
Offline
|
|
« Ответ #26 : 23-05-2011 16:19 » |
|
С драйверами я, к сожалению, не дружу... Но вод ведь еще какой парадокс. МОЕ устройство, с уже залитой прошивкой, функционирует нормально. Конфигурационные дескрипторы загрузчика SAM-BA и моей прошивки ПОЧТИ одинаковы...
В общем, разобрал взятую у знакомого проблемную систему. Пока откладываю проблему в долгий ящик. Как будут какие то новости - обязательно отпишусь.
|
|
|
Записан
|
|
|
|
resource
Молодой специалист
Offline
Пол:
|
|
« Ответ #27 : 23-05-2011 21:55 » |
|
Ochkarik, IRB этож вроде на 1394, а на усб URB (ну я так думал).
prottoss, драйверу абсолютно по барабану интелловский чипсет или нет. А уж юзермодному софту тем более. Касательно таймаутов - что если попробовать синхронный ввод/вывод?
ЗЫ макрос VALIDATE повеселил - мощный (посвящается всем кто смотрел этот сорец).
|
|
|
Записан
|
|
|
|
Ochkarik
|
|
« Ответ #28 : 24-05-2011 07:46 » |
|
resource, ну да)))) зарапортовался) URB конечно) VALIDATE - меня тоже порадовал)))))))
|
|
|
Записан
|
RTFM уже хоть раз наконец! :[ ну или хотя бы STFW...
|
|
|
prottoss
Участник
Offline
|
|
« Ответ #29 : 24-05-2011 11:19 » |
|
Чем это вам VALIDATE не угодил?
|
|
|
Записан
|
|
|
|
oleshii
Участник
Offline
|
|
« Ответ #30 : 08-06-2012 12:33 » |
|
Если тема еще актуальная, а бы предположил, что "забивается" interrupt pipe устройства (ну, и пайпы данных вместе с нми). MS ВООБЩЕ не документирует работу с этими примитивами, оставляя ее на откуп USBD kernel mode библиотечному драйверу, используемому для реализации взаимодействия цепочки хост-контроллер => хаб => USBD => клиентский драйвер. Лечится это "мягким передргиванием" устройства из UI. Для этого служат функции семейства SetupDi... Если нужна конкретика, отпишитесь.
|
|
|
Записан
|
|
|
|
prottoss
Участник
Offline
|
|
« Ответ #31 : 18-07-2012 03:58 » |
|
Конкретика нужна. Дело в том, что в самом устройстве я ничего изменить не смогу, т.к. это встроенный в микроконтроллер USB бутлоадер. Если у Вас есть методы "передергивания" устройства, очень хотелось бы увидеть.
|
|
|
Записан
|
|
|
|
oleshii
Участник
Offline
|
|
« Ответ #32 : 06-08-2012 06:09 » |
|
http://www.rsdn.ru/?forum/asm/1981779.flat.aspxЭто рекомендуется к прочтению. На сей концепции основан сам рестарт устройств. Но напрямую пользвать это не очень здорово, хотя это самый быстрый путь. В чем "нездоровость" ? 1) В этих вызовах проверяется привилегиии пользователя SE_TCB_NAME, которая под Win 7 имеет трудности с установкой 2) Этой привилегий обладают NT сервисы, разработка и понятие концепции которых тоже может вызывать трудности По поводу SetupDi... рекомендую скачать DDK (WDK), собрать пример USBView, там основная часть этого семейства функций используется. Описание их - в MSDN. После того, как все это проделаете, отпишитесь - расскажу, как с помощью этих функций сделать рестарт.
|
|
|
Записан
|
|
|
|
prottoss
Участник
Offline
|
|
« Ответ #33 : 06-08-2012 12:10 » |
|
Вообще пока для меня не совсем понятно, как я буду организовывать работу программы... Т.е. после таймаута выполнять какое то передергивание??? Далее пробовать снова общаться с устройством... Добавлено через 5 часов, 9 минут и 26 секунд:Вроде бы что то нарыл по теме на рекомендованном ранее at91.com http://www.at91.com/forum/viewtopic.php/p,35542/#p35542
|
|
« Последнее редактирование: 06-08-2012 17:19 от prottoss »
|
Записан
|
|
|
|
oleshii
Участник
Offline
|
|
« Ответ #34 : 07-08-2012 07:57 » |
|
Т.е. после таймаута выполнять какое то передергивание??? Далее пробовать снова общаться с устройством...
Да, примерно так. Хотя это не есть гуд. Найдите какие либо признаки того, что устройство "залипло", и оттолкнитесь от них. В свое время я имел похожую проблему с Gemalto joined smart card reader. Там все "лечилось" "передергиванием" device. Хотя потом удалось найти более дешевый способ. Вроде бы что то нарыл по теме на рекомендованном ранее at91.com
Может, это и имеет отношение к вопросу. Трудно сказать. Вообще то (ИМХО !) данные протоколы являются достаточно старыми. Сейчас во восю мазуту используется EHCI (более современный м совместимый с ними) и xHCI (USB 3.0 UAS - USB as SCSI)
|
|
« Последнее редактирование: 07-08-2012 08:01 от oleshii »
|
Записан
|
|
|
|
prottoss
Участник
Offline
|
|
« Ответ #35 : 07-08-2012 12:46 » |
|
Может, это и имеет отношение к вопросу... Трудно сказать. Я вот почему подумал... 1. У чела по ссылке выше абсолютно такая же проблема 2. Вот еще одна тема, где абсолютно аналогичная ситуация - работает на INTEL (EHCI), но не работает на других чипсетах (OHCI), но в программе на МК. Соответственно топикстартер ее решил, так как код поправить может. http://electronix.ru/forum/index.php?showtopic=94496При чем проблема в том, что конечная точка INTERRUPT выдавалась за ISOHRONOUS в классе CDC - и это в примерах от ATMEL. Соответственно и в заводском буте они могли так же накосячить. Но, нет, чтобы исправить проблему, даже в самых последних ревизиях МК та же проблема. Тем не менее, если использовать вместо usbser.sys, например, bulkusb.sys из WinDDK то проблема исчезает. Но, я принципиально хочу использовать usbser.sys
|
|
« Последнее редактирование: 07-08-2012 12:51 от prottoss »
|
Записан
|
|
|
|
oleshii
Участник
Offline
|
|
« Ответ #36 : 08-08-2012 04:43 » |
|
Тогда прочтите дескрипторы устройства. Или запустите USBVIEW (из последнего WDK), он все должен показть- где какие конечные точки, и какие типы они имеют.
|
|
|
Записан
|
|
|
|
prottoss
Участник
Offline
|
|
« Ответ #37 : 08-08-2012 05:02 » |
|
К сожалению сейчас у меня нет под рукой платформы AMD. Проверял дома и на работе на Intel - показывает что контрольная точка типа INTERRUPT.
|
|
|
Записан
|
|
|
|
oleshii
Участник
Offline
|
|
« Ответ #38 : 09-08-2012 10:05 » |
|
Может быть, дело не в платформе, а в конкретной модели (или их семействе) матери ?
|
|
|
Записан
|
|
|
|
prottoss
Участник
Offline
|
|
« Ответ #39 : 09-08-2012 10:29 » |
|
Нет. Я почти уверен, что дело в производителе чипсета. Потому что несколько человек, кто пытался прошить плату с РС с неинтеловским чипсетом, написали мне письмо об ошибке. И я сам пробовал на случайном РС. Эффект один и тот же. Постараюсь осенью найти проблемную платформу и изучить проблему плотнее.
|
|
|
Записан
|
|
|
|
oleshii
Участник
Offline
|
|
« Ответ #40 : 09-08-2012 10:34 » |
|
Что ж это за производитель такой загадочный ? Запустите UsbView (если нет у Вас, напишите разрядность OS на рабочем компе, саму OS, и Ваш e-mail - соберу-пришлю, мне не жалко. А рисунки получившиеся сделайте screenshots, и выложите сюда - посмотрим.
|
|
|
Записан
|
|
|
|
prottoss
Участник
Offline
|
|
« Ответ #41 : 09-08-2012 10:38 » |
|
Производитель чипсета - имелось ввиду INTEL или не-INTEL , т.е nVidia или AMD. USBView у меня есть. Скриншоты вышлю.
|
|
|
Записан
|
|
|
|
oleshii
Участник
Offline
|
|
« Ответ #42 : 09-08-2012 11:33 » |
|
Он нужен последний (там есть по отдельному запросу вывод дескрипторов).
Добавлено через 12 минут и 14 секунд: Кстати, производитель USB контроллера НЕ ВСЕГДА совпадает с производителем чипсета motherboard. Вот почему я и спросил...
|
|
« Последнее редактирование: 09-08-2012 11:45 от oleshii »
|
Записан
|
|
|
|
prottoss
Участник
Offline
|
|
« Ответ #43 : 09-08-2012 12:34 » |
|
Да. Согласен. Тем не менее закономерность именно по чипсетам. дело то не в железе контроллера передового края, а дело скорее всего в драйвере самого нижнего уровня, который стоит ниже usbser.sys
Добавлено через 42 секунды: Для разных чипсетов он однозначно разный
|
|
« Последнее редактирование: 09-08-2012 12:35 от prottoss »
|
Записан
|
|
|
|
oleshii
Участник
Offline
|
|
« Ответ #44 : 10-08-2012 04:37 » |
|
Тогда Вы говорите о драйвере хаба. Он на всей линейке OS не изменяется. А вот дескрипторы устройства почитать = это тема !
|
|
|
Записан
|
|
|
|
|
prottoss
Участник
Offline
|
|
« Ответ #46 : 19-08-2012 04:32 » |
|
Блин!!! На этой плате все работает!
Добавлено через 14 минут и 17 секунд: Хотя я поторопился... Запрограммировать плату утилита таки не может. На передаче произвольного блока вылетает по Write Timeout. Вот как показывает устройство утилита USBView:
Device Descriptor: bcdUSB: 0x0110 bDeviceClass: 0x02 bDeviceSubClass: 0x00 bDeviceProtocol: 0x00 bMaxPacketSize0: 0x08 (8 ) idVendor: 0x03EB (Atmel Corporation) idProduct: 0x6124 bcdDevice: 0x0110 iManufacturer: 0x00 iProduct: 0x00 iSerialNumber: 0x00 bNumConfigurations: 0x01
ConnectionStatus: DeviceConnected Current Config Value: 0x01 Device Bus Speed: Full Device Address: 0x01 Open Pipes: 3
Endpoint Descriptor: bEndpointAddress: 0x83 Transfer Type: Interrupt wMaxPacketSize: 0x0008 (8 ) bInterval: 0xFF
Endpoint Descriptor: bEndpointAddress: 0x01 Transfer Type: Bulk wMaxPacketSize: 0x0040 (64) bInterval: 0x00
Endpoint Descriptor: bEndpointAddress: 0x82 Transfer Type: Bulk wMaxPacketSize: 0x0040 (64) bInterval: 0x00
Configuration Descriptor: wTotalLength: 0x0043 bNumInterfaces: 0x02 bConfigurationValue: 0x01 iConfiguration: 0x00 bmAttributes: 0xC0 (Bus Powered Self Powered ) MaxPower: 0x00 (0 Ma)
Interface Descriptor: bInterfaceNumber: 0x00 bAlternateSetting: 0x00 bNumEndpoints: 0x01 bInterfaceClass: 0x02 bInterfaceSubClass: 0x02 bInterfaceProtocol: 0x00 iInterface: 0x00
Unknown Descriptor: bDescriptorType: 0x24 bLength: 0x05 05 24 00 10 01
Unknown Descriptor: bDescriptorType: 0x24 bLength: 0x04 04 24 02 00
Unknown Descriptor: bDescriptorType: 0x24 bLength: 0x05 05 24 06 00 01
Unknown Descriptor: bDescriptorType: 0x24 bLength: 0x05 05 24 01 00 01
Endpoint Descriptor: bEndpointAddress: 0x83 Transfer Type: Interrupt wMaxPacketSize: 0x0008 (8 ) bInterval: 0xFF
Interface Descriptor: bInterfaceNumber: 0x01 bAlternateSetting: 0x00 bNumEndpoints: 0x02 bInterfaceClass: 0x0A bInterfaceSubClass: 0x00 bInterfaceProtocol: 0x00 iInterface: 0x00
Endpoint Descriptor: bEndpointAddress: 0x01 Transfer Type: Bulk wMaxPacketSize: 0x0040 (64) bInterval: 0x00
Endpoint Descriptor: bEndpointAddress: 0x82 Transfer Type: Bulk wMaxPacketSize: 0x0040 (64) bInterval: 0x00
|
|
« Последнее редактирование: 19-08-2012 04:47 от prottoss »
|
Записан
|
|
|
|
|