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.

[参考译文] TMS320F28075:ADC 采样

Guru**** 2535240 points
Other Parts Discussed in Thread: CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/605652/tms320f28075-adc-sampling

器件型号:TMS320F28075
Thread 中讨论的其他器件:controlSUITE

您好!

我从用户指南中了解到、在某些触发条件下对 ADC 进行采样、并在其中一个 SOC 中捕获值。

但是、我希望在触发后对相同的 ADC 通道进行采样、以获得一定数量的样本(例如10)、并且该值旨在在同一 SOC 中捕获。 我将在另一个采样值之前在本地存储该值。 我想知道这是否可行。

谢谢、
Sagar

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

    通过配置10个 SOC、您可以从一个触发器中对同一通道进行10次采样、所有这些 SOC 都具有相同的触发源和通道选择。 如果您使用 SOC0至 SOC9、10次转换将进入 ADCRESULT0至 ADCRESULT9。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Devin、

    感谢您的回复。 是的、我理解可以这样做。 我的问题是、我是否可以在单个 SOC 上执行此操作、而不是在10个不同的 SOC 上执行此操作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在这种情况下、您需要将触发速率提高10倍、然后使用 CPU、DMA 或 CLA 将转换移动到下一个采样发生之前的某个位置。

    没有任何可累加结果的硬件机制、也没有任何机制可从单个主控触发器重新触发多个转换。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗯、触发源是周期性的、该周期是恒定的。 我无法更改它。

    请回答这个问题吗?
    我将在发生触发的0ms 读取 ADC 值。 假设下一个触发发生在100ms。 如果我在介于30ms 和60ms 之间的值之间读取 ADC 值、在下一次触发发生之前、我是否会获得更新值?

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

    您好 Sagar、

    除非触发另一次转换、否则 ADC 结果不会更新。

    如果您想要精确的定时转换结果、则应使用另一个以更快速度运行的定时外设来生成内插触发器。  ePWM 模块具有用于同步多个模块的挂钩。

    如果您对样本的特定时序不太关心、则可以将 ADC HW 设置为重复自触发。  您可以通过设置来执行此操作:

    • SOC0触发 ADCINT1
    • INT1CONT 被置位、这样可连续生成 ADCINT1
    • ADCINTSOCSEL1.SOC0 = 1 (ADCINT1触发 SOC0)

    在这种情况下、SOC0触发 ADCINT1、然后再次触发 SOC0、因此 ADC 连续转换。 注意:您仍需要一些初始触发器来启动该过程。  如果要使用多个 ADC、应同时触发所有 ADC、使它们以锁步方式运行。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您提供答案 Devin。
    如果有上述任何示例或任何相关的应用手册、请指引我到那里。

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

    您好 Sagar、

    我认为、如果您能够运行并理解 controlSUITE 中的 ADC_SoC_CONTINURATE 示例、您应该能够按照上述粗略指南、将该示例重新调整为仅使用1个 SOC。

    如果要同时使用多个 ADC、请运行并理解 ADC_SoC_software_sync 示例。  然后、您可以使用同步触发方法开始连续采样。

    我想、只要您的 ISR 执行时间不是时间关键型的、另一种可能是根据需要直接通过软件触发转换。  然后、您只需旋转等待它们完成、然后立即读取它们。  要了解这种方法的工作原理、请参阅 ADC_SoC_SOFTWARE 示例。