Как в USB контроллере в STM32F4x реализовать отправку >1 изохронных пакетов за микрофрейм?

В спецификации протокола USB HS есть возможность отправлять до 3-х изохронных пакетов за микрофрейм.
Это определяется
1. дескриптором. ендпоинта
2. Самим актом передачи

В контроллере USB STM32F4xx
В регистрах есть настройки как разбивать передаваемый буфер на пакеты.
По крайней мере я это так понял, почитав документ RM0090

В регистре OTG_HS_DIEPTSIZx есть поля MCNT и PKTCNT ,которые, как я понимаю, отвечают за разбиение.
Драйвер их ставит как-то неверно.
У меня вместо 3-х пакетов по 1024 байта отправляется один 3072 байта.
А это как-то не соответствует спецификации USB.
При этом, в регистре OTG_HS_DIEPCTLx - установлен максимальный размер пакета 1024.

Это я что-то делаю неправильно, или в STM32 контроллер USB не поддерживает такой режим?
  • Вопрос задан
  • 284 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы