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.

[参考译文] MSPM0L1304:采用 PWM 概念的 MSPM0 DMA

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1249463/mspm0l1304-mspm0-dma-with-pwm-concept

器件型号:MSPM0L1304

您好!  

我的客户正在使用 DMA 设置 PWM 的占空比。

它需要3通道 PWM、而这需要3通道 DMA。

但是、MSPM0仅支持1个全功能通道(DMA0)、支持重复传输模式。

要将 DMA 用于 PWM 占空比设置、需要重复传输模式。

因此、客户希望使用三 PWM 占空比寄存器来交替使用 DMA0通道。

DMA0的目标地址按照 PWM0、PWM1、PWM2、PWM0的顺序重复旋转。

在设置 DMA 时、他会尝试执行以下代码。

  

重复下面的例程。

{

//为 PWM0配置 DMA

禁用 DMA

DMA 设置

DL_DMA_setDestAddr (DMA、DMA_CH0_CHAN_ID、PWM_0Ch_Duty_reg_addr)

启用 DMA

//为 PWM1配置 DMA  

禁用 DMA

DMA 设置

DL_DMA_setDestAddr (DMA、DMA_CH0_CHAN_ID、PWM_1CH_DUTY_REG_addr)

启用 DMA

//为 PWM2配置 DMA  

禁用 DMA

DMA 设置

DL_DMA_setDestAddr (DMA、DMA_CH0_CHAN_ID、PWM_2CH_DUTY_REG_addr)

启用 DMA

这个概念是可行的吗?

 这个概念会增加 CPU 负担吗?

谢谢。  

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

    您好、SY、

    [quote userid="445856" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1249463/mspm0l1304-mspm0-dma-with-pwm-concept 是否可以实现这一概念?

    是的、可行。 确保最后一次 DMA 已传输、然后开始下一次 DMA 传输。

    然而、当你设置 DMA 目标时、它将增加 CPU 负载、直接设定 PWM CC 值似乎没有优势。 它也只有一个简单代码。

    B.R.

    萨尔

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

    大家好、Sal Ye、  

    我的客户希望按如下方式更改每个 PWM 周期的占空比。

    它将增加在每个 PWM 周期产生中断以改变占空比的负担。

    所以、他使用 DMA。  

    他需要将3个通道 DMA 用于3个 PWM 通道、但 MSPM0L1304不支持具有重复传输的3通道 DMA。

    只有1个通道支持重复传输。

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

    您好、SY、

    是的、DMA 无法满足客户要求。

    需要重复才能使用单个 DMA 传输、这可能比中断花费更大的 CPU 负担。

    B.R.

    萨尔