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.

MSP432E401Y: Generating IGBT gating sequences with Driverlib functions and the PWM module on the MSP432E401Y Launchpad

Part Number: MSP432E401Y


Currently trying out the MSP432E401Y launchpad. and 1 would like to have some code help using non-RTOS  driverlib functions to implement 

2 separate IGBT gate triggering examples . Looking at the current SDK examples, i have not found a similar one to meet my needs

Example 1) 

I have 3 half-bridge IGBTs. I will label the gate pairs  G1-G2, G3-G4, G5-G6

The following  6-step pattern should be repeated.

With the full 6 steps corresponding to 1 period

G6 G5 G4 G3 G2 G1
Step 1 0 1 1 0 0 1
Step 2 1 0 1 0 0 1
Step 3 1 0 0 1 0 1
Step 4 1 0 0 1 1 0
Step 5 0 1 0 1 1 0
Step 6 0 1 1 0 1 0

 Naturally I will have to insert a deadtime at the 'switch-over' point of each half bridge pair.

All the output waveforms will need to be synchronized and also note the 120 degrees (1/3 period) phase shift of each 

of the gating signal pairs among the half-bridges. E.g G1-G3-G5 have a 12 degree (1/3 period phase shift).

Example 2

I have 4 full-bridge IGBTs. I will label the triggering  pairs for eaach full-bridge IGBT,  T1-T2, T3-T4, T5-T6  T7-T8

The following  8-step pattern should be repeated. With the full 8 steps corresponding to 1 period .

So each trigger will have a 1/8 duty cycle but synchronized and delayed from the previous by about 1/8 of a period.

I will have to insert a deadband between each step.

T8 T7 T6 T5 T4 T3 T2 T1
Step 1 0 0 0 0 0 0 0 1
Step 2 0 0 0 0 0 0 1 0
Step 3 0 0 0 0 0 1 0 0
Step 4 0 0 0 0 1 0 0 0
Step 5 0 0 0 1 0 0 0 0
Step 6 0 0 1 0 0 0 0 0
Step 7 0 1 0 0 0 0 0 0
Step 8 1 0 0 0 0 0 0 0

Thanks

David Nyarko

  • Hello David,

    For Example-1 you can use the PWM examples

    C:\ti\simplelink_msp432e4_sdk_2_10_00_17\examples\nortos\MSP_EXP432E401Y\driverlib\pwm_gen1_deadband_interrupt

    It has a single PWM generator but you can multiple Generators and synchronize them

    For example-2 a slightly different approach on PWM module would be needed, which I would need to see how to do. But it is possible as the PWM module has 8-outputs which can work for the control.
  • Hi Amit,
    I have used that example. I can create the 3 pairs of synchronized signals. What i have a problem with is how to have the PWM generators generate delayed versions. e.g. using PWM0 as the base, how do i get PWM1 outputs to be delayed by 1/3 of a period relative to PWM0
    Thanks
    David
  • Hello David,

    What you need to do is to set the PWM AU/AD and BU/BD values such that they are phase shifted. As an example with a Load value of 600 if you set zero crossing for set of PWM output and AU = 200 for clear of PWM output, you shall get in phase value for the PWM outputs

    On the other hand if for the 2nd PWM the set is for AU=201 and clear is for AD=401 and 3rd PWM it is AD=401 for set and zero for clear, what it will show is phase shifted values.
  • Hi Amit

    Thanks. I am not seeing reference to the terms PWM term AU/AD and BU/BD in relation to the MSP432E401Y.

    Am i correct in assuming the terms you used refer to the 'Up' and 'Down' values for either PWM A or PWM B.

    In the MSP432E technical reference manual (slau723) section 21.3.3 (page 1440) , if i understand it correctly, in the PWM count down mode

    (Figure 21-3) ,

    -'Load' will determine the period,

    - 'compa' will determine the phase shift

    - 'compb - compa' will determine the phase shift.

    Likely AU/BU  is what is indicated as 'compa'

    and AD/BD is what is indicated as 'compb'

    Are there 'driverlib' functions which can be used to set these values directly?

    Thanks

  • Hello David,

    A is for compa and B is for compb. The AU/AD/BU/BD are part of the PWMxGENA registers at offset 0x060, 0x0A0, 0x0E0 and 0x120. These register control how the PWM line are set or cleared on specific events.
  • Thanks. I get it. I will now try to see what i can implement. Looking at the 'driverlib' source code for function PWMGenConfigure(uint32_t ui32Base, uint32_t ui32Gen, uint32_t ui32Config), I now understand the process and will use that as a template to write my own code. thanks

**Attention** This is a public forum