This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SD Card performance

Other Parts Discussed in Thread: TMS320C5535

Hi!

I wanted to start a audio project handling multiple 96kHz 24bit streams form a ADC (for my first prototype I decided on a TMS320C5535 eZdsp USB Kit).

What is the maximum performance I can expect under perfect conditions (sequential block write operations on say a class 10 sdhc card, meaning does the dsp impact the performance or is it limited by the card)?

Is there a faster interface I can transmit data with for say a FPGA to store the data?

greetings

schuschu

  • Hi,

    The hardware maximum throughput of SD card is 25 MB/sec however you can not achieve the maximum throughput. It depends on software and your SD card.

    If you use file system software, it'll slow down a throughput very quickly.

    Regards,

    Hyun

  • I ran some benchmarks for SD recording using a Class 10 8 GB SDHC card from Amazon.

    The test was to write 10,000 buffers with different buffer lengths.  Time was measured using the real-time clock.

    Code Code PLL (MHz) Block Size (Bytes) File Size (MB) Duration (s) MB/s 16-bit samples/s
    CSL_MMCSD_SdCardFSExtExample_Out Debug 100 256 5 22 0.227273 113636.36
    CSL_MMCSD_SdCardFSExtExample_Out Debug 12.288 256 5 40 0.125 62500.00
    CSL_MMCSD_SdCardFSExtExample_Out Release 100 256 5 21 0.238095 119047.62
    CSL_MMCSD_SdCardExtExample_Out Debug 100 512 10 28 0.357143 178571.43
    CSL_MMCSD_SdCardExtExample_Out Debug 100 1024 20 32 0.625 312500.00
    CSL_MMCSD_SdCardExtExample_Out Debug 100 4096 80 56 1.428571 714285.71
    CSL_MMCSD_SdCardExtExample_Out Debug 12.288 4096 80 129 0.620155 310077.52

    I ran some of the suggested tests, such as in Debug mode and release mode, but did not see much difference there.

    There does seem to be a big difference between using the ATA filesystem and writing directly to disk without the filesystem.

    Writing larger buffers dramatically improved performance.  I was not able to write larger buffers by modifying the FileSystem code...probably was changing the wrong #define.

  • Hi,
    I am also having trouble with rebuilding CSL/ATAFS for multi-block write. Can anyone help provide the secret?
    Thank you!