PWM Deadtime Calculation for PWM
Tue Nov 11 2014, 06:57 pm
Hii all,
i have Input Freq. 0,5v to 3,25v Output PWM have 2-256 cycles Clock freq. 24MHz.
I want to give
if Input = 0,5v then Deadtime = 2
& if Input = 0,5v then Deadtime = 24.
Is there any equation to do this?
Regards
Max
i have Input Freq. 0,5v to 3,25v Output PWM have 2-256 cycles Clock freq. 24MHz.
I want to give
if Input = 0,5v then Deadtime = 2
& if Input = 0,5v then Deadtime = 24.
Is there any equation to do this?
Regards
Max
Thu Nov 13 2014, 06:30 am
Do you mean if the input changes from 0.5 volts to 3.5 volts
the dead time changes from 2 to 24 ?
How is the dead time set in the controller ?
Which controller are you using ?
the dead time changes from 2 to 24 ?
How is the dead time set in the controller ?
Which controller are you using ?
Thu Nov 13 2014, 03:05 pm
yes i mean this if the input changes from 0.5 volts to 3.5 volts
the dead time changes from 2 to 24 ?
I am using PSoC 5LP .
I take 1 PWM with 2 phases (reverse & Forward ). When i give deadtime as Input, then the Duty cycle for borh PWM phases will 49% of Period.
Regards
Max
the dead time changes from 2 to 24 ?
I am using PSoC 5LP .
I take 1 PWM with 2 phases (reverse & Forward ). When i give deadtime as Input, then the Duty cycle for borh PWM phases will 49% of Period.
Regards
Max
[ Edited Thu Nov 13 2014, 03:05 pm ]
Thu Nov 13 2014, 10:47 pm
yes i mean this if the input changes from 0.5 volts to 3.5 volts
the dead time changes from 2 to 24 ?
I take 1 PWM with 2 phases (reverse & Forward ).
When i give deadtime as Input, then the Duty cycle for borh
PWM phases will 49% of Period.
Is there any equation to do this ?Max.otto
There is no standard equation as each case is different.
Start by getting a PWM running with equal on/off times.
Add a deadband.
Read the voltage using the ADC.
Use your own equation or a table to get what setting is
needed to create the wanted deadband.
Set the deadband in the DEADBAND_PERIOD bits
in the TMRx_CFG0 timer.
Max.otto like this.
Tue Nov 18 2014, 06:07 pm
@ExperimenterUK,
how can i get PWM running with equal on/off times.??
Also check my new thread named " PWM signwave with 50ns freq. Step".
Regards
Max
how can i get PWM running with equal on/off times.??
Also check my new thread named " PWM signwave with 50ns freq. Step".
Regards
Max
[ Edited Tue Nov 18 2014, 06:08 pm ]
Wed Nov 19 2014, 08:41 pm
Thu Nov 20 2014, 11:26 pm
You set the on/off times here as 47%
float PWMcompare1 = 141.; // Desire that duty cycle = 47%, so PWMcompare = PWM_Period x .47 =~ 70
float PWMcompare2 = 141.; // Desire that duty cycle = 47%, so PWMcompare = PWM_Period x .47 =~ 70
float PWMdeadtime = 10;
If you just run Sys_Init(void),
what PWM output do you get ?
float PWMcompare1 = 141.; // Desire that duty cycle = 47%, so PWMcompare = PWM_Period x .47 =~ 70
float PWMcompare2 = 141.; // Desire that duty cycle = 47%, so PWMcompare = PWM_Period x .47 =~ 70
float PWMdeadtime = 10;
If you just run Sys_Init(void),
what PWM output do you get ?
Fri Nov 21 2014, 06:42 pm
@ExperimenterUK
Thank u. I do it. Ohne Period it's not worked. So i thought u forgot to write it.
I take
float PWMperiod = 300.;
AS u told
float PWMcompare1 = 141.; // Desire that duty cycle = 47%, so PWMcompare = PWM_Period x .47 =~ 70
float PWMcompare2 = 141.; // Desire that duty cycle = 47%, so PWMcompare = PWM_Period x .47 =~ 70
float PWMdeadtime = 10;
The Output i got is
The PWM Step is as i Need 450ns (40ns Step).
But the Duty cycle is 43.5%
Thank u. I do it. Ohne Period it's not worked. So i thought u forgot to write it.
I take
float PWMperiod = 300.;
AS u told
float PWMcompare1 = 141.; // Desire that duty cycle = 47%, so PWMcompare = PWM_Period x .47 =~ 70
float PWMcompare2 = 141.; // Desire that duty cycle = 47%, so PWMcompare = PWM_Period x .47 =~ 70
float PWMdeadtime = 10;
The Output i got is
The PWM Step is as i Need 450ns (40ns Step).
But the Duty cycle is 43.5%
Fri Nov 21 2014, 07:35 pm
@ExperimenterUK
I make small table to observe Output with same period & compare value but changed Deadtime value.
Period = 300
Compare = 141
Deadtime-------ΔX------Duty
10------450ns--------43.5%
20------860ns--------40.2%
5--------250ns-------45.2%
2--------125ns-------46.2%
24--------1µs---------38.9%
i got ΔX right, which i needed so my clock is done (25MHz). But The Duty i Need always 47% What can i do for this?
Regrads
Max
I make small table to observe Output with same period & compare value but changed Deadtime value.
Period = 300
Compare = 141
Deadtime-------ΔX------Duty
10------450ns--------43.5%
20------860ns--------40.2%
5--------250ns-------45.2%
2--------125ns-------46.2%
24--------1µs---------38.9%
i got ΔX right, which i needed so my clock is done (25MHz). But The Duty i Need always 47% What can i do for this?
Regrads
Max
Powered by e107 Forum System