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.

[参考译文] TIDM-02013:TIDM-02013

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1473851/tidm-02013-tidm-02013

器件型号:TIDM-02013
主题中讨论的其他器件:PMP22650C2000WARESFRA、

工具与软件:

您好!

我们正在对未来项目的 PMP22650参考设计进行评估。

我们已构建了一个电路板、并正在测试基于 TMS320F28003x 微控制器的应用。 我们将使用的基本工程来自 C2000Ware DigitalPower SDK (5.04.00.00)中提供的 TIDM_02013解决方案。

我们已经开始了 CLLLC 实验、我们成功完成了第一个与控制器板的 PWM 控制相关的实验。

现在我们进入实验2、我们需要在其中使用 SFRA 应用来表征受控体和系统的开环参数。

在这里、我们遇到固件问题。 当我们启动 SFRA 应用时、频率扫描永不停止、因此我们认为电路板应用肯定有问题、因为我们必须进行一些更改才能使其正常工作。

引入了代码更改、以使示例正常工作:

  • obc_7_4kw_user_settings.h:
    • 更新定义、以在 CLLC 中启用 SFRA。
```μ A
#define OBC_7_4KW_RUN_SFRA_ON_PFC 0
#define OBC_7_4KW_RUN_SFRA_ON_CLLLC 1.
```μ A
  • clllc_settings.h:  
    • 将旧电路板中的定义 CLLLC_SFRA_allowed 定义`OBC_6_6KW_RUN_SFRA_ON_CLLLC`更新为正确的定义`OBC_7_4KW_RUN_SFRA_ON_CLLLC`、  
    • 将实验定义更新为实验2。

```μ A

//
//在 CLLLC 上运行的 SFRA
//
#define CLLLC_SFRA_allowed OBC_7_4KW_RUN_SFRA_ON_CLLLC

...

#define CLLLC_lab 2.

```μ A
  • clllc_user_settings.h:  
    • 将外设时钟频率从`50000000'更新为`30000000'、这是以正确的波特率传输 SCI 数据所必需的。

```μ A

#define CLLLC_SCI_VBUS_CLK 30000000
```μ A
  • ttplpfc_settings.h:
    • 这不会产生任何影响、但我们已将 PFC 实验设置为1、因为我们在初级侧使用直流输入。

```μ A

#define TTPLPFC_lab 1
```μ A

流程来运行该实验:

  1. 从 CCS 开始调试。
  2. 当应用程序在 main 中停止时:
    1. 激活实时模式
    2. 启动 js 脚本以激活变量、从而监控 clllc lab2
    3. 对初级侧施加电压(10V)。
  3. 启动应用程序。
  4. 通过在"CLLLC_clearTrip"变量中写入1来禁用修整。
  5. 此时、我们可以观察所需频率(500kHz)下的控制 PWM 开关。
  6. 此时、我们启动 SFRA 应用程序、我们可以连接到电路板(已连接的指示灯变为绿色)。
  7. 应用程序会启动扫描并且不会更改其状态(测试5小时)。

有没有我们遗漏的东西?
我们使用的固件与文档中的实验室相同?


感谢你的帮助。

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

    以了解有关此主题的更多详细信息。

    我已经捕获了 SFRA 应用程序和电路板之间的命令交换:

    MCU->GUI

    GUI->MCU

    根据源代码、命令交换如下所示:

    1. cmd_00:脉冲、有效载荷2、LED 切换
    2. cmd_04;get_var、读取 var 组1、sfra_status。 value 1。
    3. cmd_04;get_var、读取 var 组2、sfra_frequency_index。 值0。

    在整个通信过程中重复此命令序列、不更新频率索引。

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

    尊敬的 Sebastian:

    请接受我们对延迟答复的道歉。

    您能否分享以下详细信息、以便更好地了解根本原因。

    1.变频器的额定功率

    2、输入输出电压范围和额定电压

    3.分享 SFRA 图的屏幕截图

    谢谢

    Srikanth

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

    感谢您的答复。

    为提供测试的一些背景信息、这是测试图。

    1.我们构建的电路板与参考设计(PMP22650)相同。 它应提供7.4kW 的功率。
    2.目前我们没有在板上安装耗散器,所以我们的测试值非常低。 目前、我们将连接 DCLink 电源轨中的12V (限制为2A)和50欧姆的负载。
    3.这是 SFRA 的输出:

    关于我的几个问题:
    -是否可以在没有负载的情况下运行 SFRA ?
    -是否可以直接在控制器板上运行 SFRA 而不使用所有电力电子设备的底座? 这将有助于我们验证控制 SFRA 的软件是否在工作、即使结果不正确也是如此。

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

    一个问题、

    我在论坛上读到、SFRA 代码只能在 C28内核中执行、但是我注意到函数"SFRA_F32_Inject"和"SFRA_F32_Collect"在开环函数中执行、这是在 CLA 内核中执行的。

    这可能是问题吗?

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

    尊敬的 Sebastian:

    是的、您只能在不带电源转换器的控制器板上运行它。 尽管它可能没有提供准确的 SFRA 数据、但它可以确保 SFRA 是否正常工作。

    您是否还可以 在运行 Ware_Digital 时查看是否可以在 GUI 文件夹(C:\ti\c2000\C2000 SDK_451_SDK_5_02_00_00\libraries\sfra\GUI)中看到任何.csv 文件?

    此外、您是否曾尝试以 SCI CLK 和 Buad 速率的原始设置运行它?

    谢谢

    Srikanth

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

    您能否分享显示 SFRA 正在从 CLA 运行的任意代码行的快照?

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

    -我使用的是最新的 SDK 版本(5_04 ),而不是5_02。
    - SFRA 不会在 GUI 应用程序的同一根文件夹中生成 csv。
    - SCI 接口的波特率是正确的(57600),正如你可以在我的证明, MCU 和 PC 之间的通信正在发生。
    -我运行的代码与项目中的示例相同
     用于参考设计 TIDM-02013的 DigitalPower <SDK>、Project SDM\solutions\tidm_02013\f28003x。 在 CLA 中执行的代码如下:

    //
    //后台任务
    //
    __attribute__(( interrupt ("background"))) void Cla1BackgroundTask ( void )
      #if (CLA_DEBUG = 1)
        ___ mdebugstop();
      #endif

        CLLLC_HAL_setProfilingGPIO2 ();


      #if CLLLC_ISR2_RUNNING_ON == CLA_CORE
      #if (CLLLC_LAB == 1 || CLLLC_LAB == 2)
        clllc_runOpenLoop ();
      #elif (CLLLC_LAB == 3)
        clllc_runVoltageLoop ();
      #elif (CLLLC_LAB == 4)
      #warning "CLLLC 电流环路尚未验证"
        clllc_runCurrentLoop ();
      #else
      #warning "undefined CLLLC lab"
      #endif
      #endif


        CLLLC_HAL_resetProfilingGPIO2 ();

      #if (CLA_DEBUG = 1)
        ___ mdebugstop();
      #endif
    }

    在"CLLLC_runOpenLoop"内、TOY 将在确定 SFRA 代码时发出以下警告(//警告:SFRA 代码仅在 C28x 内核中有效!!):

    #pragma FUNC_ALWAYS_INLINE (CLLLC_runOpenLoop)
    静态内联 void CLLLC_runOpenLoop (void)
      CLLLC_readSensedSignalsPrimToSecPowerFlow();
      clllc_clearPWMTrip ();
      clllc_modeDetect();
      CLLLC_setCommutatorLC (CLLLC_enableLC);

      //
      //如果 ref 命令有变化、则设置 GPIO
      //
      if (CLLLC_pwmPeriod_pu!= CLLLC_pwmPeriodRef_pu ||
        CLLLC_pwmDutyPrim_pu!= CLLLC_pwmDutyPrimRef_pu ||
        CLLLC_pwmPhaseShiftPrimSec_ns!= CLLLC_pwmPhaseShiftPrimSecRef_ns ||
        CLLLC_pwmPhaseShiftPrimLegs_pu!= CLLLC_pwmPhaseShiftPrimLegsRef_pu)
      {
        CLLLC_HAL_setFreqStepChange ();
      }

      //
      //将 Ref 值写入活动值
      //
    #if (CLLLC_SFRA_TYPE!= CLLLC_SFRA_DISABLED)
      //警告:SFRA 代码仅在 C28x 内核中有效!!
      CLLLC_pwmPeriod_pu = CLLLC_SFRA_Injection (CLLLC_pwmPeriodRef_pu);<----------- 很好
    #else
      CLLLC_pwmPeriod_pu = CLLLC_pwmPeriodRef_pu;
    #endif

      CLLLC_calculatePWMDutyPeriodPhaseShiftTicks_primToSecPowerFlow ();

    #if (CLLLC_SFRA_TYPE = CLLLC_SFRA_VOLTAGE)
      //警告:SFRA 代码仅在 C28x 内核中有效!!
      CLLLC_SFRA_COLLECT (&CLLLC_pwmPeriod_pu、&CLLLC_vSecSensed_pu);<----------- 很好
    #elif (CLLLC_SFRA_TYPE = CLLLC_SFRA_CURRENT)
      CLLLC_SFRA_COLLECT (&CLLLC_pwmPeriod_pu、&CLLLC_iSecSensed_pu);
    #endif

      CLLLC_HAL_setupISR1Trigger (CLLLC_pwmFrequencoclica Prev_Hz);
      clllc_pwmFrequencencencencoclc Prev_Hz = clllc_pwm Frequency_Hz;

      CLLLC_HAL_resetFreqStepChange ();


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

    尊敬的 Sebastian:

    您是否尝试过仅连接 MCU 板了。 通过设置 #define CLLLC_PROTECTION CLLLC_PROTECTION_DISABLED、确保禁用 CLLLC 保护。

    您能告诉我们您找到了什么吗?

    谢谢

    Srikanth

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

    尊敬的 Srikanth:

    我已经在实验配置中测试了如何禁用 CLLLC 保护、但这不会影响在 CLA 中运行的 SFRA 行为。 扫描条仍然会卡住、但没有继续。 我认为该定义与修整源有关。 此功能似乎工作正常。

    我已经测试过、SFRA 代码在 CLA 内核运行时不起作用、但在 C28x 内核运行时可以起作用。

    我现在的问题是这种行为是否正确。 如果是、我建议将此信息包含在设计文档中、因为没有提及此信息。

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

    尊敬的 Sebastian:

    感谢您的观看。 我将再次检查并尽快与您确认。 这可以与我们分享您如何将 SFRA 代码从 CLA 更改为 C28x。 您能否使用文件名共享快照。

    谢谢

    Srikanth

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

    感谢 Srikanth、

    SFRA 函数在控制环路中执行。 在 TIDM-02013中、您可以根据文件"clllc_settings.h"中的定义选择在何处执行此代码。

    以下示例说明了我如何修改 LAB2选项以在 C28x 中(而不是 CLA 中)运行循环:

    #if CLLLC_LAB == 2.
    //#define CLLLC_CONTROL_RUNNING_ON CLA_CORE <--原始行
    #define CLLLC_CONTROL_RUNNING_ON C28x_CORE <-- my change.
    #define CLLLC_POWER_FLOW CLLLC_POWER_FLOW_PRIM_SEC
    #define CLLLC_INCR_BUILD CLLLC_OPEN_LOOP_BUILD
    #define CLLLC_TEST_SETUP CLLLC_TEST_SETUP_RES_LOAD
    #define CLLLC_PROTECTION CLLLC_PROTECTION_ENABLED

    #if CLLLC_SFRA_allowed == 1.
    #define CLLLC_SFRA_TYPE CLLLC_SFRA_VOLTAGE
    #else
    #define CLLLC_SFRA_TYPE CLLLC_SFRA_DISABLED
    #endif

    #define CLLLC_SFRA_AMPLITUDE (float32_t) CLLLC_SFRA_INJING_AMPLITY_LEVEL2
    #endif

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

    尊敬的 Sebastian:

    感谢您的分享。 我已经向我们的 SFRA 专家确认了这一点。 是的、SFRA 不能从 CLA 运行。 您是否能够从 C28x 内核运行 SFRA。 运行是否正常?

    谢谢

    Srikanth

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

    尊敬的 Srikanth:

    在修复了串行驱动程序中与此过程的最后阶段(RETRIVING 数据)相关的一些问题后、我设法从工具中获取波特图。

    如果有人遇到同样的问题、我修改了"SFRA_GUI_sendData"函数、以相同的传输方式发送数据字、而不是逐字节发送数据字。

    我对 SFRA 的实施有任何疑问。

    感谢您的支持。

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

    尊敬的 Sebastian:

    只是为了确认、你是否修复过它以便在 CLA 上运行 SFRA?

    谢谢

    Srikanth

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

    尊敬的 Srikanth:

    遗憾的是不可以 此修复是检索由 C28x 内核上运行的 SFRA 代码生成的数据所必需的。

    此致。

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

    尊敬的 Sebastian:

    感谢您的通知。 我们来看看。

    谢谢

    Srikanth