Potential Bug: Motor Speed Limitation on F0/C0 MCUs 6-STEP algorithm
Hello there,
I've encountered a problem when running motors with the F0 and C0 families. Perhaps this is already a known limitation, but I thought it still deserves a post.
I don't need this to be solved, as I won’t be using these controllers for my particular project, but it could be a bug, so I figured posting this as a bug report might be a good idea.
Hardware setup:
- NUCLEO-F030R8 / NUCLEO-C031C6 / NUCLEO-G431RB / NUCLEO-F401RE
- X-NUCLEO-IHM11M1
- Custom SM-PMSM Motor: 7 pole pairs / 1.2 Apk / 0.11 Ohm / 0.018 mH
Software:
- MCSDK 6.3 / 6-STEP Algorithm
I'm setting up the project through MCWB, and the only changes I make in the project are the REV up parameters and setting up MotorPilot to enable open-loop control. The generated project has a PWM frequency of 50 kHz, and yes, I know that's way above the recommended 10 kHz for an F0/C0 board. However, I have tried altering the PWM frequency to 10 kHz and 25 kHz, among others, and the problem still occurs.
The problem:
When I run the motor on the F0/C0, the motor speed saturates at a fixed ~12k RPM (at least that’s what's reported to the user in MotorPilot). However, if I repeat this process with the F4 or G4, the motor spins much faster, easily reaching 20kRPM. It wouldn’t be surprising if the F0/C0 MCUs don’t support those higher RPMs, but there’s no warning to the user that the MCU is overloaded or anything, so I suspect it could be a bug.
EDIT:
It turns out that the motor actually can spin above 12kRPM when using open loop control, but the motor Pilot gets the wrong value reported. For some reason the motor pilot does not recieve a higher RPM than 12300RPM - even tho the motor spins much faster.
Best regards,
Gustav Eckerbom
