2018-02-15 04:03 PM
Hello!
I want to start a project with the NUCLEO-F767ZI soon. In this project I want to measure some quantities with up to 100 kSamples/s and store the data.
Would it be physically possible to have the data either stored to an SD memory card (via SDMMC interface) or sent via Ethernet with up to 10 MB/s in realtime and still having some computing power to execute additional calculations on the MCU? Or are there restrictions on the achievable data rates?And which memory device or data transfer protocol would you suggest for that purpose in general?Thanks in advance!
#data-transfer #ethernet #sdmmc2018-02-19 04:42 PM
Not sure a dual card setup is desirable.
Pretty sure ALL microSD cards are rated at 50 MHz for SPI clocking.
The capacity, make and model have a significant impact on the read/write speeds achievable. Got some 16GB cards which are significantly faster a writing than supposedly better/fast 32GB cards.
https://en.wikipedia.org/wiki/Secure_Digital
2018-02-19 05:04 PM
I asked about the dual card setup because John mentioned the following:
'So i am thinking even with 1bit SDIO, using 2xADC and
2xSDMMC units
on the 767, you could get close to 1.8 MSamples/s onto uSD continuously.'Doesn't that imply two SD cards used?
2018-02-19 05:07 PM
Among the measurement quantities are only 2 or 3 ADCs. The rest will be floating point values, some of them a result of calculations of incremental encoders connected to the timer modules.
Maybe I can provide details about that tomorrow. However, if it does not work out, I have to decrease the sampling rate.
2018-02-19 05:50 PM
Indeed, but I still don't think it is desirable.
Focus on adding a MicroSD socket to your Nucleo, and experimenting with the performance and functionality there. You got several things to get a reasonably mastery of before you can pull it all together as a final project.
2018-02-19 05:58 PM
May be instead of explaining it you can work on the functionality and quantifying the rates at which you can generate data, and how you can modulate/vary that. ie not hard code specific rates and constants, but creating a frame work that has programability and flexibility.
Not sure there are people here that will implement your project. The broad goals specified so far seem achievable with the hardware. You should focus on the volume of data and how it is represent in memory.
2018-02-19 07:22 PM
Yes 2xSDMMC means 2xSD cards. You have to reconcile the dual data streams (files) externally.
Obviously, you don't want to complicate things with 2xSD unless it's necessary. That was 'spit balling' ideas to get storage bandwidth, and is a possibility on with a 767.
Really depends what your doing other than stream adc to buffer with dma and then streaming buffers the sd using dma.
Getting 1bit or 4bit SDIO with DMA working is just a matter of reading, getting yourself a $5-10 uSD breakout, and doing a little experimenting. I would love like to tell you that spitting out a project template from CubeMx and getting things to work is simple. But, as of 4.23, it takes a bit if reading here and patching libraries to get it working. I have tried 4.24 yet.
2018-02-21 04:18 PM
Ok, thanks so far! I think I have to try and experiment a bit (like John suggested). Another question: Among the measured quantities are a few that do not necessarily have to be sampled with 100 kHz, maybe only 1 kHz. Would it be beneficial if I separate them from the fast-sampled quantities and transfer them via Ethernet? That would decrease the amount of data going to the SD card. Or would this cause additional issues?
2018-02-25 03:46 PM
Well, the module SDMMC1 of the NUCLEO-F676ZI even has an 8-bit interface. Wouldn't this double the achievable data rate?
2018-02-25 04:24 PM
Sure if you could find some cards that support that. Surely more of an eMMC thing..
2018-02-26 05:26 PM
One more question about full- and half-duplex: In the Ethernet-chapter of the MCU's reference manual I can only find keywords like SMI, 'media-independent-interface' (MII) and 'reduced-media-independent-interface' (RMII). Is MII full-duplex and RMII half-duplex? Or are those different kinds of categories?