dekar 0 11 марта, 2011 Опубликовано 11 марта, 2011 · Жалоба Кто-либо пробовал использовать FT2232H для организации быстрого управляемого канала данных с МК на комп? Пробовал SPI (MPSSE) на одном канале с управлением через UART другого канала - задержки между запросом на передачу данных и передачей были по 10 мс, что сводило скорость при использовании большого буфера (30КБ) к 550кБайт/с. Надо больше раза в 4. Хочу попробовать организовать параллельный интерфейс, да не знаю, как подойти. Есть ли у кого опыт? Хотябы какой из режимов стоит курить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vitalinea 0 11 марта, 2011 Опубликовано 11 марта, 2011 · Жалоба 10 мс -- это много. Теоритический минимум для full-speed 1мс, для high-speed 125 мкс. У меня получилось высылать-получать примерно 7000 пар коротких запросов-ответов (от хоста к USB устройству и назад) на USB 2.0 high-speed. Тоесть получилось достичь почти теоретического максимума скорости запрос-ответ (для 125 мкс это 8000 пар в секунду). По умолчанию, данные из FT2232H чипа не высылаются пока либо не заполнится буффер, либо не истечет латэнси таймер. Чтобы ускорить передачу данных от устройства к хосту: 1) можна выслать MPSSE комманду Send Immediately -- она заставит передать данные из буффера устройства на хост начиная со следующего USB frame независимо от того насколько заполнен буффер. 2) можно уменьшить значение latency (там есть функция SetLatency или что-то типа того). Теперь содержимое буффера будет отправляться от устройства к хосту чаще. 3) так как после запроса ответ может быть выслан только начиная со следующего USB frame, то, если это возможно, вместо отправки большого количества маленьких пар пакетов запрос-ответ, лучше использовать меньшее количество пакетов, но больших по размеру. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dekar 0 11 марта, 2011 Опубликовано 11 марта, 2011 · Жалоба 10 мс -- это много. Теоритический минимум для full-speed 1мс, для high-speed 125 мкс. У меня получилось высылать-получать примерно 7000 пар коротких запросов-ответов (от хоста к USB устройству и назад) на USB 2.0 high-speed. Тоесть получилось достичь почти теоретического максимума скорости запрос-ответ (для 125 мкс это 8000 пар в секунду). Проблема в том, что USART и MPSSE находятся на разных каналах FTDI. Запрос идёт по USART, а передача данных - по MPSSE. 7-10ms выходит, даже когда я проверяю на программе ,тупо принимающей байт через USART и шлющей его обратно. По умолчанию, данные из FT2232H чипа не высылаются пока либо не заполнится буффер, либо не истечет латэнси таймер. Чтобы ускорить передачу данных от устройства к хосту: 1) можна выслать MPSSE комманду Send Immediately -- она заставит передать данные из буфера устройства на хост начиная со следующего USB frame независимо от того насколько заполнен буффер. 2) можно уменьшить значение latency (там есть функция SetLatency или что-то типа того). Теперь содержимое буффера будет отправляться от устройства к хосту чаще. 3) так как после запроса ответ может быть выслан только начиная со следующего USB frame, то, если это возможно, вместо отправки большого количества маленьких пар пакетов запрос-ответ, лучше использовать меньшее количество пакетов, но больших по размеру. latency_timer я выставил вообще в 1, а команду не пробовал. Также столкнулся с проблемкой: когда посылаешь буфер больше, чем 2xразмер буфера(8000+), он глючит, не врезая на то, что в датащите указан размер вплоть до 65535 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivanoffer 0 16 августа, 2011 Опубликовано 16 августа, 2011 · Жалоба Заложил FT2232H для передачи небольших объемов данных из ПЛИС в компьютер без особых требований к скорости. Особых глюков не заметил, за исключением появления "синего экрана" при выдергивании кабеля во время обращения программы к устройству, видимо программисты с драйвером перестарались. Из спортивного интереса решил измерить скорость передачи из устройства. Был приятно удивлен полученным результатом - от 40 до 45 Мбайт/с в зависимости от компьютера, хотя по описанию указано до 25 Мбайт/с. Небольшая поправка - драйвер использовал последний. Может кто-нибудь тоже замерял скорость или это так "звезды сошлись" у меня. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dekar 0 17 августа, 2011 Опубликовано 17 августа, 2011 · Жалоба Какой режим передачи? Какой размер данных? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivanoffer 0 17 августа, 2011 Опубликовано 17 августа, 2011 · Жалоба Режим передачи - синхронное FIFO. Тестовые блоки данных - 10МБайт, 100МГбайт, 1Гбайт и 10ГБайт. Скорость варьировалась, как указал, от 40 до 45 Мбайт/с. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться