blob: 75e2dd22ee074087ecc3e306e23be3e9be150903 [file] [log] [blame]
.. zephyr:code-sample:: tmc50xx
:name: TMC50XX stepper
:relevant-api: stepper_interface
Rotate a TMC50XX stepper motor and change velocity at runtime.
Description
***********
This sample application periodically spins the stepper clockwise and counterclockwise depending on
the :kconfig:option:`CONFIG_PING_PONG_N_REV` configuration.
References
**********
- TMC5041: https://www.analog.com/media/en/technical-documentation/data-sheets/TMC5041_datasheet_rev1.16.pdf
- TMC5072: https://www.analog.com/media/en/technical-documentation/data-sheets/TMC5072_datasheet_rev1.26.pdf
Wiring
*******
This sample uses the TMC5072 BOB controlled using the SPI interface. The board's Devicetree must define
a ``stepper`` alias for the stepper motor node.
Building and Running
********************
This project spins the stepper and outputs the events to the console. It requires an TMC50XX stepper
driver. It should work with any platform featuring a SPI peripheral interface.
It does not work on QEMU.
.. zephyr-app-commands::
:zephyr-app: samples/drivers/stepper/tmc50xx
:board: nucleo_g071rb
:goals: build flash
Sample Output
=============
.. code-block:: console
Starting tmc50xx stepper sample
stepper is 0x8007240, name is tmc_stepper@0
stepper_callback steps completed changing direction
stepper_callback steps completed changing direction
stepper_callback steps completed changing direction
<repeats endlessly>