DSIoffe 2 12 января, 2021 Опубликовано 12 января, 2021 · Жалоба Здравствуйте все! Подскажите, пожалуйста, почему может тормозиться ввод данных в компьютер через FT601? Картина такая: первые четыре пакета по 1024 слова уходят с небольшими интервалами, правда, они понемногу растут. Потом интервалы между пакетами раз в пятнадцать больше самого большого из коротких. Прикладываю снимок экрана из Signal Tap. К портам USB подключены только клавиатура с мышью и USB Blaster. Может ли это быть особенностью режима 245 FIFO? При переходе на многоканальный режим с одним каналом может быть лучше? Если это особенность USB 3 на моей материнской плате, то может ли помочь вставная плата с USB? Заранее признателен. И ещё осциллограмма сигнала TXE_N. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yakub_EZ 0 13 января, 2021 Опубликовано 13 января, 2021 · Жалоба Здравствуйте. Вы так описали проблему, что к вам ещё больше вопросов: Какую функцию используете для считывания? Внутри плис стоковый код от FTDI? Если да, то что показывает сигнал тап про состояния state mashine? Какой алгоритм формирования слов? Или вы многократно считываете один и тот же буфер? Примеры от FTDI у вас нормально работают на плате? По моему опыту, если порт соответствует спецификации USB 3.0 и он исправен, то хоть ему сколько ему лет то он тянет FT60x. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DSIoffe 2 13 января, 2021 Опубликовано 13 января, 2021 · Жалоба Для считывания использую функцию FT_ReadPipe. И при синхронном, и при асинхронном чтении результат одинаковый. Внутри ПЛИС код, мною написанный на основании понятого из документации от FTDI. Алгоритм формирования слов - просто счётчик. Примеры от FTDI я у себя на плате не запускал, ибо не смог в них разобраться. Алгоритм работы такой: запускаю FT_ReadPipe, сигнал TXE_N активизируется, через некоторое время (от нуля до единиц миллисекунд) я активизирую WR_N и выдаю данные. FT601 забирает данные пакетами по 1024 слова, то есть, размером со свой буфер FIFO. На время высокого уровня TXE_N выдача данных приостанавливается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 13 января, 2021 Опубликовано 13 января, 2021 · Жалоба 3 minutes ago, DSIoffe said: И при синхронном, и при асинхронном чтении результат одинаковый. Сколько запросов ставится в очередь при асинхронном чтении? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DSIoffe 2 13 января, 2021 Опубликовано 13 января, 2021 · Жалоба Один, на все данные сразу, сейчас это 37500 слов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yakub_EZ 0 14 января, 2021 Опубликовано 14 января, 2021 · Жалоба Возможно это из за режима 245. В режиме фифо 600 и конфигурацией канала 1 IN Pipe как себя ведёт? Режим 245 на FT60x не применял, не пригодился, всё время хотелось быстрее передавать и по мануалам этого можно добиться только в режиме фифо 600 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DSIoffe 2 14 января, 2021 Опубликовано 14 января, 2021 · Жалоба 1 час назад, yakub_EZ сказал: Возможно это из за режима 245. В режиме фифо 600 и конфигурацией канала 1 IN Pipe как себя ведёт? Режим 245 на FT60x не применял, не пригодился, всё время хотелось быстрее передавать и по мануалам этого можно добиться только в режиме фифо 600 Спасибо. Режим 245 мне показался проще. Режим 600 я ещё не пробовал. А не подскажете, где именно написано, что 600 быстрее? Может, там ещё какие подробности есть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yakub_EZ 0 14 января, 2021 Опубликовано 14 января, 2021 · Жалоба Наверное из AN_386 FT600 Maximize Performance ссылка на сайт FTDI Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DSIoffe 2 14 января, 2021 Опубликовано 14 января, 2021 · Жалоба Спасибо. Я нигде в документации FTDI не видел явного указания на то, что режим FIFO 600 быстрее 245, и в этом тексте тоже. Про 245 написано гораздо меньше, и картинок к нему совсем мало - это да. Как будто они его стесняются и стараются обратить внимание на 600 :) И непонятно, как может интерфейс в этом месте повлиять на взаимодействие с USB, с какого-то места внутри FT601 данные должны выглядеть одинаково. В AN_386 упоминается пауза между пакетами - Idle. Способов повлиять на неё нету, кроме как специально затянуть на стороне ведущего шины. Я пробовал - короткие Idle увеличиваются, длинные не меняются. Почему она у меня после четвёртого пакета увеличивается раз в 20 - непонятно. Будем искать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yakub_EZ 0 14 января, 2021 Опубликовано 14 января, 2021 · Жалоба Извиняюсь, я ещё не самый настоящий сварщик по режимам FTDI, но попытаюсь восстановить хронологию появления у меня такого предубеждения на счёт режима фифо 600. В исходниках от FTDI есть разделение софта на два режима: Loopback и Streamer. Кстати исходники от FTDI мне показались настолько громоздки что я в них тоже не разбирался, а пошёл своим путём. Но тестировать плату начинал именно с них. Loopback это режим 245, пример с него может быть многоканальный, работа в примере ведется через SRAM, которое разбивается на 1,2,4 канала в него двунаправлено можно отправлять и принимать данные. А Streamer как раз представлен как быстрый фифо 600 где отображается датчик скорости. Вот в стриммере как раз получалось получить гигабитные цифры Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться