|
0 / 0 / 0
Регистрация: 03.04.2017
Сообщений: 4
|
|
Чтение по USB 2.0 с ft232h12.10.2023, 07:47. Показов 1328. Ответов 2
Метки нет (Все метки)
Пишу polling через USB Rasberry Pi 3b (linux). Данные считываются через ft232h в FIFO. Использую и стандартный драйвер D2XX (который официально багует под линуксом), и стороннюю библиотеку libftdi(с которой у людей проблем нет).
Возникает такая проблема: ft232h в FIFO режиме может работать на скорости 320 Мбит/c, но я не понимаю, как получить такую скорость при чтении. Latency timer нельзя поставить меньше 1мс, значит, если я буду считывать относительно небольшие блоки данных (2Кб), то моя скорость будет (и получается) ~15 Мбит/с. Но это же бред какой-то. Bulk фрейм USB 2.0 длится 125мкс и вмещает 512*13 байтов. Почему устройство ждёт этот latency timer? Скорость записи в буфер у меня ~ 300Мбит/c, т. е. 2Кб точно успевают поместиться в один 125мкс фрейм. И такой эффект я получаю и с D2XX, и с libftdi.
0
|
|
| 12.10.2023, 07:47 | |
|
Ответы с готовыми решениями:
2
FT232H FT232H не определяется в FT_Prog Плата FT232H и вопросы по обвязке |
|
0 / 0 / 0
Регистрация: 03.04.2017
Сообщений: 4
|
||||||
| 13.10.2023, 11:16 [ТС] | ||||||
|
Посмотрел в wireshark, что там происходит. Увидел несколько передач по usb с интервалами в 125мкс, но последний почему-то 1мс. Подумал, что дело в том, что если вдруг запрашиваемый объем больше, чем есть на самом деле, то libusb_bulk_transfer, который вызывается внутри libftdi ожидает latency time.
Библиотека устроена так, что ftdi_read_data физически считывает chunkSize байтов, а помещает в буфер toRead байтов, внутри ftdi_read_data откидывает служебные 2 байта. Я попытался подогнать размер чтения, чтобы он всегда соответствовал размеру байтов, которые я хочу считать по шине (с учётом служебных байтов). В итоге это не помогло. Раньше, если, например установить chunkSize в 1024, а toRead 1020, то скорость заметно возрастала, и в wireshark было видно, что задержки нет. Сейчас я делаю то же самое, но в обратном порядке. Т. е. теперь, если я хочу считать 1024 байта, то я запрошу 1030 (chunkSize). Почему-то задержка есть всегда. Или принципиально, чтобы chunkSize был кратен 512 байтам?
0
|
||||||
|
Эксперт Hardware
|
|
| 27.10.2023, 21:53 | |
|
ASaint, решили проблему со-скоростью чтения?
если да, поделитесь секретом.
0
|
|
| 27.10.2023, 21:53 | |
|
Помогаю со студенческими работами здесь
3
Чтение с USB устройтсва передача и чтение из usb Чтение данных от usb мыши
Чтение данных от устройства usb Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|