AnsweredAssumed Answered

PWM Delay when updating duty cycle

Question asked by AcoreInd on Nov 28, 2016
Latest reply on Dec 22, 2016 by AcoreInd

Hello everyone,


I have a problem when using PWM on SHARC core 1.


I have to control AC/DC converter (by appling switching duty cycle previously calculated from a simple PI) and there is point that I can't explain :


The program sequence in closed loop is simple :

-> Measure of output signal

-> Compute of controller

-> Applying duty cycle


The point is when I applying duty cycle, there a delay time for about 150us (4 sample in my case, the sampling frequency is 20kHz) between the first duty cycle  and the first PWM output signal.


I am using AH AL BH and BL of the PWM1 with a breakout board, my switching frequency is 15kHz and the alpha is refresh by TIMER0 callback with this lines :


"adi_pwm_SetOutputDutyCycle(PWMnoPhaseShift, ADI_PWM_CHANNEL_A, ADI_PWM_HIGH_SIDE, DutyHmax, alphaH);
                adi_pwm_SetOutputDutyCycle(PWMnoPhaseShift, ADI_PWM_CHANNEL_A, ADI_PWM_LOW_SIDE, DutyLmin , alphaL);
                adi_pwm_SetOutputDutyCycle(PWMnoPhaseShift, ADI_PWM_CHANNEL_B, ADI_PWM_HIGH_SIDE, DutyHmax, alphaH);
                adi_pwm_SetOutputDutyCycle(PWMnoPhaseShift, ADI_PWM_CHANNEL_B, ADI_PWM_LOW_SIDE, DutyLmin , alphaL);"


I have also instrumented my program and I can confirm that the problem doesn't come from calculation time (about 6us for measure, PI calculation and applying duty cycle).


Moreover this 150us delay seams to be fixed : I've tryed to change switching and sampling frequencies and the phenomenon is the same.


I think that I am far away of the processor maximum capabilities so there is probably something which I've missed.


Have you an idea help me please ? I think is the source of my controller dysfunctionalities.


Thank you very much.

Best regards,