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.

CCS/TMS320F28379D: Soft starting LLC resonant converter

Part Number: TMS320F28379D
Other Parts Discussed in Thread: TIDM-1001

Tool/software: Code Composer Studio

Hi, everyone!

I need to perform the soft-start on LLC resonant converter, for this, I plan to initialize TBPRD with a value that corresponds to the desired start-up frequency (900 kHz) and gradually ramp it up to a steady-state operating frequency (400 kHz). I have written a code snippet for ramp-up operation, but I don't know from where and how to run Soft-start operation (In ADC ISR or State Machine ISR), as it has to been performed only once when the converter is powered up. Below is my code for TBPRD ramp-up operation (Period = TBPRD, MaxP = TBPRD max). Moreover, my ADC ISR is running at 80 kHz and I plan to run the state machine on Timer 0 (5ms Period). 

Period = Period +_IQ(0.001);
if(Period >= MaxP)
Period = MaxP;

Regards 

Abhinav

  • Hi Abhinav,

    I have a few thoughts on your question.

    The TIDM-1001 design has a soft-start function like this that you can reference if you want. The code is part of the latest Digital Power SDK.

    It's achieved using two variables: a reference value and a slewed value. The start-up sequence is as follows:

    1. The reference value and the slewed value are both initialized to 0.
    2. At start-up the period reference value is set to the desired operating point.
    3. A state machine task compares the reference value and the slewed value each time it is called.
      1. If the slewed value is less than the reference value, then the slewed value is incremented by a small amount.
      2. If the slewed value is equal to the reference value, then a flag variable can be set to indicate that the start-up is complete.
    4. The slewed value is used in the ADC / Control ISR to update the PWMs.

    Putting the start-up function in a conditional statement that tests whether the startup is complete will ensure that it only happens once.

    For example,

    if(startup_complete == 0)
    {
       if(PeriodRef <= PeriodSlewed)
       {
          startup_complete = 1;
       }
       else
       {
           // Slewing function that increments the PeriodSlewed value can go here
       }
    }

    Including the ramp function in the state machine task will use less CPU cycles because it is executed less often. If you include any of the code in the ADC function it will be executed at the rate of that ISR and use more cycles overall. However, you could choose to include it in either place.

    Let me know if that helps.

    Best,

    Clayton Greenbaum

  • Hey ! Thanks for this Insight, I uses this code snippet  as the endpoint of soft-start and ran it from the state machine by calling a state: soft-start from adc Isr.  Here is a snap from the state machine Isr, where I defined a soft-start state and updated Period and Duty registers

    Best 

    Abhinav Soni