cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F USB High speed real throughput

STOMPOU
Associate II

Hi,

we have developed a board with a low resolution camera interface using an STM32L0xx MCU.

Now we want to use an HD camera and for this we have a module supporting USB2.0@30fps of 1920H x 1080V frames on USB, so it is really important to use a USB HS @host configuration with full bandwidth untilization (in the range of 400Mbps). 

We see on product selector, there are STM32F2 and STM32F4 series (few par numbers) supporting OTG with host USB HS, but we do not see detailed information regarding the actual performance of those chips in host USB HS mode. Is possible to have a confirmation about the performance of that interface? Are there benchmarking data?    

8 REPLIES 8
TDK
Guru

I have personally gotten ~42 Mbps in device mode. At the time, the bus was constrained by 48 MHz single data line, so the ceiling may be higher, but it's at least that high.

Seriously doubt you can get anything close to 400 Mbps. Consider that you have to do something with that data once it arrives.

If you feel a post has answered your question, please click "Accept as Solution".

Many thanks for the feedback and the data.

The app won't have anything time-consuming (no transcoding, no decoding and on-the-fly processing but simple storage), nevertheless if few hundreds of Mbps is not achievable in the so-called HS mode, then it is not HS but FS. 

This is a decision point whether STM32F MCUs are relevant for embedded HD Video applications as most camera modules provide HS USB connectivity.  

42 Mbps is well above FS speeds. But yeah, I wouldn't put an STM32F4 chip in something like that. Math just doesn't support it.

1920 * 1080 * 2 byte/pixel * 30 frames/sec = about 1 Gbps.

If you feel a post has answered your question, please click "Accept as Solution".

Data rate is lower for "standard" video streams, as they are in MPEG4 format:  

That's a total of 22 Mbps for 1080p and 12 Mbps for 720p.

Lossy compression may result in much lower bit rates.

(from https://superuser.com/questions/434532/what-data-transfer-rates-are-needed-or-streaming-hd-1080p-or-720p-video-or-stan )

But as a minimum i would start with a F723 (has hi-speed usb + phy ) .

Just look at the fastest cpu+mpu from STM, only chance for full HD video. (without encoding ! )

With encoding in real time, something from the Axxx series is needed, look at specs from RaspberryPi 4 .

If you feel a post has answered your question, please click "Accept as Solution".

I tend to agree, although the camera output shall already be MPEG4 encoded and as such shall be stored.

But still the question remains, why HS is not really HS?

 

But as a minimum i would start with a F723 (has hi-speed usb + phy ) .

True, as this is the most powerful MCU with HS capability. 

But still I think HS is closer to FS. I would expect at least a difference of an order of magnitude, eg. 100/150 Mbps.

>I would expect at least a difference of an order of magnitude, eg. 100/150 Mbps.

I just tested: fast sd-card in usb3 adapter on USB2 port (hi-speed) -> 36MB/s avg. = 288 Mbps ;

(card A1 type: Kingston canvas select plus 64GB )

So this might be possible, under perfect conditions , on hi-speed USB. (in real world...)

( On USB3 same card with same adapter giving about 96MB/s , 780 Mbps ; so this is the cards max speed.)

If you feel a post has answered your question, please click "Accept as Solution".

Then that's the answer! There is indeed HS capability.  Many thanks for the feedback!

Such performance is already enough for our app.