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.

TMS320F280039C: TIDA-010062参考设计LLC的EPWM配置疑问

Part Number: TMS320F280039C
Other Parts Discussed in Thread: TIDA-010062, SFRA, C2000WARE

各位专家好!

关于TIDA-010062(基于F28003x)参考设计LLC的EPWM配置,有些问题要请教下:

1、函数void LLC_HAL_setupPWM(void)中调用了LLC_HAL_setupPWM_upDownCount函数,该函数配置了EPWM1和EPWM2,对于其中的周期值配置有些不理解,如下:

EPWM_setTimeBasePeriod(base, LLC_PERIOD_INIT_TICKS / 2);

#define LLC_PERIOD_INIT_TICKS   (uint32_t)286

按照EPWM的时钟配置为120MHz,这个EPWM的开关频率是不是太高了?

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//
// LLC_HAL_setupPWM() - configures the primary and secondary switching
// for the LLC converter.
//
void LLC_HAL_setupPWM(void)
{
//
// Configure primary switching for LLC stage - PH1, PRI
// Configure synchronous rectification - PH1, SEC
// Set the PWMs in a disabled state
//
LLC_HAL_setupPWM_upDownCount(LLC_PRI_PWM_BASE,
EPWM_SYNC_IN_PULSE_SRC_DISABLE,
1,
LLC_PERIOD_INIT_TICKS / 2 - 1,//CMPB = (286/2) -1
LLC_DBRED_PRI_INIT,
LLC_DBFED_PRI_INIT);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

2、关于EPWM1和EPWM2的驱动波形不是很理解,比如初级侧的驱动设置代码,能给个大概的驱动波形吗?特别是CTR值的变化和波形的关系。

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//
// === Action Qualifier SubModule - PH1, PRI === //
//
// EPWMA low on CTR = 0
// EPWMA high on CTR = CMPA, in up-count mode
// EPWMA low on CTR = PRD
//
// EPWMB AQ output is inverted by DB for RED on EPWMB output
// EPWMB high on CTR = 0
// EPWMB high on CTR = PRD
// EPWMB low on CTR = CMPB, in down-count mode
//
EPWM_setActionQualifierAction(LLC_PRI_PWM_BASE, EPWM_AQ_OUTPUT_A,
EPWM_AQ_OUTPUT_LOW,
EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
EPWM_setActionQualifierAction(LLC_PRI_PWM_BASE, EPWM_AQ_OUTPUT_A,
EPWM_AQ_OUTPUT_HIGH,
EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction(LLC_PRI_PWM_BASE, EPWM_AQ_OUTPUT_A,
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 另外关于板级保护函数中的关于比较器的正极输入源配置也有些困惑,根据函数void LLC_HAL_setupBoardProtection()的配置源,如以下几行代码所示:

    ASysCtl_selectCMPHPMux(ASYSCTL_CMPHPMUX_SELECT_1, 0x2);//A6
    ASysCtl_selectCMPLPMux(ASYSCTL_CMPLPMUX_SELECT_1, 0x0);//B6
    ASysCtl_selectCMPHPMux(ASYSCTL_CMPHPMUX_SELECT_4, 0x3);//B8

    按理说对应的ADC通道应该是ADC_CH_ADCIN6,ADC_CH_ADCIN6,ADC_CH_ADCIN8,但是在函数void LLC_HAL_setupADC()中的如下代码中:

    //
    // SOC configuration, sample all values on EPWM SOCA
    //

    ADC_setupSOC(LLC_ADCCTLBASE_ISEC, LLC_ADCSOC_ISEC, ADC_TRIGGER_EPWM2_SOCA,
    LLC_ADCIN_ISEC, 8);


    ADC_setupSOC(LLC_ADCCTLBASE_IPRIRESO,
    LLC_ADCSOC_IPRIRESO, ADC_TRIGGER_EPWM2_SOCA,
    LLC_ADCIN_IPRIRESO, 8);


    ADC_setupSOC(LLC_ADCCTLBASE_VSEC, LLC_ADCSOC_VSEC, ADC_TRIGGER_EPWM2_SOCA,
    LLC_ADCIN_VSEC, 8);

    用到的ADC通道定义如下:

    #define LLC_ADCIN_ISEC ADC_CH_ADCIN5
    #define LLC_ADCIN_IPRIRESO ADC_CH_ADCIN9
    #define LLC_ADCIN_VSEC ADC_CH_ADCIN10

    这几个宏定义的通道是5,9,10,和需要的6, 6,8对应不上,这个地方是我理解错误吗?

    我看了基于004x系列的LLC程序,ADC通道配置是正确的。

    我在数据手册上找到了程序中要用到的比较器正端输入,如下图所示:

  • 您好

    您的问题正在为您处理中,请耐心等待。

  • 好的,谢谢!

  • 尊敬的TI各位专家你们好!

    还有几个问题要请教下:

    基于F28003x系列的LLC程序,LLC的功率级传递函数推导方式是什么?有使用Extended Describing Function吗?数字补偿器2P2Z的系数计算使用MATLAB还是用SFRA+compensation designer得到的?我有办法来验证这些系数的计算结果吗?谢谢了!

  • 你好!请问下我的问题有结果了没有?谢谢!

  • 您好

    正在为您处理中,需要时间复现验证,尽快给您回复,请耐心等待。

  • 好的,谢谢了!

  • 专家您好!

    我们正在使用你们的TMS320F280034SPM做数字电源开发(PFC+LLC),希望能尽快得到相关技术支持回复,谢谢了!

  • 您好

    1.设置频率背后的简单原因是在开始时太高、因为在实验1:开环中、在启动期间、我们要通过设置转换器增益非常低的方式、将周期设置为最小值、以最低输出启动转换器。 为了获得更低的增益、我们始终希望在高于谐振频率的条件下运行 LLC、即在谐振回路的电感区域中。 然后将频率缓慢移向谐振频率以增加增益来斜升输出电压。 您可以在"llc.c"文件中的 LLC_systemStartUp()函数中看到此标幺值是如何统一的。

    2.有关波形、请参阅以下说明和 C2000 Academy 以及 ePWM 视频、了解相对于计数器值的 PWM 波形。

    https://dev.ti.com/tirex/explore/node?node=A__AaKBh5Iw4k3VWS3akgXWzA__C28X-ACADEMY__1sbHxUB__LATEST

    https://www.ti.com/video/series/C2000-enhanced-pulse-width-modulator.html

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //
    // === Action Qualifier SubModule - PH1, PRI === //
    //
    // EPWMA low on CTR = 0
    // EPWMA high on CTR = CMPA, in up-count mode
    // EPWMA low on CTR = PRD
    //
    // EPWMB AQ output is inverted by DB for RED on EPWMB output
    // EPWMB high on CTR = 0
    // EPWMB high on CTR = PRD
    // EPWMB low on CTR = CMPB, in down-count mode
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    3.请忽略注释正确的配置代码

    4.对于补偿器问题,使用2p2z 补偿器。 请参阅"llc.h"中的实现。 我们使用 SFRA 库和 GUI (www.ti.com/.../SFRA)来获取波特图、这些波特图生成用于补偿器调试器 GUI (www.ti.com/.../COMPENSATION_DESIGNER)的 Excel 文件、以查看受控体、补偿器和开环响应、从而调整获取可放置在 setting.h 中的系数的补偿器。请参阅此培训视频和相关资源:www.ti.com/.../4059874181001

    这些生态系统是 C2000_LaunchPad_ Ware_Digital SDK 的一部分、可在以下安装目录中找到:

    ...\ti\c2000\C2000Ware_DigitalPower_SDK_5_04_00_00\libraries\sfra\gui

  • 您好!非常感谢您抽空进行回复,最近看了一些LLC转换器的原理,对于第1个问题的解释我大致明白了。主要问题是:对于您的回复中一些图片我这里看不到,特别是第3个问题,不知道是什么原因?

  • 1.设置频率背后的简单原因是在开始时太高、因为在实验1:开环中、在启动期间、我们要通过设置转换器增益非常低的方式、将周期设置为最小值、以最低输出启动转换器。 为了获得更低的增益、我们始终希望在高于谐振频率的条件下运行 LLC、即在谐振回路的电感区域中。 然后将频率缓慢移向谐振频率以增加增益来斜升输出电压。 您可以在"llc.c"文件中的 LLC_systemStartUp()函数中看到此标幺值是如何统一的。

    3.请忽略注释正确的配置代码

    ...\ti\c2000\C2000Ware_DigitalPower_SDK_5_04_00_00\libraries\sfra\gui

  • 感谢!

  • 还想请教一下:那这几个宏定义是正确的?
    #define LLC_ADCIN_ISEC ADC_CH_ADCIN5
    #define LLC_ADCIN_IPRIRESO ADC_CH_ADCIN9
    #define LLC_ADCIN_VSEC ADC_CH_ADCIN10

  • 您好

    是的、这些宏是正确的。 请忽略保护部分中的注释、否则会显示。

  • 谢谢啦!