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_EX_DSP Shared_Periph_示例输出

Guru**** 2482105 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1457155/tms320f28379d-dma_ex_shared_periph_-example-output

器件型号:TMS320F28379D

工具与软件:

大家好、团队成员:

我尝试帮助客户了解如何在 CPU1和 CPU2之间使用共享外设 ePWM。 我使用 CCS 20.0.0运行示例 dma_ex1_shared_Periph。  

1) 1)我不确定加载程序的顺序?

我已经启动了无工程调试、并连接到 C28xx_CPU2并加载了 dma_ex1_shared_periph_cpu2.out

我已将 dma_ex1_shared_periph_cpu1.out 加载到 C28xx_CPU1

但是、我获得的输出只有一个恒定的 ePWM 输出、如下所示:

2) 2)此外、哪个 CPU 控制将新 CMpValue 加载到 ePWM 中?  

我找不到调用该变量的 EPWM_setCounterCompareValue。

感谢团队!

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

    其他问题、ePWM 是否可以由 CPU2设置并通过 CPU1生成中断?  

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

    您好!

    我们有关此主题的专家将于下周离职。 请预计响应会延迟。 不过、请允许我提供一些初步的答案。  

    Jason.h 说:
    1)我不确定加载程序的顺序是什么?

    通常建议先使用 CPU1、然后使用 CPU2。

    Jason.h 说:
    2)此外、哪个 CPU 控制将 newCMpValue 加载到 ePWM 中?  [报价]

    在系统控制寄存器中、将有一个选项、用于将每个 EPWM 模块的所有权分配给特定的 CPU。 无论哪个 CPU "拥有"ePWM 模块、都将能够写入该 ePWM 模块的寄存器。

    此致、

    Ben Collier

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

    尊敬的 Nishka:  

    您还有其他问题吗?

    此致、

    Ozino

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

    尊敬的 Ozino 和 Ben:

    感谢您的答复:)

    主要问题是能否通过 CPU2设置 ePWM 并通过 CPU1生成中断?  

     

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

    尊敬的 Nishka:

    2.) 在此示例中、CPU1的 DMA 为 其拥有的 PWM 更新 ePWM1 CMPA 值。

    在 CPU2的 CPU 计时器 ISR 中设置 newCMpValue。 在计时器 ISR 例程中、SPI 传输将设置 DMA 触发器、由 CPU2完成。

    CPU1上的 setupDMA 例程将 newCMP1设置为 srcAddress、将 EPWM1 CMPA 设置为目标地址。 因此、每次触发 DMA 时、它都会将新 CMP1加载到  EPWM1 CMPA 寄存器中。 应该注意的是、newCMpValue 被分配给两个 CPU 都可以访问的 SHARERAMGS2 DATA_SECTION。

    关于中断、可以通过添加预定义符号 USE_DMA_INTERRUPT、在示例中启用 CPU 1 DMA 中断。

    此致、

    Ozino