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/UCD3138: UCD3138HSFBEVM-029: DAC ramp start

Part Number: UCD3138

Tool/software: Code Composer Studio

Hello,  I was recently learning the UCD3138HSFBEVM_029 demo board, and can't understand the "DAC ramp " functions depply.

 I read the code:

inline void handle_vout_prebias_state(void)
{
vout = adc_values.Vout;
vdac_prebias = vout * 6.15; //6.26 is scaler from ADC to DAC

if(vdac_prebias > pmbus_dcdc_config_translated[0].vout_cmd)
{
vdac_prebias = pmbus_dcdc_config_translated[0].vout_cmd;
}

FeCtrl0Regs.EADCDAC.bit.DAC_VALUE = vdac_prebias;

vout = adc_values.Vout * 6; // output scaler's voltage //scaler of vout = 0.101 (9.901) //6.29 = vout*2.5*9.901/4096 and 10 bits left shift
vin = (vin_eadc_sns * 30); // input scaler's voltage, multiplied by Vin sensed scaler
duty_prebias = (unsigned int)((((Uint64) vout) << 22) /(Uint64)vin); // duty * full scaler 10 bits + 8 bits
preset_filter0(duty_prebias);
FeCtrl0Regs.RAMPCTRL.bit.FIRMWARE_START = 1;

MiscAnalogRegs.GLBIOEN.all &= 0xFFFFFF00; // Set to PWM mode and enable DPWM
Filter0Regs.FILTERCTRL.bit.USE_CPU_SAMPLE =0;
Filter1Regs.FILTERCTRL.bit.USE_CPU_SAMPLE =0;

supply_state = STATE_RAMP_UP;
}

inline void handle_vout_ramp_up_state(void)
{
fault_handler();

if(FeCtrl0Regs.RAMPSTAT.bit.RAMP_COMP_INT_STATUS == 1 )
{timer_interrupt_temporary_1 = FeCtrl0Regs.RAMPDACEND.bit.RAMP_DAC_VALUE;

FeCtrl0Regs.EADCDAC.bit.DAC_VALUE = timer_interrupt_temporary_1; 

if(pmbus_dcdc_config[0].ll_en)//if light load enabled don't turn on sync-FETs
{
// FeCtrl2Regs.RAMPCTRL.bit.FIRMWARE_START = 0;
supply_state = STATE_REGULATED;
}
else
{
// supply_state = STATE_SYNFET_RAMP_UP;
supply_state = STATE_FF_ENABLE;
// FeCtrl2Regs.RAMPCTRL.bit.FIRMWARE_START = 1; // initiate Sync-FET soft-on
}
FeCtrl0Regs.RAMPCTRL.bit.FIRMWARE_START = 0;
}
}

And find Vout ramp soft starts through setting  the bit FeCtrl2Regs.RAMPCTRL.bit.FIRMWARE_START = 1 , BUT I didn't  find it  change to 1 from GUI.

Moreover, according to the idea of the program, when the soft start is completed, the FeCtrl0Regs.RAMPSTAT.bit.RAMP_COMP_INT_STATUS bit will be set to 1.  But I find the value always equals 0.

I am confused about this problems, there should be something I didn't understand. So I very expect you give me some suggestions.

Looking forward to your reply,  thank you very much!