Post Go back to editing

TMC4671: motor fault detection / safety features

Category: Hardware
Product Number: TMC4671-LA

We are using the TMC4671-LA to control brushed DC motor with an incremental A/B/N as the primary feedback (currently using the TMC4671-EVAL + TMC-UPS-10A70V-EVAL boards to test the design). Is there any way using the TMC4671-LA to detect if the motor is stalled and if possible program the device to automatically disable the PWM output to protect the motor.

If we set register 0x6D = 3 (PID_POSITION_ERROR) then we can read the current position error in register 0x6C. Is there any way to set a threshold in the TMC4671 that if the position error exceeds a certain value the PWM is disable or the STATUS pin is assert to interrupt the host processor? Section 5 in the datasheet mentions several parameters can be masked to the STATUS interrupt but we cannot find any information on what triggers the interrupt (e.g. if 'pid_x_errsum_limit' is selected what is the errsum_limit?)

Separately, we're not entirely sure how we are supposed to use register 0x26 ABN_DECODER_PPR. The datasheet in section 4.6.2 states that 'The PPR parameter must be set exactly according to the used encoder'. In our case that would be 500 counts/rev. With quadrature & gearbox taken into account this would give us 38000 counts/rev at the output of the gearbox. However, if we set ABN_DECODER_PPR=500 and PID_POSITION_TARGET=38000 the motor only moves a small amount. If we set ABN_DECODER_PPR=65535 and PID_POSITION_TARGET=38000 then we get the expected movement. Is ABN_DECODER_PPR scaled internally or is there some other setting the needs to be set.

Best regards,

Jamie King

  • Made a discovery this morning. Can someone at Analog/Trinamic explain how register 0x74 WATCHDOG_CFG works? It is omitted from the datasheet but is visible in TMCL-IDE v3.9.0. It has the following options:

    • 0 - No action
    • 1 - PWM and power stage disable
    • 2 - Global reset
    • 3 - Reserved

    Option 1 looks like a good fit for the problem outlined above. Is the WATCHDOG operational and if so how do we use it?

    Best regards,


  • Hello,

    Disappointing that after so long, nobody from Analog Devices/Trinamic answered to your questions...

    Me and other people are also interested if there is a way that the TMC4671 can actively monitor the PID_POSITION_ERROR and react/signal an error if it goes outside some specified limits.

    I hope someone answers this question.


    Best regards,


  • Hi Paul,

    Yes very disappointing, we never got any further with this. We did do some more internal testing of the IC but ultimately concluded that TMC4671 was not going to work for us as it lacked the features needed to replace our current DC motor controller. Unfortunately, since Trinamic were acquired by Maxim (who were then acquired by Analog), it has gotten harder to get info from the relevant people. Hope you have more luck!

    Best regards,