2015-11-26 12:49 AM
hello
I need help about my new project. I want to sample from 2Mhz signal with 10Mhz sampling rate about a minutes by a 12bit parallel external ADC (AD9035). since the number of samples will be too many, I need to save them on sd card so that after 1 minutes I use them. now I want to know how can I write my samples on SD with high speed (more that 20 M Byte/s). using DMA, is good idea?
I am pleased if you help me and suggest any algorithms.
I use STM32f407.
2015-01-01 06:56 AM
''DMA can trigger with TIMx but here it connect to SDIO''
MohammadJavad, as discussion in following link, you can use DMA2 for two peripheral: https://my.st.com/public/STe2ecommunities/mcu/Lists/STM32Discovery/Flat.aspx?RootFolder=%2fpublic%2fSTe2ecommunities%2fmcu%2fLists%2fSTM32Discovery%2fADC%20DualMode%20Interl&FolderCTID=0x01200200770978C69A1141439FE559EB459D75800084C20D8867EAD444A5987D47BE638E0F¤tviews=162015-11-26 05:53 AM
I don't think the F4 has the horse power to achieve this. I definitely feel the 4-bit SDIO will not hit anywhere near 20 MBps writing.
2015-11-26 06:28 AM
I found SDHC with writing speed of 40 MB/s (Sony 8GB UHS-I 94MB/Sec SDHC Card). can I write on it with 20MB/sec by DMA?
2015-11-26 07:39 AM
I would be surprised if you could.
Yes, you'd use DMA to hit the bandwidth limit, but I think that's much lower than you think it is. The card is only one factor in the system performance.2015-11-27 01:43 AM
many thanks Clive for your answer. I think I can say its result till Tuesday.
2015-12-08 10:02 PM
unfortunately, I could not found microSD with that speed! but I found Compact flash. it has high speed and I can run it with FSMC.
now I think to this algorithm: I can read pins with DMA with 10Mhz frequency that trigger with TIM1 and I writ them in CF by FSMC. any idea about this algorithm?in addition I found FPGA. I can get samples from ADC and write them to DRAM with FPGA and then transmit them to my ST and analyse them. but in this way the cost is a little high.2015-12-09 07:47 AM
I think it is a bit flawed. You wouldn't be writing to the CF at 10 MHz, you are SAMPLING at 10 MHz. You need to write to the CF faster than that, as you will have command overhead as you interact with it. I'd expect you'd just use a memory-to-memory DMA over the FSMC to get the data blocks to the media as fast as possible.
2015-12-09 07:50 AM
Can you use the FPGA to provide the data transfer to an SDIO or CF directly, and just have the STM32 manage them?
2015-12-10 02:18 AM
yes, you're right clive, I have to write faster than 10MBps on memory.
yes I can use FPGA (OR CPLD FOR ITS LOWER COST) to write data in memory. in addition if I use fpga, I can connect it to DRAMs that have more capacity with low cost. maybe it's more better for future of my design.