STM32G030 Sensorless FOC: Startup Failure (Timeout) during Windmilling on Single-Shunt Custom Board
Hardware/Software Environment:
MCU: STM32G030K6T6
SDK: MCSDK v5.4.8 (CubeMX v6.3)
Current Sensing: Single-Shunt (Rshunt = 0.1Ω, Op-amp Gain = 7.5)
Motor: PMSM, Nominal 900 RPM.
Observer: STO-PLL, Min Reliability Speed = 350 RPM.
The Problem:
I am trying to start a motor that is windmilling at 500 RPM in the CCW direction. My application requirement is to run in the CW direction at 900 RPM.
Currently, when I call MC_StartMotor1(), the motor slows down slightly but continues to rotate CCW. The State Machine transitions from IDLE -> START, stays in START (Rev-up) for the duration of the phases, and then returns to start-up fault.
Normal start from 0 RPM works perfectly.
Rev-up Table: Phase 1 is 0 RPM (Alignment) for 2000ms at 90% nominal current. Subsequent phases ramp to +450 RPM.
Manual Braking: I have implemented a PWMC_TurnOnLowSides() call for 500ms in the CLEAR state to dissipate CCW energy, followed by PWMC_SwitchOnPWM().
Observation: Despite high alignment current, the motor "slips" and never reaches the 350 RPM CW threshold required for the Observer to signal "Reliable."
In a Single-Shunt configuration, how can I improve the "magnetic grip" during the Alignment phase to overcome -500 RPM windmilling without a BEMF sensing circuit? Also tried using On the fly start option, didn't help as expected.
Kindly give your suggestion to overcome this issue.
