PWM with CCU8

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Not applicable
Hello,

i am using a XMC1302 for BLDC Control.
With the CCU8 Module I generate the PWM (I use the Multi Channel Update with POSIF).

Each of the 3 Phases use one Timer Slice for the High- and Low Side PWM.

I am able to generate the PWM for the High- and Low-Side Switch (the Low-Side PWM is inverted to the High-Side PWM).
2483.attach

My Problem is, for Example in State 1, that the Low-Side of Phase V is not permanent on, it is also switched with PWM.

How can i configure the CCU8 Module, to switch the Low-Side with PWM when the High-Side is switched with PWM and otherwise switch the PIN permanently on (As in the Picture)?

The Code of the Slice Config:


XMC_CCU8_SLICE_COMPARE_CONFIG_t SLICE_config =
{
.timer_mode = (uint32_t)XMC_CCU8_SLICE_TIMER_COUNT_MODE_EA,
.monoshot = (uint32_t)XMC_CCU8_SLICE_TIMER_REPEAT_MODE_REPEAT,
.shadow_xfer_clear = 0U,
.dither_timer_period = 0U,
.dither_duty_cycle = 0U,
.prescaler_mode = (uint32_t)XMC_CCU8_SLICE_PRESCALER_MODE_NORMAL,
.mcm_ch1_enable = 1U,
.mcm_ch2_enable = 0U,
.slice_status = (uint32_t)XMC_CCU8_SLICE_STATUS_CHANNEL_1,
.passive_level_out0 = (uint32_t)XMC_CCU8_SLICE_OUTPUT_PASSIVE_LEVEL_LOW,
.passive_level_out1 = (uint32_t)XMC_CCU8_SLICE_OUTPUT_PASSIVE_LEVEL_LOW,
.asymmetric_pwm = 0U,
.invert_out0 = 0U,
.invert_out1 = 1U,
.prescaler_initval = 0U,
.float_limit = 0U,
.dither_limit = 0U,
.timer_concatenation = 0U,
};


Thanks!

Regards Denis
0 Likes
3 Replies
Eric1
Employee
Employee
Hello denis0401,

I'm sorry I don't know if I got your question correctly.
Please let me know if you Need more Information:

As in your Picture (From the DAVE v4 APP) in stage 1 you have the following conditions:

Phase U is not gated through the Posif. And the Duty Cycle is between 10% and 90% (more or less are normally have to much switching losses but can be done with CCU8)
Phase V is not gated through the Posif. And the Duty Cycle is 0
Phase W is gated (high and low side) through the Posif.

You Need to reload both the multichannel gating in the Posif and the Duty Cycle in the CCU8.

But from the detailed question I assume this part you already know.
There is also an Errata for the XMC1300 AA step:
CCU8_AI.004 CCU8 output PWM glitch when using low side Modulation via the Multi Channel Mode

But here you would se glitches while the low Phase is off and not on.
But maybe this is fitting your problem.This issue is solved on the XMC1300 AB step.

Additional Information about BLDC control you can find:
1. DAVE v4 Examples: BLDC_SCALAR_HALL or SL and the documentation in the Example
2. Application Note: AP32289 - XMC1000/XMC4000 - Position Interface(POSIF)
3. Application Kit: EVAL_SSO8_1KW_BLDC

Regards
Eric
0 Likes
Not applicable
Hi Eric,

thanks, you got my question correct 🙂

I already thougt that i have to adapt the Duty Cycle and the PWM Pattern, my hope was, that there is an easier way to do this

But then, i'm on the right way.

I use the AA Version of the XMC1302, but i saw no glitches in the Low-Side Modulation.

Regards
Denis
0 Likes
Not applicable
Hello,


You Need to reload both the multichannel gating in the Posif and the Duty Cycle in the CCU8.


In the Reference manual of the XMC1302 on Page 921 is described, that the timer Values (Duty Cycle) can synchronously updated with the Update of the Multi-Channel-Pattern by the CCU8x.MCSS Register.
http://www.infineon.com/dgdl/Infineon-xmc1300-AB_rm-UM-v01_02-EN.pdf?fileId=5546d46249cd1014014a0a84...

How is the way to do this?
Or is there an Infineon Function to do this?

Regards
Denis
0 Likes