PWM: Update the carrier at maximum using DSP (Simulink C2000)

6 views (last 30 days)
I'm using Simulink with DSP (TMS320F2837xD Delfino Dual-Core MCUs). I'm dealing with PWM (pulse width modulation), using Simulink connected to DSP. My inquery is: I can update the carrier at the minimum only and can't update it at the maximum. I'm wondering, is there a way to update the carrier at the maximum? Photo is attached to clarify my inquery

Answers (1)

Sayan on 3 Nov 2023
Hi waell telmesani,
I understand from your query that it is required to change the frequency and phase shift of the carrier signal of the PWM generated from the ePWM (available at C2000 Microcontroller Blockset / F2837xD) block at a particular position.
However, it is not possible to do it in the block. Whichever operation you do will be applied to the entire PWM carrier signal and not any particular part of it. If you require different PWM carriers with different frequencies and phase shifts, you can do the same using the same number of ePWM blocks in the following way:
  • Use the different required values for the "Timer period" field of the blocks to get carriers of different frequencies.
  • In order to incorporate phase shift among the PWMs, enable the "Synchronization action" to "Set counter to phase value specified via dialog" or "Set counter to phase value specified via input port" as required.
  • Provide the "Phase offset value (TBPHS)" in terms of clock cycles.
  • Select the "Synchronization output (SYNCO)" field to "Pass through (EPWMxSYNCI or SWFSYNC)" to achieve precise synchronization across multiple ePWM modules.
You can find more information on the ePWM module in the following documentation:
Hope this helps in answering the query.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!