2025-05-11 11:53 PM - last edited on 2025-05-13 7:21 AM by Andrew Neil
Hello.
I am currently conducting FOC (Field-Oriented Control) tests using the Motor Control Workbench with the Nucleo-G431RB board and the IHM08M1 power stage.
My target speeds are 300 rpm and 150 rpm.
However, when using Hall sensors with motors that have 4 and 8 pole pairs, the measured speed resolution appears to be limited to 6 rpm.
Initially, I suspected this limitation was due to the resolution of the Hall sensors.
However, even after switching to incremental encoders (1024 PPR and 8192 PPR), the measured speed still increments in 6 rpm steps.
Is there any method to enhance the speed measurement resolution in this setup?
2025-05-13 7:20 AM
Hello @sjson,
The reported RPM value uses the following computation (refer to register_interface.c):
/** Revolutions Per Minute: 1 Hz is 60 RPM */
#define U_RPM 60
/** Tenth of Hertz: 1 Hz is 10 01Hz */
#define U_01HZ 10
MCI_GetAvrgMecSpeedUnit(pMCIN) * U_RPM) / SPEED_UNIT);
You can add an RPM value filtering to the reported values.