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.

[参考译文] TIDA-010062:为什么以及如何使用 LLC_updateDeadband ()?

Guru**** 2604225 points


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

https://e2e.ti.com/support/tools/simulation-hardware-system-design-tools-group/sim-hw-system-design/f/simulation-hardware-system-design-tools-forum/1356220/tida-010062-why-and-how-to-use-llc_updatedeadband

器件型号:TIDA-010062
主题中讨论的其他器件:C2000WARE

尊敬的香槟:

我是为我们的客户提出这个问题的。

在  

C:\ti\c2000_c2000_SDK_5_01_00_00\solutions\TIDA_010062\source\LLC\source\LLC.c Ware_Digital、下面存在函数"LLC_updateDeadband (void)"。

Question:

1.这个函数的目的是什么? 是否仅用于根据次级电流更新死区值? 是为了提高功效还是为了获得更好的瞬态响应、或者二者兼而有之?

2.在下面不同情况下的死区设置似乎是一样的。 它们为什么相同? 如果是、为什么需要此功能?

3.有5个电流范围。 你如何决定这一点?

//
// Update the deadband values based on the secondary current. There are 5
// current ranges (numbers 0 through 4) with corresponding values for the
// PWM dead-band, this ensures ZVS across loads.
//
void LLC_updateDeadband(void)
{
    static uint16_t range = 0;

    switch(range)    // Update dead-time based on secondary current
    {
        //
        // Range 0
        //
        case 0:
            if(LLC_iSec_Amps < LLC_DEADBAND_RANGE0_UPPER_THRESHOLD)
            {
                LLC_PWMDbRedPri = LLC_DEADBAND_RANGE0_DBRED_PRI;
                LLC_PWMDbFedPri = LLC_DEADBAND_RANGE0_DBFED_PRI;
                range = 0;
            }
            else
                range = 1;
            break;

        //
        // Range 1
        //
        case 1:
            if(LLC_iSec_Amps > LLC_DEADBAND_RANGE1_LOWER_THRESHOLD
                    && LLC_iSec_Amps < LLC_DEADBAND_RANGE1_UPPER_THRESHOLD)
            {
                LLC_PWMDbRedPri = LLC_DEADBAND_RANGE1_DBRED_PRI;
                LLC_PWMDbFedPri = LLC_DEADBAND_RANGE1_DBFED_PRI;
                range = 1;
            }
            else
            {
                if(LLC_iSec_Amps >= LLC_DEADBAND_RANGE1_UPPER_THRESHOLD)
                    range = 2;
                else
                    range = 0;
            }
            break;

        //
        // Range 2
        //
        case 2:
            if(LLC_iSec_Amps > LLC_DEADBAND_RANGE2_LOWER_THRESHOLD
                    && LLC_iSec_Amps < LLC_DEADBAND_RANGE2_UPPER_THRESHOLD)
            {
                LLC_PWMDbRedPri = LLC_DEADBAND_RANGE2_DBRED_PRI;
                LLC_PWMDbFedPri = LLC_DEADBAND_RANGE2_DBFED_PRI;
                range = 2;
            }
            else
            {
                if(LLC_iSec_Amps >= LLC_DEADBAND_RANGE2_UPPER_THRESHOLD)
                    range = 3;
                else
                    range = 0;
            }
            break;

        //
        // Range 3
        //
        case 3:
            if(LLC_iSec_Amps > LLC_DEADBAND_RANGE3_LOWER_THRESHOLD
                    && LLC_iSec_Amps < LLC_DEADBAND_RANGE3_UPPER_THRESHOLD)
            {
                LLC_PWMDbRedPri = LLC_DEADBAND_RANGE3_DBRED_PRI;
                LLC_PWMDbFedPri = LLC_DEADBAND_RANGE3_DBFED_PRI;
                range = 3;
            }
            else
            {
                if(LLC_iSec_Amps >= LLC_DEADBAND_RANGE3_UPPER_THRESHOLD)
                    range = 4;
                else
                    range = 0;
            }
            break;

        //
        // Range 4
        //
        case 4:
            if(LLC_iSec_Amps > LLC_DEADBAND_RANGE4_LOWER_THRESHOLD
                    && LLC_iSec_Amps < LLC_DEADBAND_RANGE4_UPPER_THRESHOLD)
            {
                LLC_PWMDbRedPri = LLC_DEADBAND_RANGE4_DBRED_PRI;
                LLC_PWMDbFedPri = LLC_DEADBAND_RANGE4_DBFED_PRI;
                range = 4;
            }
            else
            {
                if(LLC_iSec_Amps >= LLC_DEADBAND_RANGE4_UPPER_THRESHOLD)
                    range = 5;
                else
                    range = 0;
            }
            break;


        //
        // Range 5
        //
        case 5:
            if(LLC_iSec_Amps > LLC_DEADBAND_RANGE5_LOWER_THRESHOLD)
            {
                LLC_PWMDbRedPri = LLC_DEADBAND_RANGE5_DBRED_PRI;
                LLC_PWMDbFedPri = LLC_DEADBAND_RANGE5_DBFED_PRI;
                range = 5;
            }
            else
                range = 0;
            break;
        default:
            range = 0;
            break;
    }
}

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

    韦恩、您好!

    此函数用于通过负载在线调整死区时间、以获得更高的效率。  

    这5个范围内的死区时间应不同、并且当负载电流 较大时、死区时间应更短。  但是、 代码是在以后被修改的、也许他不 关心效率。

    5个量程设置、因为在我的设计中仅测试了5个负载条件。