HsUSBD Fly-Mode packetizing size control
Posted: 04 Mar 2019, 08:29
Dear staffs,
I'm investigating HsUSBD of Cortex-M4 serise.
I have a question about Fly-Mode which will be used for IN-Endpoints.
○When I write a data by WORD-access to corresponding EPxDAT, does
this mechanism validate packet length by FOUR byte boundary ?
○This mode is explained that it is suitable for Isoch.
How can I enjoy this mechanism for so-called "Hi-Res Audio", which
requires multiple( audio channels) of 32bit wide data ?
In the most application cases, the number of audio channels will be
even numbers, such as two (for stereo), four, eight etc....
The audio datum representing those of the SAME audio sampling time
should NOT be separated apart in two USB packets, must be always
in the same USB packet.
○To accomplish Hi-Res Strereo, a pair of 32bit Left/Right audio channel
data smartly employing Fly-mode, I think I must set endpoint in Fly-mode
only when I write proper even number of audio channel data.
Is there any recommendable algorithm to do that ?
For examples.....
A kind of DYNAMIC mode change only to get expected validation border condition;
Before writing two (word-sized) audio data, once set Endpoint as
Auto-Validate or Manual-Validate.
When those audio datum representing those on the same audio
sampling time are written, set Endpoint in Fly-mode back again....
Here, I'm a little bit anxious about....
Endpoint mode setting frequently changed while data contents
in the FIFO are growing still keeps proper behavior of Endpoint control or not...
Regards.
Shoichi Kojima
I'm investigating HsUSBD of Cortex-M4 serise.
I have a question about Fly-Mode which will be used for IN-Endpoints.
○When I write a data by WORD-access to corresponding EPxDAT, does
this mechanism validate packet length by FOUR byte boundary ?
○This mode is explained that it is suitable for Isoch.
How can I enjoy this mechanism for so-called "Hi-Res Audio", which
requires multiple( audio channels) of 32bit wide data ?
In the most application cases, the number of audio channels will be
even numbers, such as two (for stereo), four, eight etc....
The audio datum representing those of the SAME audio sampling time
should NOT be separated apart in two USB packets, must be always
in the same USB packet.
○To accomplish Hi-Res Strereo, a pair of 32bit Left/Right audio channel
data smartly employing Fly-mode, I think I must set endpoint in Fly-mode
only when I write proper even number of audio channel data.
Is there any recommendable algorithm to do that ?
For examples.....
A kind of DYNAMIC mode change only to get expected validation border condition;
Before writing two (word-sized) audio data, once set Endpoint as
Auto-Validate or Manual-Validate.
When those audio datum representing those on the same audio
sampling time are written, set Endpoint in Fly-mode back again....
Here, I'm a little bit anxious about....
Endpoint mode setting frequently changed while data contents
in the FIFO are growing still keeps proper behavior of Endpoint control or not...
Regards.
Shoichi Kojima