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.

[参考译文] TMS320F28069F:InstaSPIN 项目和实验室:Lab10a (过调制)和 Lab10c (带 fpu32的 Lab10a)。

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/889667/tms320f28069f-instaspin-projects-and-labs-lab10a-overmodulation-and-lab10c-lab10a-with-fpu32

器件型号:TMS320F28069F

您好!

我对 InstaSPIN 项目和实验室有疑问。

具体而言、它位于 Lab10a (过调制)和 Lab10c (带 fpu32的 Lab10a)上。

我发现 mainISR()在 Lab10a 和 Lab10c 之间有一些差异。

------------------------------------------------------------------

Lab10a 的 mainISR()中的代码片段如下:

 if (measurableShuntThisCycle > two_PHASE_measurable)
 {
     gAdcData.I.value[0]= gIavg.value[0];
     gAdcData.I.value[1]= gIavg.value[1];
     gAdcData.I.value[2]= gIavg.value[2];
 }

我对该代码片段的分析 如下:

(1) measableShuntThisCycle 的变量具有枚举的数据类型。  two_phase 可测量的常量等于2、而 all_phase 可测量的常量等于1。

(2)因此、除非 针对 高负载电流激活过调制、否则大多数情况下都不能执行上述代码片段。 在这里、 我的 PCB 具有三个低侧分流电流测量的配置。

 同时,Lab10c mainISR()中的代码片段如下:

 if (忽略 ShuntThisCycle > USE_ALL)
 {
     gAdcData.I.value[0]= gIavg.value[0];
     gAdcData.I.value[1]= gIavg.value[1];
     gAdcData.I.value[2]= gIavg.value[2];
 }

我对该代码片段的分析 如下:

(1) ignoreShuntThisCycle 的变量具有枚举的数据类型。   use_all 的常量等于0。

(2)因此、始终执行上面列出的代码片段。

----------------------------------------------------------------

请评论我对这些代码段的分析。

 为什么 Lab10a 和 Lab10c 使用与上述代码片段相关的不同 mainISR()函数?

感谢您的指导。

此致、

JS Yoo

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

    没错。 lab10a 使用了更新算法、但 lab10c 没有这样做。 如果要使用过调制函数、可以参阅 lab10a。

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

    罗燕明、您好!

    感谢您的指导。

    此问题已解决。

    使用平地机、

    JS Yoo