Skip to content

Figures

Every figure on this site is drawn by a Python module from facts extracted from the code, so it is rebuilt, not redrawn, when the code changes. CI runs hardfoc-docs figures --check and fails when a committed figure no longer matches the code. Each figure below lists the files it is drawn from.

Three layers, one of them yours

Layer diagram: the application calls the hardware-agnostic TMC9660 driver and its subsystems, which use the SPI or UART communication interface, which calls the platform port you write, which drives the SPI bus and four control pins of the TMC9660.Layer diagram: the application calls the hardware-agnostic TMC9660 driver and its subsystems, which use the SPI or UART communication interface, which calls the platform port you write, which drives the SPI bus and four control pins of the TMC9660.
Three layers, one of them yours
Figure description and sources

From top to bottom. Your application talks to one TMC9660 object, whose public members are the chip's subsystems (listed from inc/tmc9660.hpp). Each subsystem turns a call into TMCL parameter reads and writes. The communication interface (SpiCommInterface or UartCommInterface in inc/tmc9660_comm_interface.hpp) frames them, polls NOT_READY, pipelines batches and drives the control pins by name. The platform port is the only code you write: a class that moves bytes over SPI or UART, sets and reads four GPIOs and waits. Below it is the hardware.

Drawn from: inc/tmc9660.hpp TMC9660 members; inc/tmc9660_comm_interface.hpp SpiCommInterface; figure module docs/diagrams/figures/driver-layers.py.

Figure module: docs/diagrams/figures/driver-layers.py

Drawn from: