I understand that your setup includes the TI LaunchPad F28379D and BOOSTXL-3PHAINV, using three phase-shifted 50Hz sine waves as ePWM inputs (timer period set for a 40kHz carrier), but observing an unexpectedly low fundamental frequency (around 1.44Hz), there are several common factors to investigate.
1. System Clock Configuration
- The actual carrier and output frequencies depend directly on the PWM timer period and the system (ePWM) clock feeding the timer.
- On the LAUNCHXL-F28379D, the system clock may default to 100MHz, not the maximum 200MHz, especially if relying on the internal oscillator or if the external crystal is not set up correctly. A lower system clock will halve your expected frequencies . Refer: 1. LAUNCHXL-F28379D: How to set up the system clock to 200Mhz 2. Running TI LaunchPad F28379D in Simulink External Mode
- If the timer period was calculated assuming a 200MHz system clock, but the hardware runs at 100MHz, all observed frequencies will be halved.
- Double-check your clock setup in code; make sure the PLL/multiplier is configured for maximum frequency. Check that documentation/examples match your board’s actual oscillator frequency.
2. Slow Software Loop / Model Sample Rate
- The sampling rate of the sine wave generator or control system may be limited by an unintentional step size or by software execution time. If the control loop or sine generator runs only every 0.69s, it will produce a base frequency of ~1.44Hz, regardless of PWM configuration. Refer to this MATLAB answer which discusses the similar issue: C2000 simulink reduces PWM frequency
- Check your model’s step size for the sine wave block and global solver configuration. Ensure it matches the target system capabilities and the desired output frequency.
- Use a fixed-step solver; verify no block or subsystem is executing at an unintended slower rate.
In summary, the described symptoms (observing 1.44Hz instead of 50Hz) almost always point to one of these two issues: a mismatch in the hardware clock setup or incorrect sample times in your model. Double-check both; these are the most common sources of this behavior. If your PWM period calculation in code is correct but the real output is still too slow, it’s nearly always a timing mismatch.
I hope this helps.