Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Снова про FT245
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
zpv78
Что необходимо:
Необходимо принимать параллельные данные с периодичностью 3 мкс (333 КБайт/сек). Объем данных в каждом пакете 5200 байт.

Ситуация:
Читаю не полный пакет. Не хватает по разному от 50 до 300 байт.

Что делал:
Становился частотомером на синхро - количество импульсов полное (5200). Становлюсь на TXE - количество импульсов такое же сколько читаю (не хватает).

FTDI заявило скорость 1 МБайт, мне же надо 333К. В чем дело. Читал аналогичную тему на этой странице про длительность TXE (4 с хреном мсек) - может из-за этого. Кстати подключал два аналогичных устройства на один информационный канал - читает разное количество. При приеме сигнал TXE не отслеживаю, все равно не могу ограничить скорость информационного канала.

Help me: Может кто сталкивался и победил такую фигню, или надо реализовывать другие схемные решения.

Крик души: FTDI-козлы.

В дополнение: Проверил длительность TXE - у меня все в норме - около 200 нс. Неужели происходит переполнение буфера в микрухе (384 байта).
jorikdima
а не Мбит ли они обещают? smile.gif
zpv78
Нет, МБайт. Ведь FT245-преобразователь паралельного кода в USB.
-=Space=-
Отвечу и здесь

Цитата(zpv78 @ Sep 26 2007, 16:21) *
При приеме сигнал TXE не отслеживаю ....

вот корень проблемы!
нельзя передать 5200 байт за один юзби-фрейм, он поделется на 64 байтовые Bulk транзакции.
Между транзакциями , если писать на тойже скорости что и всегдавозможно переполнение FIFO в FTшке
и она об этом сообщает удерживая TXE дольше чем обычно.
zpv78
Спасибо, я в принципе догадывался, что дело в переполнении буфера. Вот только я не имею возможности корректировать информационный поток, а вынужден подстраиваться под него. Чего блин делать, пока не знаю. Еще раз спрсибо, буду думать. Пока.
-Al-
Цитата(zpv78 @ Sep 26 2007, 21:03) *
Спасибо, я в принципе догадывался, что дело в переполнении буфера. Вот только я не имею возможности корректировать информационный поток, а вынужден подстраиваться под него. Чего блин делать, пока не знаю. Еще раз спрсибо, буду думать. Пока.

Поставить двухпортовое FIFO в разрыв между FT245 и входом потока.
zpv78
Проверил логическим анализатором поведение TXE, действительно после приема 4300 байт TXE затыкается на 600 мкс (скидывает переполненный буфер), в этот момент я теряю информацию. Решение об аппаратном FIFO буфере возникло сразу, вот только я не слышал таких микрух. Может кто знает что нибудь подобное, подскажите, пожалуйста. Я пока буду искать.
Спасибо за помощь.
-Al-
Например что-нибудь из серий:
IDT720x
CY7C46x
zpv78
Спасибо, посмотрю. Успехов.
_ANDREW
не так давно делал вводилку на ft245, (не доделал появились дугие задачи..). Так вот , ни о каком МБ/сек который они обещают нет и речи. сделал аналогично предложенному решению (промежуточный буфер), а именно сначала сделал на плиске и sram пробывал сделать пин-понг буфер, но так как sram была одна там возникали проблемы с арбитром шины. сейчас думаю либо асинхронный fifo внутриплисочный прикутить, либо арбитра придумывать...да, максимальная скорость, которую я добился ~2,3 - 2,5 Мбит/сек...
-=Space=-
ну тут дело не в микрухе.
возможно хост не успевает принять данные?
или плис не успевает выдавать?

у меня получилось 120Гц пакетами по ~3600 байт
это уже 3,4Мбит, при этом загрузка шины FTшки <50%
но увиличивать скорость дальше мне было сложно, поэтому ограничился 120 Гц

Сейчас сделано так:
в плиске fifo на 16 байт, пакеты формирует embeded проц pblaze,
по 14 байт кидает в fifo
по опустошению fifo генерируется прерывание процу, по которому
закидывается в fifo новый блок из 14 байт.
fifo высвобождается автоматически по спаду txe.
PSP
Я достигал на прием скорости 500кбайт/сек на объемах в несколько мегабайт, причем ограничивалась скорость возможностями моего микропроцессора, а не FTDI. Осциллографом хорошо видно, что процессор читает готовность FTDI, а она всегда (почти) готова. Потом читает байт данных и т.д. То есть случаев подтормаживания со стороны FTDI очень мало, фактически только между заполнением его FIFO. Правда, я использовал на стороне PC не драйвера виртуального COM порта, а D2XX, они быстрее.
SALOME
Цитата(PSP @ Oct 6 2007, 03:53) *
Я достигал на прием скорости 500кбайт/сек на объемах в несколько мегабайт, причем ограничивалась скорость возможностями моего микропроцессора, а не FTDI.

Подтверждаю. У нас скорость порядка 900 мегабайт/сек. Хотя по началу было совсем мало. Потом обнаружили ошибку в программе проца.
-Al-
Цитата(SALOME @ Oct 6 2007, 08:09) *
Подтверждаю. У нас скорость порядка 900 мегабайт/сек. Хотя по началу было совсем мало. Потом обнаружили ошибку в программе проца.

Не 'мегабайт' а 'килобайт' wink.gif Да, действительно на FT245 можно достичь такой скорости. НО поток в реальном времени на такой скорости без потерь можно передать только при наличии внешнего буфера хотя-бы на 4кБ, лучше побольше smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.