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: DPWM Implementation in F28379D using space vectors

Part Number: TMS320F28379D
Other Parts Discussed in Thread: CONTROLSUITE

Tool/software: Code Composer Studio

Hi, I am using F28379D for PWM generation using Space Vector PWM. I used svgen macro provided by ControlSuite to generate Conventional Space Vector PWM. I also used svgen_dpwm for bus clamping PWM. However, svgen_dpwm clamps a phase for 120 degrees continuously (known as DPWM_MAX or DPWM_MIN). 
I am trying to implement DPWM1 which is also known as 60 degree clamped PWM where clamping of a phase takes place in 2 sections of 60 degrees each in a line cycle. The switching sequence that needs to applied in Sector I for DPWM1 is 721,127.... from 0 to 30 degrees and 012 ,210.... from 30 to 60 degrees. It means that such implementation would be possible with 12 sectors of 30 degrees instead of 6. 

Can you help me figure out how to implement such a sequence in F28379D? Any expert opinion or relevant TI documentation would be really helpful. I have read svgen and svgen_dpwm documentation in detail.

Looking forward to your response. Thank you so much.

  • We dont have a direct example for your query, the closest we have is an app note that explains the classical 6 sector based DPWM. If it helps, that will be great, otherwise it can atleast give you some pointers on how to go about doing your idea.

    http://www.ti.com/lit/an/spra524/spra524.pdf 

  • Hello Ramesh,

    As per our previous discussions, I have already implemented Conventional Space Vector PWM (CSVPWM) and Discontinuous Space Vector PWM (DPWM-MIN, DPWM-MAX) in F28379D. The macro for CSVPWM in location C:\ti\controlSUITE\libs\app_libs\motor_control\math_blocks\v4.3 is very useful. I have read the corresponding macro implementation in detail. I understand all the variables involved, however, I am not able to understand the v.Ta, v.Tb and v.Tc equations implemented within the sectors. I tried to derive these equations and my equations do not match with the equations implemented in macro svgen.h. I need to understand the derivation of v.Ta, v.Tb and v.Tc equations in all sectors so that I can further modify the code for different advanced bus clamping PWM techniques.

    Please see the screenshot of svgen.h with highlighted portions that I need to understand and also my derivation of v.Ta and v.Tb in sector I that does not match with svgen.h implementation. Please let me know what should I modify in my derivation to get the same results as that of svgen.h

  • Your representation of tmp3 is negated from implementation, and I dont get your representation of X, Y and Z.

    For the level of flexibility you need to have for your experiments, I suggest you to start from basics and go from there.

    For sector 1, 

    Valpha = t1.cos(0) + t2.cos(60)

    Vbeta = t2.sin(60)

    A scaling factor of sqrt(3) is used on the RHS in TI's implementation to match up with the input which may have that factored in already. Similarly, you can do for other sectors and make a table. It will be a lot easier this way. 

    Hope it helps.

  • Let us know if you are not able to resolve the issue, or else can you close the thread.

  • Since there is no response, we assume the query is resolved and closing the thread. If not, you can reopen the thread by posting within 30 days, or else open a new thread.