Цитата(al333 @ Apr 21 2006, 09:12)

попробуй добить буфер, думаю CY7C68001 ждет окончания. Или сформируй сигнал "буфер заполнен" в CY7C68001.
Да, я так и делаю, подаю CY7C68001 команду "отправить буфер" (заношу в регистр 0x20 номер FIFO).
Прошу прощения, забыл уточнить. Это безобразие начинается только при запуске скоростной передачи данных. Т.е. когда ендпойнта данных не активизирована (передача данных остановлена), то ендпойнта управления работает нормально. А когда включается передача данных, то канал управления начинает хандрить. Причем, он даже как-то работает, но крайне ненадежно.
К моему большому сожалению я еще не научился писать драйвера под это дело. Поэтому разобраться с примерным драйвером от Cypress пока не выходит (тёмно там все...). Вот я и подумал, может быть мои проблемы проистекают от того, что к одному драйверу (CyUSB.sys) обращаются два потока? На стороне персональника у меня все организовано довольно просто. Есть основная программа, она взаимодействует с пользователем и время от времени командует моим устройством при помощи ендпойнты управления. А прием данных происходит в отдельном треде, который работает параллельно и асинхронно с основной программой.
Так может быть драйвер CyUSB.sys не является реентрантным? Точнее, API, через которое я к драйверу обращаюсь. Возможно, меня выручит создание еще одного экземпляра класса API, с помощью которого я смогу работать с каналом управления отдельно?
P.S. Прошу прощения за сумбурность, замучал меня уже этот проблем :-) Пока выкрутился очень просто: для канала управления применил простой последовательный порт :-) Но это, конечно, не дело...