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.

[参考译文] TMS320F28035:在 HVPSFB_PCMC 中何时调用 CNTL_2P2Z?

Guru**** 2538960 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/773116/tms320f28035-when-is-the-cntl_2p2z-called-in-hvpsfb_pcmc

器件型号:TMS320F28035

大家好、

我正在与客户合作、以便在他们的 F28032平台上实现峰值电流模式控制。 因此 、您的工作 HVPSFB_PCMC 是我们的绝佳参考。

到目前为止、我们能够实现大部分功能、并且转换器可以在轻负载下工作。 但是、我们仍然不完全了解代码的工作原理。

在控制环路中、我们使用 DPL 库中的 CNTL_2P2Z 作为电压环路控制器。 指针用于将 CNTL_2P2Z 变量与转换器变量链接。

例如:

//外部电压环路的2P2Z 连接
CNTL_2P2Z_REF1 =&VfbSetSlewed;//转换电压命令
CNTL_2P2Z_Out1 =&Iref;//对电流环路的引用命令
CNTL_2P2Z_Fdbk1 =&Avg_Vout;//平均 FB O/P 电压反馈
CNTL_2P2Z_Coef1 =&CNTL_2P2Z_CoefStruct1.B2;//指向第一个系数。

但我的问题是:在链接变量后、如何调用2P2Z 补偿器并执行计算? 我没有看到有任何操作这么做。

感谢您的帮助!

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

    Weiqi、

    当 EPWM1根据 HVPSFB-Main.c 中第563行的设置触发其 ISR 时、就会调用编译器

    EALLOW;
    PieVectTable.EPWM1_INT =&DPL_ISR;//映射中断
    EDIS;
    PieCtrlRegs.PIEIER3.bit.INTx1 = 1;// PIE 电平启用、Grp3 / Int1
    EPwm1Regs.ETSEL.bit.INTSEL = et_CTR1.bit.INTn
    
    = 1;每个事件1 EPwRpA/INT.INTn = EPT.INTn 位/ INT.INTn = 1 EPwRT.INTn = ENTRL.INTn
    

    函数 DPL_ISR 位于 HVPSFB-DPL-ISR.asm 文件中。  由于这是 ISR 的一部分、因此您在源代码中看不到显式函数调用。

    如果您需要有关此问题的更多信息、请告诉我。

    最棒的

    Matthew

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

    很高兴通过 E2E 与您会面。
    是的、我们通常了解代码的工作原理。 我知道 DPL_ISR 由 EPWM1触发。
    但是、在 DPL_ISR 中、我只能看到与 EPWM 操作相关的代码、该操作为下一次 DPL_ISR 触发和开关 PWM 切换做好了准备。 但我看不到任何称为控制器的代码。

    在此.asm 中、您确实包含了 CNTL_2P2Z.asm。 剂量这意味着 CNTL_2P2Z.asm 将在 ISR 中执行?

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

    Weiqi、

    是的、最后一条语句是正确的;对 CNTL_2P2Z 汇编宏的调用位于 HVPSFB-DPL-ISR.asm 中的第544行、复制如下:

    .if (INCR_BUILD = 2)
    .ref_No_2p2z
    MOVWDP、#(_No_2p2z)
    MOVAL、@(_No_2p2z)
    CMPBAL、#0x1
    BEXIT_ISR、EQ;如果相等-系数正在更改-->不执行2P2Z
    
     CNTL_2P2Z电压控制器1 
    

    if 是编译时间指令、因此如果我们处于第2阶段构建、此段将仅作为最终代码的一部分。   

    最棒的

    Matthew

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

    这确实解决了我的问题。
    感谢您的回复!

    Brian