Y
Y
Yaroslav Korchevsky2020-12-29 00:26:35
USB
Yaroslav Korchevsky, 2020-12-29 00:26:35

How to implement sending > 1 isochronous packets per microframe in the USB controller in STM32F4x?

The USB HS protocol specification has the ability to send up to 3 isochronous packets per microframe.
This is defined
1. by the descriptor. endpoint
2. By the act of transfer

In the USB controller STM32F4xx
In the registers there are settings for how to split the transmitted buffer into packets.
At least that's how I understood it, after reading document RM0090

In the OTG_HS_DIEPTSIZx register, there are fields MCNT and PKTCNT , which, as I understand it, are responsible for splitting.
The driver puts them somehow incorrectly.
Instead of 3 packets of 1024 bytes, I send one 3072 bytes.
And it somehow does not comply with the USB specification.
However, in the registerOTG_HS_DIEPCTLx - the maximum packet size is set to 1024.

Am I doing something wrong, or does the STM32 USB controller not support this mode?

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question