Using the MCSDK 5.0.1, I can startup and run a BLDC motor most of the time. About 10% of the time, I get a Start-up failure and each time I can see from the Motor Control Workbench GUI that the speed has reached the desired target of 1100 RPM but the Start-up failure occurs anyway. Debugging the generated firmware, I can see RUC_Exec (RevUp control) getting called and returning false which causes the MC_START_UP fault flag to be set. About 90% of the time, ramp-up succeeds and transitions to FOC mode.
I think RUC_Exec is mistaken about the start-up fault because the monitored speed read-back is at the desired target, phase-current is the right frequency and I don't hear the motor assembly missing steps or 'bumping'. The RUC_Exec function appears to be defined in libmc-iar_M4.a which doesn't come with source code, so I can't see why it's returning false. I've requested access to the X-CUBE-MCSDK-FUL, which I think has source containing RUC_Exec but approval hasn't come thru yet but that's a different issue.
I'm looking for suggestions to get a more reliable transition from ramp-up to FOC. I've tried adjusting several parameters in Workbench's 'Start-up parameters' page (attached) such as On-the-fly startup, Speed ramp duration, minimum start-up speed etc.