
Translate spice-based PWM simulations into practical control code for the TI TMS320F28379D microcontroller, and master carrier-based sine triangle modulation and space vector modulation for buck to three-phase converters.
Identify the target students for PWM strategies on common converters, including junior power electronics engineers and undergraduates. The course helps hardware implementation on the TI TMS320F28379D microcontroller using C programming.
Identify hardware requirements for this course, including oscilloscope or logic analyzer, breadboard, and jumper cables for safe PWM gate-pulse observation with Code Composer Studio.
Identify the software prerequisites for the pwm strategies course on the F28379D microcontroller, including Code Composer Studio and q spice on windows 11.
Learn practical tips to complete this pwm course by simulating, coding along in Code Composer Studio, and observing gate pulses on the oscilloscope.
Introduce a buck converter simulation and a simple PWM strategy for the F28379D, using duty ratio comparison to a sawtooth carrier to gate a single device.
Outline the essential tools and documents for PWM strategies on the TI TMS320F28379D, including Q Spice, Code Composer Studio, C2000, the kit overview, datasheet, and technical reference manual.
Download and run the buck converter simulations in QSPICE to visualize PWM control driven by duty ratio and a carrier waveform on a 24 volt input.
Set up code composer studio projects for a buck converter pwm implementation using a dual cpu layout, enabling bitfield control on cpu one and driver lib on cpu two.
Set up a buck converter pwm project using the bitfield approach. Add common and header files, configure system control and pi module, and enable ep one pwm outputs.
Initialize system control to configure oscillators and produce a 200 MHz clock, then assign PWM 1 and 4 to CPU1 and CPU2 via dev config registers for the buck converter.
Enable the pwm clock by setting vp1 in pcl cr2. Clear the time base clock synchronization bit in pcl cr0 to stop counting until configuration completes.
Configure the time-based pwm submodule to use an up-count, sawtooth carrier, and a 10 kHz period. Enable 50 MHz pwm clock via high-speed clock div and set free-run mode.
Configure a buck converter pwm with an up-count sawtooth, ten kilohertz switching, and a free-running time base, then use the shadowed cmpa with the action qualifier to drive the gate.
Configure gpio pins a0 and a6 for pwm outputs on a buck converter, setting gp mux values and enabling pwm time counters in cpu1.
Master the bit-field project compilation by resolving unresolved symbols through including the Gpio.c source file, and learn how to manage required files in the build process.
Explore the driverlib approach to control a buck converter by enabling the pwm timer clock on CPU two, configuring up-count mode and cmpa, and observing clean compilation versus bitfield methods.
Execute the buck converter PWM on two processors of the TI microcontroller, observe 10 kHz switching and 30% duty, and compare CPU1 and CPU2 outputs.
Conclude gating pulse generation for a buck converter by configuring the module and GPIO pins. Preview upcoming PWM strategies, including unipolar, bipolar, and space vector modulation for multi-device converters.
Examine simulating a half bridge converter and implementing pwm strategies for two discrete devices, then apply a half bridge module to realize bidirectional buck, buck-boost, and dc-to-ac conversion.
Learn to simulate a modified buck-boost converter with two MOSFETs in QSPICE, switching M1 and M2 to realize buck and boost modes under mode-driven control.
Explore a QSPICE simulation of a bidirectional buck converter built with a half-bridge module to enable power flow in both directions, featuring forward and reverse buck operation.
Learn how two half-bridge modules enable bidirectional buck-boost operation with output voltage above input voltage and bidirectional power flow, via QSPICE simulation, and translate PWM strategies to the TI F28379D.
Learn bidirectional buck converter control on the TI TMS320F28379D, using a half-bridge, gate pulses, sawtooth carrier, and interrupt-driven duty cycle updates.
Configure gpio pins for a and b outputs on pwm1 and pwm4, enable the event trigger submodule, and implement deadband to prevent shoot-through in the bidirectional buck converter.
Configure deadband submodule to prevent shoot through by routing pwm b to the falling edge delay generator with inversion, setting mode, polarity, and out mode, and applying one microsecond deadband.
Configure pwm module interrupts, initialize the pi module and vector table, and register ep1 isr; then enable group 3 interrupts to prepare the bidirectional buck converter project part 4.
Develop the interrupt service routine and clear the pi acknowledge bit and the pwm interrupt flag. Ensure proper interrupt propagation from group three to the CPU.
Explore bidirectional buck converter control for a TI TMS320F28379D half-bridge, using independent cmpa and cmpb signals to achieve forward and reverse power flow with gate pulses.
Compile the project with a clean build and confirm no errors or warnings. Learn about the driver lib project in the next lecture and ask questions in the Q&A forum.
Explore the driverlib bidirectional buck converter project on the TI TMS320F28379D microcontroller, covering CPU one and CPU two bitfield tweaks, PWM setup, watch window, interrupts, deadband, and oscilloscope waveform observation.
Execute the bitfield and driver lib projects, observe bidirectional buck converter operation through PWM waveforms on the oscilloscope, and explore debug mode with CPU1 and CPU2.
Translate a bidirectional buck-boost converter from simulation to hardware using two half-bridge modules separated by an inductor, voltage-mode buck or boost, and four PWM outputs controlled by C code.
Configure the bidirectional buck-boost converter's PWM modules across two half-bridge modules, focusing on the action qualifier and deadband submodules, and validate gate pulses through simulation for forward and boost modes.
Translate q space control code into the CPU module’s interrupt service routine to drive a bidirectional buck-boost converter, using duty ratios to switch S1–S4 in forward and reverse modes.
Walks through full code, initializes the system, pi module and pi vector table, configures pwm modules, clocks, timers, time-based submodule with sawtooth waveform, event trigger submodule and deadband, then compiles.
Describe how the driver lib configures PWM modules, interrupts, and deadband for a bidirectional buck-boost converter in the main code, with a 50 MHz CPU clock and 10 kHz operation.
Execute the bidirectional buck-boost converter project on the TI TMS320F28379D, exploring forward boost and buck modes. Observe CPU one and CPU two outputs; compare oscilloscope results with the simulation.
Simulate the half-bridge dc to ac converter in QSPICE, showing modulation versus a triangular carrier with complementary gate pulses and a sinusoidal inductor current, while noting low-power capacitor voltage oscillations.
Configures a half-bridge dc-ac pwm on the TI TMS320F28379D microcontroller, using an up-down triangular carrier at 5 khz, with complementary outputs, deadband, and interrupt setup.
implement sine-triangle modulation for a half-bridge dc-ac converter using an ISR, math.h sine templates, and phase-angle integration to generate gate pulses and load a 16-bit cmpa value.
Compile and configure a half-bridge dc-ac converter bitfield project on the TI TMS320F28379D microcontroller, using an up-down triangular PWM at 5 kHz, with deadband inversion, interrupt handling, and cosine waveform.
Configure and compile the half-bridge dc-ac converter driverlib project; enable up-down pwm with deadband at 5 kHz and implement an interrupt service routine generating cosine modulation from a phase angle.
Execute the half bridge dc-ac converter PWM project on the TI TMS320F28379D, validating S1 and S2 gate pulses and phase-angle effects with the watch window.
Coordinate gate pulses for two devices with a half-bridge module, configure deadband to prevent shoot-through, and enable bidirectional buck and buck-boost operation. Translate q spice simulations to microcontroller code.
Examine full-bridge converter topologies by linking two half-bridge modules, and learn the three popular PWM strategies, unipolar, bipolar, and fish shift, using the TI TMS320F28379D, with phase shift PWM synchronization.
Demonstrates qspice simulation of a full-bridge bipolar pwm, showing modulation index with a triangular carrier to generate plus or minus VDC outputs.
Explore the unipolar PWM strategy for a full-bridge converter feeding an inductor capacitor filter with a resistive load, and compare ripple and harmonic performance to bipolar PWM using QSPICE simulations.
Explore phase-shift pwm for a full-bridge in high-frequency dc-dc converters using QSPICE simulations, with phase-shift input and sawtooth carriers guiding gated pulses on the F28379D.
Implement bipolar pwm for a full bridge converter on ti tms320f28379d microcontroller, generating four gating pulses across two cpus. Learn configuring carrier waveform as triangular, action qualifier, deadband, and interrupt.
Update the interrupt service routine for a bipolar PWM project; generate phase-angle modulation and load it into both cmpa registers, letting the action qualifier control register drive the dc-ac converter.
Configure and compile the bitfield bipolar pwm project on the TI TMS320F28379D, covering phase angle integration, up-down counting, carrier comparison, deadband, and driver lib approach.
Demonstrate bipolar pwm with driverlib, configuring pwm4/5 in up-down mode at 5khz, with dead bands and cycle interrupts; an ISR computes phase angle and cosine modulation to the cmpa registers.
Execute the bipolar pwm project on a full-bridge converter, validate complementary gate pulses for S1-S4, and observe the bipolar dc output with phase angle from 0 to 2pi.
Learn unipolar PWM by extending the bipolar PWM example, detailing S1–S4 conduction patterns and how action qualifier priorities and cmpa/tbde control on/off timing, with bitfield and driver-lib projects.
Configure action qualifier registers in interrupt service routine for unipolar pwm, driving pwm two via cmpa and turning on s1 in the positive half and s2 in the negative half.
Explore unipolar pwm with driverlib on TI TMS320F28379D, configuring pwm4 and pwm5 in up-down mode at 5 khz, using cosine-based modulation and interrupt handling.
Demonstrate unipolar modulation in a full-bridge converter by showing 50 Hz modulation on S1 and S2 and 5 kHz switching on S3 and S4, verified with oscilloscope observations.
Explore synchronization in ePWM modules to achieve phase-shift pwm with aligned timer counters, and configure phase enable and sync output to load the time base phase register.
Configure phase-shift pwm for a full-bridge dc-dc converter by using a sawtooth waveform, setting a high frequency of 10 kHz, and enabling synchronization between two pwm modules.
Learn phase-shift pwm by using a controller phase angle to make ep1 lead or lag ep2, via synchronization output and configuring cmb, tb, tp, and cmp registers.
Master phase-shift pwm by configuring two synchronized pwm channels, using cmp and phase angle cp1 to generate a 10 kHz, 50% duty cycle with precise synchronization.
Explore phase-shift pwm with driverlib on the TI TMS320F28379D microcontroller, configuring a ten kilohertz sawtooth pwm and enabling synchronization output.
Execute the phase-shift PWM project on the microcontroller and observe phase shifts between gate signals S1 and S3, producing pulses for a full-bridge converter.
Explore three PWM strategies for the full bridge converter—bipolar, unipolar, and phase-shift PWM—using the cmpa register and synchronization to generate phase-shifted carrier signals across modules.
Explore the simulation of a three-phase, two-level converter and implement PWM on the TI TMS320F28379D, comparing sine-triangle and space vector modulation for improved DC bus use.
Explore sine-triangle pulse width modulation for a three-phase converter with six gating pulses from three half-bridges. Simulate with QSPICE and prepare F28379D control code.
Start programming the bitfield three-phase sine-triangle PWM converter using two CPUs, configuring three IPMs and six PWM channels, and mapping gates to GPIO pins for a DC-to-AC three-phase output.
Edit the pwm1 interrupt service routine to generate three phase modulation signals (a, b, c) with 120-degree phase shifts for sine-triangle pwm and load them into pwm registers.
Walk through the sine-triangle pwm bitfield project, configuring ep modules, enabling clocks for ep1-3, and loading three transformed modulation signals into the cmpa registers to drive a three-phase converter.
Compile the driverlib sine-triangle pwm project for the TI TMS320F28379D, enable pwm 4–6, set up up-down counting at 5 khz with deadband, and load cosine modulation into compare registers.
Execute sine-triangle pwm on the ti tms320f28379d microcontroller by validating gating signals for a three-phase converter, observing phase a, b, and c waveforms, and comparing phase shifts.
Explore space vector modulation for a three-phase converter, contrasting it with sine-triangle PWM and learn to transform inputs to alpha-beta, determine sectors, and compute vector switching times.
Translate space vector modulation theory into microcontroller code in Code Composer Studio, define reference voltages, convert to alpha-beta, and determine sectors to drive PWM vectors.
Calculate sector-based vector times for space vector PWM, using zero and non-zero vectors on a 24V bus to achieve an 8V peak reference, and prepare MCU code.
Learn how space vector modulation minimizes switching by sequencing zero and vector states in a PWM cycle, with symmetric t0/t1/t2 timing, using the microcontroller’s counter-compare, action qualifier, and deadband registers.
Define vector sequence and phase sequence for space vector pwm, identify phase changes during transitions (a, b, c), and map them to the compare registers feeding the action qualifier control.
Translate space vector PWM timings into cmpa values by calculating t0, t1, t2 and loading the correct phase register according to sector and phase sequence.
Walks through compiling the space vector PWM bitfield project, detailing PWM configuration, up-down mode, deadband, sector-based phase calculations, and loading compare registers for gating pulses.
Explore the space vector pwm driverlib project for the tms320f28379d, detailing pi module initialization, clock setup, pwm configuration, and interrupt handling with up-count and down-count action qualifier control register.
Demonstrates space vector modulation on the TI TMS320F28379D microcontroller, producing optimized PWM patterns and translating q space simulation R code to practical gate pulses.
Conclude by contrasting sine triangle PWM and space vector PWM for three-phase converters, and translate q spice simulations to F2 A37 microcontroller code using gating signals and deadband modules.
Conclude by reinforcing how to bridge theory and hardware through Spice simulations and microcontroller programming, showcasing PWM strategies on the F28379D and advancing toward hardware-oriented power electronics challenges.
This course has been specifically designed to help power electronics engineers overcome the hurdle of implementing control code from simulations in microcontrollers. The course uses the free and trending circuit simulator QSPICE to examine simulations of the popular power converters used in industry along with the Pulse Width Modulation (PWM) strategies implemented using C programming language. The course will then describe how the TMS320F28379D microcontoller from Texas Instruments can be used to implement these PWM strategies using the specialized Enhanced Pulse Width Modulation (ePWM) peripheral module. The course will examine how the different functionalities provided by the ePWM peripheral can be used in a convenient manner to translate the QSPICE control code with minimal modifications.
The course emphasizes on the usefulness of simulations, and how they can be a strong foundation in power electronics projects. QSPICE is the latest in the series of SPICE simulators and besides providing a robust engine for simulating non-linear circuits with MOSFETs and other devices used in power electronics, it offers the convenience of implementing control code in C programming language and Verilog. C programming and Verilog are the most popular languages used in embedded systems with most Digital Signal Processor (DSP) and Field Programmable Gate Array (FPGA) microcontrollers using these languages to program their devices. For this reason, QSPICE simulations are the foundation for all projects in this course. QSPICE has been offered completely for free without any licensing restrictions and will soon become one of the most popular circuit simulators in the power electronics industry.
The course uses the low-cost LAUNCHXL-F28379D evaluation kit from Texas Instruments for programming the TMS320F28379D microcontroller. All experiments in this course are performed using this low cost evaluation kit, a low cost two-channel oscilloscope, a solder-less breadboard and a few jumper cables. Therefore, this course is ideal for students preparing themselves for entry-level jobs in the power electronics industry.