STM32F411 Мне нужно отправить много данных по USB с высокой скоростью
Я использую STM32F411 с библиотекой USB CDC, и максимальная скорость для этой библиотеки составляет ~1 Мбит / с. Я создаю проект, в котором у меня есть 8 микрофонов, подключенных к линии АЦП (эта часть работает нормально), мне нужен 16-битный сигнал, поэтому я повышаю точность, добавляя первые 16 сигналов от одной линии (АЦП дает только 12- битовый сигнал). В моем проекте мне нужно 96 тыс. 16-битных отсчетов для одной строки, так что это 0,768 млн. Сигналов для всех 8 линий. Для этого сигнала требуется пространство 12000 КБ, но STM32 имеет только 128 КБ SRAM, поэтому я решил отправить около 120 с данными 100 КБ за одну секунду.
Вывод: мне нужно ~11,72 Мбит / с, чтобы отправить это.
Проблема в том, что я не могу этого сделать, потому что CDC USB ограничил меня до ~1 Мбит / с.
Вопрос в том, как увеличить скорость USB до 12 Мбит / с для STM32F4. Мне нужна подсказка или библиотека.
Или, может быть, я должен настроить "аудиоустройство" в CubeMX?
1 ответ
Если маленький b
означает байт в вашем вопросе, ответ: это невозможно, так как у вашего микро есть FS USB, максимальная скорость которого составляет 12M бит в секунду.
Если это означает биты, то ваше предположение о скорости 1 Мбит (бит) неверно. Но вы не достигнете 12-битной передачи полезной нагрузки.
Вы можете попробовать написать (только если b
значит немного) твой собственный класс, но, боюсь, ты не найдешь готовую библиотеку. Вам также необходимо написать драйвер устройства на главном компьютере.