2018-11-27 05:47 AM
Hello. I am a student participating in a project.
I have to take 1080x720 px at least 15 fps video feed and forward it (along some other sensor data) through ethernet connection. Is this possible ?
My other question is;
How can I store that data on a external memory unit and later send it with ethernet interface ?
( When the image size is small the data can directly be stored on sram with dma but my image(s) are 1-1.5 mb in size so this is the reason why i think i need an external memory unit . But if there is a way to send the image data (without capturing the whole frame first) from ethernet interface that would be okay but i researched for 2 weeks and i do not think it is possible.)
thanks in advance
2018-11-27 06:22 AM
The DMA has transfer length limitations, so you'd need to manage the update of two buffers, or move the data.
1920x1080@15Hz 14-bit would be 31MSps, so drinking from a firehose there.
Ethernet is what 100Mbps (12.5MBps)
2018-11-27 06:58 AM
I miswrote it is not actually 1080p it is 1080x720 px. I did not understand what you meant by two buffers , can you explain it in more detail please ? Do you mean some sort of external memory when you said "move the data" ? And do you thin what i am trying to do is possible ? I am not very experienced i am junior university student if some of my question are stupid i am sorry.
2018-11-27 03:40 PM
Ok, so review the answers within the context of the functionality described in the Reference Manual for the part.
The DMA transfer count is 16-bit wide, limiting the number of transfer units.
The DMA can hold two sets of address/counter describing two entirely different areas of memory, external if you want. You might need to change the settings of the inactive buffer so it moves to a new location when it switches again.
You're a student, so expect your teachers to do their job and teach you the things you need to know. Find a class mate who better understands the topics taut.
2018-11-27 04:22 PM
> it is not actually 1080p it is 1080x720 px.
Okay so how much is 1080x720x15? So that's how much bytes per second - provided you are OK with one byte per pixel? I guess you are familiar with multiplication.
And don't forget that 100Mbps=12.5MBps is only a theoretical calculation; the real throughput is limited by both the several layers of protocols overhead, and also by the limitations of the STM32 hardware (which is something which must be determined) and software (which must be written before can be judged).
And no matter where do you store the pictures, if you want to maintain a sustained 15fps transfer, you need to churn out the data somehow. Storage will help you only with still pictures or short bursts of them.
This is definitively not a task for a beginner, and not a job for a 'F4.
JW
2018-11-28 09:53 AM
Thank you all for helping. Apparently although it might be possible to do it with STM32F407 it would be a very difficult task to do. I have decided to use a STM32H7 MCU instead.
2018-11-28 10:11 AM
And how would that help with the bandwidth limitation?
Show us your back-of-the-envelope calculation.
JW