My configuration.
- TMC4671 motor controller using custom hardware based on the evaluation board.
- 2MHz SPI communication with the TMC4671 and an STM32 microcontroller.
- Reading TMC4671 messages such as velocity, position, torque/flux and outputting on the CAN bus for logging purposes.
- Using TMCL IDE (V3.11.0) in parallel to control the motor by writing to the registers.
I have set the limits during start-up and have successfully operated a NEMA 24 stepper motor in Torque, Velocity and Position modes. Operation is sometimes inconsistent for example, in torque mode, the value entered to begin the motor running (say 500) does not always start the motor so I'm having to increase this to say 1000, sometimes more. In velocity mode, I cannot exceed past 800rpm.
I would like to operate the stepper motor in Torque, Velocity and Position modes combined i.e. the controller determines automatically what mode to operate in. This is analogous to a power supply where one sets the output voltage and limiting current. When an overload occurs then the power supply drops the voltage to maintain the current limit.
Is there a way to combine the Torque, Velocity and Position modes so that it automatically achieves its target position without exceeding the velocity or torque limits? Failing that, I will have to implement this in the STM32 via a PID controller in Torque mode where I regulate the torque target to achieve the desired velocity and position unless there's a simpler way using a feature of the TMC4671 that I'm unaware of?