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.

[参考译文] TMS320F28379D:具有 DMA 的1Msps ADC 的建议

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/792236/tms320f28379d-suggestions-for-1msps-adc-with-dma

器件型号:TMS320F28379D
主题中讨论的其他器件:C2000WARE

尊敬的所有人:  

我需要在项目中实现1Msps (至少500Msps) ADC。 该操作允许中断处理缓存的数据。  

我的设计使用所有速度为1Msps 或500ksps 的4通道 ADC、并计划使用 DMA 将数据保存到外部 SDRAM 中。  

我在 c2000ware 中查看了 ADC 示例。 例如、使用 PWM 计时器每50us 触发一次 SoC、使用16个 SoC 进行数字化、并使用 DMA 保存数据。

我的想法是:

1) 1)我认为我还没有了解 SOC 的要点。 为什么我们需要如此多的 SOC? SoC 会加快转换速度还是同步运行 SoC、以便我们可以一次获得多转换结果?  在我的实践中、SOC 实际上不能全部同时运行、而是按顺序运行。   

2) 2)如果 SOC 依次为 SOC0 -> 1...->SOC15、那么这里有哪些优势? 为什么不只运行 SOC0 15次?

3) 3)每个 SOC 的时序是否非常准确? 如果 SOC 运行时间准确,我能运行 SOC0到 SOC15再返回 SOC0… SOC15与循环方式类似、用于在没有要触发的计时器的情况下进行连续采集。   

4)继续并返回到我的应用:如果 SOC 的时序准确、那么如果我启动 soc0、然后循环它们、使它们运行并运行、直到有500K 的采样数据被 DMA 传输到外部 SDRAM。   

5) 5)您对我的1Msps (至少500kSPS) ADC 应用有何建议。  

很抱歉、有很多问题、但我认为关键是我对 SOC 的理解不是很好。 我们将感谢您提供任何意见。   

谢谢

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

    SOC 用于选择触发源、输入通道和 S+H 持续时间。 总体功能与其他 ADC 上的序列发生器类似、但操作非常灵活。

    例如、如果在单个 ADC (例如 ADC-A)上、您希望根据某些触发器(例如 ePWM3B)按某种顺序对2个通道(例如输入 A1和 A3)进行采样、则应使用两个 SOC:

    ADCA.SOC0 ={TRIGGER = ePWM3B、通道= 3 (A3)、SH =适当的持续时间}
    ADCA.SOC1 ={TRIGGER = ePWM3B、通道= 1 (A1)、SH =适当的持续时间}

    如果需要、您可以使用多组 SOC 从不同的触发源创建不同的序列。

    您还可以将来自不同 ADC 的多个 SOC 组合在一起、以实现同步运行。 我想您需要类似的东西(假设是 ePMW1A 和通道 A0、B0、C2、D0):

    ADCA.SOC0 ={TRIGGER = ePWM1A、通道= 0 (A0)、S+H =持续时间 X}
    ADCB.SOC0 ={TRIGGER = ePWM1A、CHANNEL = 0 (B0)、S+H = Duration X}
    ADCC.SOC0 ={TRIGGER = ePWM1A、通道= 2 (C2)、S+H =持续时间 X}
    ADCD.SOC0 ={TRIGGER = ePWM1A、通道= 0 (D0)、S+H =持续时间 X}

    请注意、同步 ADC 转换的 S+H 持续时间应相同、以确保同步运行。

    如果您希望每个 ADC 上的速率为1MSPS、则可以将 ePWM1A 设置为1MHz 触发。 我不确定您是否需要4个 DMA 通道、或者您是否可以使用步长等于整个 ADC 结果寄存器集大小的单个 DMA 通道(即距离&AdcbResult0 -&AdcaResult0)获得。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Devin、您好、感谢您提供的信息说明、这确实有助于我从 SoC 中获得帮助。