Цитата(vitalinea @ Mar 11 2011, 15:04)

10 мс -- это много. Теоритический минимум для full-speed 1мс, для high-speed 125 мкс. У меня получилось высылать-получать примерно 7000 пар коротких запросов-ответов (от хоста к USB устройству и назад) на USB 2.0 high-speed. Тоесть получилось достичь почти теоретического максимума скорости запрос-ответ (для 125 мкс это 8000 пар в секунду).
Проблема в том, что USART и MPSSE находятся на разных каналах FTDI. Запрос идёт по USART, а передача данных - по MPSSE.
7-10ms выходит, даже когда я проверяю на программе ,тупо принимающей байт через USART и шлющей его обратно.
Цитата(vitalinea @ Mar 11 2011, 15:04)

По умолчанию, данные из FT2232H чипа не высылаются пока либо не заполнится буффер, либо не истечет латэнси таймер. Чтобы ускорить передачу данных от устройства к хосту:
1) можна выслать MPSSE комманду Send Immediately -- она заставит передать данные из буфера устройства на хост начиная со следующего USB frame независимо от того насколько заполнен буффер.
2) можно уменьшить значение latency (там есть функция SetLatency или что-то типа того). Теперь содержимое буффера будет отправляться от устройства к хосту чаще.
3) так как после запроса ответ может быть выслан только начиная со следующего USB frame, то, если это возможно, вместо отправки большого количества маленьких пар пакетов запрос-ответ, лучше использовать меньшее количество пакетов, но больших по размеру.
latency_timer я выставил вообще в 1, а команду не пробовал.
Также столкнулся с проблемкой: когда посылаешь буфер больше, чем 2xразмер буфера(8000+), он глючит, не врезая на то, что в датащите указан размер вплоть до 65535