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.

[参考译文] TMS570LC4357:使用 DMA 通过 PWM 生成波形

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1497457/tms570lc4357-use-dma-to-generate-waveform-through-pwm

器件型号:TMS570LC4357

工具/软件:

尊敬的 Dirs。

我想使用 Hercules 处理器生成10kHz 正弦波、并让 ADC 对反馈信号进行采样。

我尝试的方法是使用 DMA 以包含正弦波的查找表来重新加载 PWM 模块。

同时、当 DMA 结束事务(一个完整波形)时、我想触发 ADC 转换。

我在第一阶段失败了、无法让 DMA 正常工作。 有人可以帮忙吗?

谢谢你。

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

    尊敬的 Txema:

    我们可以在数据传输块之后使用 DMA 生成块传输完成中断。

    以下示例可参考一次:

    e2e.ti.com/.../0434.DMA_5F00_Memory_5F00_to_5F00_Memory_5F00_Transfer_5F00_RM57.zip

    在上面的示例中、我正在执行一个数据存储器块到存储器的传输、在执行存储器到存储器传输后、我配置为生成一个块传输中断。 在该块传输中断中、我再次触发传输。 希望这对您有所帮助。

    --
    此致、
    Jagadish。

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

    尊敬的 Jagadish:

    瞬时回答要比您小。 我想我在问题中可能提供了太多的细节、并以某种方式"稀释"了我最大的挑战、目的是提供一个更全面的背景来说明我要做的事情。

    我最大的挑战不是设置 DMA 通道或在传输完成后获取中断。

    我没有工作的是 、每次 PWM 周期结束时、PWM 模块都会请求将新值加载到 CMPA 比较寄存器中。

    这是我迄今为止尝试过的:

    /*启用 DMA */
    dmaEnable();

    dmaEnableInterrupt (DMA_CH0、BTC、DMA_INTA);/* DMA_CH0为最高优先级*/
    dmaReqAssign (DMA_CH0、42);/* PWM6 SOCA 中的 Ch 42 */

    在我已选中"Enable ADC SOCA"并将 SOCASEL 设置为"CTR_PRD"时。 我假设 SOCA 与编程手册"SCI4 Receive /"中所述的 SOCA 相同 ePWM6_SOCA / MIBSPI2[12]/MIBSPI4[12]/GIOB[2]"

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

    好的、我在这一点上陷入了僵局、没有得到社区的回答。

    我找到了一个我想分享的解决方案、以防其他人感兴趣:不要使用 PWM 和 DMA、而是使用 HET 和 HTU。