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.

TMS320F28035: current sense based dead band compensation

Part Number: TMS320F28035
Other Parts Discussed in Thread: CONTROLSUITE

Hi dear Ramesh.

I analyzed  the LEVEL 8 of HVPM_Enhanced_Sensorless_2803x.
C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\HVPM_Enhanced_Sensorless_2803x

I have some questions

in this example dbc1.Ith =0.001; pwm1.Deadband=120(2us*60Mhz)

// Dead Band Compensation (DBC) parameters
dbc1.gain = _IQ(1.0);
dbc1.scale = _IQdiv(_IQdiv2(pwm1.Deadband), dbc1.Ith); 

dbc1.Kdtc = _IQmpy(dbc1.scale, dbc1.gain);

dbc1.scale = 60/0.001 So dbc1.scale =60000 .

_iq type can only be (-127~127) so dbc1.scale  become 127 !!!

And dbc1.Kdtc=127 !!!

and this "dbc1.Kdtc "value is going to use in PWM 

_IQmpy(_IQsat(i.As, d.Ith, -d.Ith), d.Kdtc);   Result in positive   0.127 = (0.001*127) in negative  -0.127 = (-0.001 * 127); 

which is supposed to be -120 or  +120.

Q1? I got confuse I think _iq can not use here ,Am I right ?.if so ,How this program is working .I would be happy if explain about it

thanks for attention.

Dave., 

  • Sorry, missed it. IF you check in the debug window, you can get better insight into these calcs. These are basically int32 variables and have a higher numerical representation. Using IQ math, we look at these numbers differently where the max whole number is 127 in Q24 format. So yes, when you look at is q24 number, you are right. But the result will have some data that will translate to some meaningful q24 number. Again, pls run the code and check in debug window for better clarity.

    Since you opened another thread on this topic, do you want to keep this thread open? If you suggest closing it, let me know.

    Thanks,

    Ramesh

  • Dear Ramesh thank you for great explaining ! 

    Best wishes.

    Dave.