Testing the TMC4671

A project log for Open FFBoard

A modular and open source force feedback interface and motor driver for DIY wheels and controllers

Yannick (Gigawipf)Yannick (Gigawipf) 11/23/2019 at 11:562 Comments

As mentioned before the reference motor driver could be powered by a Trinamic TMC4671.
This motor controller promises everything a universal torque mode motor driver should do while being compatible with 2 phase steppers, 3 phase servos and DC motors with the same power stage. Nice.

Big thanks to Trinamic MC for sending me a TMC4671 Devkit. This way i can begin testing the features before the fixed chip is sold again and the final pcb is manufactured.

I tested the chip with the TMC IDE Trinamic provides for this kit. This software nicely explains with wizards in the form of a tutorial how to setup the core parameters of the TMC4671.
It also helps debugging with graphs and register browsers.
I have made a setup with a 2 phase stepper, an 8192ppr encoder and torque mode to see how it responds and it pretty much does everything the old OHSC with the powerstep01 did but much better and in hardware. Nice.

A modular design would also allow support for multiple TMC Motor Drivers on one SPI bus for 2 or 3 axis systems.

Video of the TMC4671 running

And if you perfectly align the encoder speeds impossible for normals stepper drivers can be achieved.

The next step is to finish a pcb and wait until the TMC4671 is sold again. This might be the best solution fo a reference motor driver for this project.

Trinamic said to me that the TMC4671 in the fixed version is planned to be released in march 2020.
Until then the current version is sold that has a few hardware problems.
This means that the next prototype will still have the old version of the chip.
For SPI control and FFB the bugs should not be an issue apart from having to slow down the spi clock a bit for now to avoid a data corruption issue.

The step/dir interface does not work and the adc and spi MSB might have sporadic glitches which fortunately did not affect the motor control in the tests.
All known issues are listed in the errata of the datasheet.


paulo wrote 06/25/2022 at 10:10 point

I have a problem with the tcm4671 controlling the servo motor, when the motor is running if the power goes off or reset the microcontroller loses control over the motor rotating at maximum speed.

  Are you sure? yes | no

Yannick (Gigawipf) wrote 06/25/2022 at 10:43 point

The TMC4671 does all the control on its own. You should make sure the enable pin goes low when the microcontroller resets with a pulldown resistor. Then the TMC will immediately stop the PWM output.

  Are you sure? yes | no