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 用于新项目、我想知道使用两个内核的最佳方法、但我不确定如何继续。
我需要进行两种计算:
通常(对于 Piccolo 器件)、我会使用 CPU 进行监控/通信、并使用 CLA 进行控制。 但是、我的控制环路太多、因此 CLA1不足以执行所有计算。 因此、我希望使用 CLA2。
起初、我想将 CLA2用于管理某些 ePWM 模块的控制环路、但在该项目中、仅使用具有 HRPWM 的 ePWM。 只有内核1可以使用 HRPWM、因此 CLA2不能自行更新 ePWM+HRPWM 寄存器。
因此、必须使用 CPU2来执行传输。 我已经计划将其用于其他用途、但也是如此。 例如、我可以在每个 CLA2任务之后为一个小中断腾出空间、以便将结果从 LSRAM 复制到 GSRAM。
现在、我需要将结果从 GSRAM 传输到 CLA1、以便它可以使用它们更新 ePWM+HRPWM 寄存器。
因此、CPU1必须用于执行额外的传输。 CPU1已经很忙、但它必须执行的最小操作是将值从 GSRAM 传输到 LSRAM 并让 CLA1执行实际的 EPWM+HRPWM 寄存器写入。 这些传输必须及时执行、否则控制环路的稳定性将降低。 因此、我必须在 CPU1上创建多个中断空间。
现在的问题是、必须不时调用具有不间断 RPT 指令的 SFO ()函数、并且它会延迟 CPU1上的中断。 采样频率和调制方案使得我无法在新 ADC 采样可用和写入相应 ePWM 模块的新寄存器值之间等待超过300ns 的时间。
是否有任何方法可以满足所有这些要求?
显然、如果 CLA1和 CLA2有任何方法可以直接共享数据、或者如果 HRPWM 可以从内核#2中使用、则会更简单。 如果没有这些选项、拥有双核 DSP 将变得比最初看起来更不有用。
提前感谢、
皮埃尔
您好、Pierre、
感谢您对问题的详细解释并为架构提供了良好的输入。 遗憾的是、在这种情况下、您必须使用 CPU1将数据从 GSRAM 传输到 LSRAM、因此需要在 CPU1上释放一些 MIPS。 您可以检查是否可以将某些任务卸载到 CPU2 (SFO ()除外)。 我们 在下一个器件上提供 CLA 和 DMA 之间的 MSG RAM、但在这个器 件上、您可以使用 CPU 在 CLA 之间传递数据/信息。
此致、
Vivek Singh
皮埃尔
[引述]我希望此类信息会在某种程度上属于 NDA、但如果有人可以联系我了解更多信息、请告诉我。 [/报价]
我建议您就此联系您所在地区的当地 FAE。 他们将能够指导您通过适当的渠道获取所需的信息。
此致、
Vivek Singh