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.
大家好、我要将我的 ADCA A2配置为过采样。 如下图中的概念图所示。
我想将 EPWM1用作16kHz PWM、借此、我想在 ctrA =PRD 事件发生时使用 SOCA 事件对 ADC 输入 A2进行过采样。
然后使用 EPWM2作为4kHz PWM、在 CTR 为零中断的情况下、计算 SOC0至 SOC3的 ADC 结果寄存器的平均值。
问题是->如何根据 Ctr == PRD 事件而不是逐个顺序配置过采样 ADC。 (如参考手册中的13.4.2对 ePWM 触发器的过采样转换->所述)。
(在 EPWM1SOCA 触发事件时、我不能使用中断子例程):
任何投入 和想法都将是非常感激的。
您好、
请看一下 C2000Ware 示例下的示例 adc_ex12_BURST_MODE_OVERSAMPLING。 这使用突发模式来触发来自 PWM 的 ADC 转换、这样、当计数器达到周期时、EPWMSOC 会在 ePWM 周期内针对 x2、x4和 x8过采样触发 SOC 的连续转换。 它应该能满足您的需求。 给示例一个镜头、如果您有任何问题、请告诉我。
此致、
约瑟夫
感谢 Joseph 的意见。 我有一个特殊的要求,在 CTR =prd 事件的注意4周期。 然后在我的下一个中断时读取数据并求平均值。 您的建议和突发模式示例无法满足我的要求。 在发布之前、我查看了所有可用的示例、以确保我没有提出多余的问题。
再次感谢您的答复。
您好、
好的、明白。 我将查看当 CTR = 0时如何在 EPWM2上生成 ISR。
此致、
约瑟夫
您好、
可以将 EPWM2配置为在 CTR = 0时生成中断。 首先、使用函数 ePWM_enableInterrupt 启用中断、然后使用 ePWM_setInterruptSource (EPWM2_base、ePWM_INT_TBCTR_ZERO)对事件 CTR=0启用中断。 然后、您可以在 ISR 中进行 SOC0-SOC3的结果累加(然后将结果右移2位)以进行平均计算。 务必清除并确认中断以防止溢出、
希望这对您有所帮助。
此致、
约瑟夫
感谢 Joseph 的回复、
实际上、我可以生成 ePWM 中断并计算平均值、我面临的主要问题是在每个 CTR==PRD 事件中触发 SOC0至 SOC4。 我想出来了、正如你建议的、使用突发模式 、然后使用轮询模式的运行、我基本上可以实现。 将测试它并在此处让您知道。
您的回答确实让我朝着一个方向发展、我只希望不是连续的 SOC、而是发生 CTR =PRD 事件。
非常感谢您的意见。
真的很感激
此致
深度
您好、
好的、希望您的结算能找到您想要的结果。 如果您还有其他问题、请告诉我。
此致、
约瑟夫