Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема с композитным USB устройством
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
korbian
Коллеги. Есть некий микроконтроллер (Cortex-M3), на котором реализовано композитное USB устройство (2 интерфейса). Это устройство замечательно работает в Windows 7, но почему-то не всегда функционирует в Windows XP. В результате тестирования удалось выяснить, что ИНОГДА происходит пересечение данных, циркулирующих в разных интерфейсах. Причем, судя по всему, данные покидают устройство в правильном виде (недостоверно, по крайней мере USB контроллер микроконтроллера принимает правильные данные). Подскажите, пути решения проблемы.

P.s. по отдельности интерфейсы работают корректно, проблема возникает только при их объединение в композитном устройстве в Windows XP.
Serg_Sm
Цитата(korbian @ Apr 2 2013, 11:12) *
Коллеги. Есть некий микроконтроллер (Cortex-M3), на котором реализовано композитное USB устройство (2 интерфейса). Это устройство замечательно работает в Windows 7, но почему-то не всегда функционирует в Windows XP. В результате тестирования удалось выяснить, что ИНОГДА происходит пересечение данных, циркулирующих в разных интерфейсах. Причем, судя по всему, данные покидают устройство в правильном виде (недостоверно, по крайней мере USB контроллер микроконтроллера принимает правильные данные). Подскажите, пути решения проблемы.

P.s. по отдельности интерфейсы работают корректно, проблема возникает только при их объединение в композитном устройстве в Windows XP.


Что значит "пересечение данных"? Есть подозрение, что ошибка в дескрипторах, просто 7-ка её игнорирует, а XP нет.
Самое простое использовать аппаратный USB-анализатор. На крайний случай использовать софтварные анализаторы.
Выложите дескрипторы устройства в тему.
korbian
Цитата(Serg_Sm @ Apr 9 2013, 09:45) *
Что значит "пересечение данных"? Есть подозрение, что ошибка в дескрипторах, просто 7-ка её игнорирует, а XP нет.
Самое простое использовать аппаратный USB-анализатор. На крайний случай использовать софтварные анализаторы.
Выложите дескрипторы устройства в тему.


"пересечение данных" означает, что при одновременной записи из разных интерфейсов (Bulk IN передача) часть данных (как правило 8 байт) передаваемых из одного интерфейса попадает в другой интерфейс. такое наблюдение было сделано в USBlyzer. подчеркну, что проблема возникает не всегда, а только в момент одновременного Bulk IN обмена в обоих интерфейсах. Прикладываю дескрипторы.
Serg_Sm
Цитата(korbian @ Apr 9 2013, 13:49) *
"пересечение данных" означает, что при одновременной записи из разных интерфейсов (Bulk IN передача) часть данных (как правило 8 байт) передаваемых из одного интерфейса попадает в другой интерфейс. такое наблюдение было сделано в USBlyzer. подчеркну, что проблема возникает не всегда, а только в момент одновременного Bulk IN обмена в обоих интерфейсах. Прикладываю дескрипторы.

Часть чужих данных может быть любого размера вплоть до 512 байт? Под чистой XP (безо всяких USBlyzer и т.п.) ошибки проявляются?

PS: Советую приобрести аппаратный анализатор - очень полезная штука. Про один такой я на форум отчёт кидал - поищи в моих старых сообщениях. На крайний случай в аренду у кого-нибудь возьми - определишь на чьей стороне проблема.
korbian
Цитата(Serg_Sm @ Apr 9 2013, 17:00) *
Часть чужих данных может быть любого размера вплоть до 512 байт? Под чистой XP (безо всяких USBlyzer и т.п.) ошибки проявляются?

PS: Советую приобрести аппаратный анализатор - очень полезная штука. Про один такой я на форум отчёт кидал - поищи в моих старых сообщениях. На крайний случай в аренду у кого-нибудь возьми - определишь на чьей стороне проблема.


видел изменения только нескольких байт. под чистой XP ошибки проявляются.
уж больно дорогие эти анализаторы, но все равно спасибо.
Serg_Sm
Цитата(korbian @ Apr 9 2013, 16:38) *
видел изменения только нескольких байт. под чистой XP ошибки проявляются.
уж больно дорогие эти анализаторы, но все равно спасибо.

Откуда известно, что эти несколько байт именно с другого эндпойнта, а не просто мусор?

PS: Такой как у меня анализатор англичане сейчас продают за 850 фунтов - его возможностей в большинстве случаев достаточно.
korbian
Цитата(Serg_Sm @ Apr 10 2013, 10:44) *
Откуда известно, что эти несколько байт именно с другого эндпойнта, а не просто мусор?

PS: Такой как у меня анализатор англичане сейчас продают за 850 фунтов - его возможностей в большинстве случаев достаточно.


во втором интерфейсе (не mass storage) увидел CSW magicword. в снифере обе BULK IN передачи рядом, видно, что первые несколько байт совпадают. ок, присмотрюсь к анализаторам внимательней.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.