ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1166842 Топик полностью
arhiv6 (21.01.2022 21:00, просмотров: 208) ответил 3m на Есть ли способ ускорить работу USB-I2C на FT2232D ? Отлаживаю одну либу на писюке (просто на писюке удобнее чем на МК) она активно работает с I2C. При работе через libMPSSE_i2c в среднем передается по 1 байту за 15 миллисекунд. То есть адрес - 15мс, и так далее. В итоге получается дико медленно. С опцией I2C_TRANSFER_OPTIONS_FAST_TRANSFER_BYTES интерфейс не работает да и ACK нужен. Латентность задал 1 - пофиг.
Какую библиотеку (есть mpsse от ftdi, есть от Craig Heffner и т.д.) используете, какую ОС и какой драйвер? Обычно проблема, что каждая транзакция делится на части, например передача 10 байт - это отдельно передача команды старт, потом передача адреса, потом приём ACK, передача 10 байт (после каждого читается ACK) и приём стоп в конце - т.е. примерно 25 отдельных посылок в mpsse по USB. Так вот, каждая такая отдельная посылка может отправляться не чаще, чем раз в 1мс. Если 

библиотека совсем кривая, то каждый байт может отправляться за несколько посылок (в каком-нибудь bit-bang режиме). Т.е. смотрите код/отладчик какие именно команды отправляются по USB. Эффективнее собрать одну длинную посылку и отправить её целиком, например можно убрать проверку ответа ACK и передать всё за одну транзакцию.