реклама на сайте
подробности

 
 
> FT2232H параллельный ввод.
Goron Dekar
сообщение Mar 11 2011, 06:39
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 8-03-11
Пользователь №: 63 472



Кто-либо пробовал использовать FT2232H для организации быстрого управляемого канала данных с МК на комп?

Пробовал SPI (MPSSE) на одном канале с управлением через UART другого канала - задержки между запросом на передачу данных и передачей были по 10 мс, что сводило скорость при использовании большого буфера (30КБ) к 550кБайт/с. Надо больше раза в 4.

Хочу попробовать организовать параллельный интерфейс, да не знаю, как подойти.

Есть ли у кого опыт? Хотябы какой из режимов стоит курить?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vitalinea
сообщение Mar 11 2011, 12:04
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 30-07-05
Пользователь №: 7 225



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, то, если это возможно, вместо отправки большого количества маленьких пар пакетов запрос-ответ, лучше использовать меньшее количество пакетов, но больших по размеру.
Go to the top of the page
 
+Quote Post
Goron Dekar
сообщение Mar 11 2011, 15:49
Сообщение #3





Группа: Новичок
Сообщений: 4
Регистрация: 8-03-11
Пользователь №: 63 472



Цитата(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
Go to the top of the page
 
+Quote Post
ivanoffer
сообщение Aug 16 2011, 19:23
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 120
Регистрация: 21-07-11
Пользователь №: 66 348



Заложил FT2232H для передачи небольших объемов данных из ПЛИС в компьютер без особых требований к скорости.
Особых глюков не заметил, за исключением появления "синего экрана" при выдергивании кабеля во время обращения
программы к устройству, видимо программисты с драйвером перестарались. Из спортивного интереса решил измерить
скорость передачи из устройства. Был приятно удивлен полученным результатом - от 40 до 45 Мбайт/с в зависимости от
компьютера, хотя по описанию указано до 25 Мбайт/с. Небольшая поправка - драйвер использовал последний. Может
кто-нибудь тоже замерял скорость или это так "звезды сошлись" у меня.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 17:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.01384 секунд с 7
ELECTRONIX ©2004-2016