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.

[参考译文] CCS/TMS320C5535:从 ADC?采样时如何使用文件系统写入 SD 卡

Guru**** 2602855 points
Other Parts Discussed in Thread: ADS127L01

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/650681/ccs-tms320c5535-how-to-write-the-sd-card-with-file-system-when-sampling-from-an-adc

器件型号:TMS320C5535
主题中讨论的其他器件:ADS127L01

工具/软件:Code Composer Studio

您好!

我正在研究一个项目、该项目使用 每秒250K 的采样率对24位 ADC ADS127L01中的数据进行采样、并将这些数据存储在占庭的 SD 卡中。 我在4us 中断中获取每个数据、处理器是 C

5535在100MHz 上运行。  

我使用了一个乒乓缓冲器、其中一个存储了来自 ADC 的1k 数据、另一个将上次存储的1k 数据写入 SD 卡。 但大量数据未写入 SD 卡、因为使用 ATA_WRITE 写入 SD 卡的操作 太慢。  我使用 了来自 CSL_MMCSD_SdCardFSExample 的代码。

在这种情况下、您能告诉我、我应该如何将这些数据存储在具有文件系统的 SD 卡中、而不会丢失数据?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我已通知团队。 反馈将发布在此处。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    有两种方法可以提高 SD 卡性能:

    1.将 pingpong 数据缓冲区的大小从1KB 增加到8KB,甚至是16KB,因为物理 SD 卡 扇区的大小为8KB 或16KB。

    2.使用 DMA 而不是 CPU 将数据从存储器复制到 SD 卡。

    此致、

    Ming  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的快速回复。

    是的、我同意您的意见。 我认为这两种方法都可以提高 SD 卡的性能。

    但我找不到任何演示代码显示如何使用文件系统将数据从存储器 DMA 到 SD 卡。 演示代码 CSL_MMCSD_SdCardFFSExample 似乎 有一个 DMA 示例、但没有真正的 DMA

     可以找到写入操作。 关于此问题、我 在这里用中文 www.deyisupport.com/.../145165.aspx 发布了一个主题、 但 尚未得到答案。 代码 CSL_MMCSD_dmaExample 使用 MMC_WRITE 实现 DMA 写入操作、但不包括文件系统。  

    您是否可以使用 DMA 将数据从存储器复制到具有文件系统的 SD 卡中的演示代码?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    当您在 CSL_mmcsd_atafs_ext_example.c 中调用"status = configSdCard (CSL_MMCSD_OPMODE_DMA);"时、您会将 SD 卡 I/O 设置为使用 DMA 模式、ATAFS 也会是 DMA 模式。 同样、当您使用"status = configSdCard (CSL_MMCSD_OPMODE_POLED);"时、您会将 SD 卡 I/O 设置为使用 CPU 轮询模式、ATAFS 也将是轮询模式。

    根据我之前的经验、将音频缓冲区大小增加到8KB 或16KB 会更有效。

    此致、

    Ming
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!  

    我  仔细阅读了 CSL_mmcsd_atafs_ext_example.c、发现它与 CSL_MMCSD_SdCardFSExample 几乎相同。 在 configSdCard (CSL_MMCSD_OPMODE_DMA)中、只完成 DMA 配置、并将 SD 卡设置为 DMA 模式。 但是、作为 CSL_MMCSD_SdCardFFSExample、写入操作是由 ATA_WRITE 实现的、无法找到 DMA 写入操作。

    我将尝试您之前提到的方法来增大缓冲区大小。

    您能找到另一个演示代码、说明 如何使用文件系统对 SD 卡执行 DMA 写入操作?