In my i.MX6 project, I'm transferring video data using USB isochronous transfers (with the bare metal SDK). I'm unable to transfer data fast enough to keep up, but since I'm using USB 2.0 HS, I should theoretically be able to get up to 24MB/s (4MB/s should be fast enough for my purposes). Upon examination with a USB bus analyzer, I see that after receiving a SOF, I transfer 3072 bytes. Then 31 SOFs are received with no reply. Then another 3072 byte transfer.
So I believe the device is not fully utilizing the bandwidth it has been given. I don't see how to configure the transfer to use all 8 microframes. Or for that matter, how to use all available SOFs for which the device has data ready to transmit. Not even sure this is a host or device configuration.
Any pointers would be appreciated.