Skip to main content
Granitovich
Visitor II
May 22, 2026
Question

Motor control with resolver

  • May 22, 2026
  • 1 reply
  • 124 views

Good afternoon,

I am working with the STSW-TTM005 example for a resolver-equipped motor and encountered an issue:
Link: STSW-TTM005 | Product - STMicroelectronics

  • The motor does not rotate, but instead oscillates between windings.

  • In sensorless mode, the motor rotates correctly.

  • During debugging, the resolver angle appears correct.

  • I tried changing that setting:
    #define RESOLVER_ANGLE_OFFSET_DEGREE 185.0f // Angular offset in electrical degrees between the resolver and the rotor's magnetic flux, but it didn't work

Could you please clarify which resolver-equipped motor was used to validate this solution? My setup is as follows:

  • Control board: NUCLEO-G431RB

  • Driver board: based on DRV8353

  • Resolver board: STEVAL-TTM005A

  • Firmware version: 5.4.8

  • Motor specifications: PMSM with resolver, 20 poles, 24V DC, 67A peak

I would appreciate guidance on whether my configuration is compatible and any recommended adjustments.

Thank you for your support.

Best regards, Anatoliy

1 reply

Gigi
ST Employee
June 15, 2026

Hello Anatoliy

 

May I ask you how did you verify that: 

  • During debugging, the resolver angle appears correct.

If the resolver angle appear correct, I assume that you see in debug using DAC a triangular form setting DAC_RES_ANGLE and running the motor at constant speed in sensorless mode or manually forcing by another motor. Take care also at the slope of the angle it must be increasing in the direction assumed positive like the one of the sensorless angle.

If this is true (same triangular form of the resolver angle respect to the sensorless angle) and when you set the control using the resolver angle the motor stops, then I suspect that is some issue related to the define:

#define RESOLVER_TO_MECHANICAL_RATIO  1         // Ratio between resolver frequency and rotor mechanical frequency [Note: FW manages only case in which ( POLE_PAIR_NUM / RESOLVER_TO_MECHANICAL_RATIO ) >= 1]

Make sure, using this setting, that for a single mechanical turn you get a single resolver period… or adjust this setting accordingly.

Ciao

Gigi