HF-TMC9660 Driver 0.1.0-dev
Hardware Agnostic C++ Driver for the TMC9660
Loading...
Searching...
No Matches
tmc9660_comm_interface.hpp File Reference

Communication interfaces for TMC9660 Parameter Mode devices using TMCL protocol over SPI. More...

#include <array>
#include <cstdarg>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <span>
#include <string>
Include dependency graph for tmc9660_comm_interface.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  tmc9660::TMCLReply
 Reply structure returned by TMCL command operations. More...
 
struct  tmc9660::TMCLFrame
 Frame structure for TMCL commands. More...
 
class  tmc9660::CommInterface< Derived >
 SPI status codes as per TMC9660 Parameter Mode. More...
 
class  tmc9660::SpiCommInterface< Derived >
 CRTP-based SPI implementation of TMC9660CommInterface. More...
 
class  tmc9660::UartCommInterface< Derived >
 CRTP-based UART implementation of TMC9660CommInterface. More...
 

Namespaces

namespace  tmc9660
 

Macros

#define TMC9660_LOG_DEBUG(comm_obj, level, tag, ...)   (comm_obj).logDebug(level, tag, __VA_ARGS__)
 Compile-time debug logging control for TMC9660 library.
 

Enumerations

enum class  tmc9660::CommMode { tmc9660::SPI , tmc9660::UART }
 Supported physical communication modes for TMC9660. More...
 
enum class  tmc9660::TMC9660CtrlPin { tmc9660::RST , tmc9660::DRV_EN , tmc9660::FAULTN , tmc9660::WAKE }
 TMC9660 control pin identifiers with board-agnostic naming. More...
 
enum class  tmc9660::GpioSignal { tmc9660::INACTIVE = 0 , tmc9660::ACTIVE = 1 }
 GPIO signal states with board-agnostic naming. More...
 
enum class  tmc9660::SPIStatus : uint8_t { tmc9660::OK = 0xFF , tmc9660::CHECKSUM_ERROR = 0x00 , tmc9660::FIRST_CMD = 0x0C , tmc9660::NOT_READY = 0xF0 }
 SPI status codes as per TMC9660 Parameter Mode specification. More...
 

Functions

static constexpr uint8_t tmc9660::tmclChecksum (const uint8_t *bytes, size_t n, uint8_t start=0) noexcept
 Calculate 8-bit checksum using sum of bytes method.
 

Detailed Description

Communication interfaces for TMC9660 Parameter Mode devices using TMCL protocol over SPI.

Macro Definition Documentation

◆ TMC9660_LOG_DEBUG

#define TMC9660_LOG_DEBUG ( comm_obj,
level,
tag,
... )   (comm_obj).logDebug(level, tag, __VA_ARGS__)

Compile-time debug logging control for TMC9660 library.

Define TMC9660_DISABLE_DEBUG_LOGGING before including this header to completely disable all debug logging. When disabled, all logDebug() calls are optimized out at compile time, including argument evaluation (via macro replacement).

Example usage: #define TMC9660_DISABLE_DEBUG_LOGGING #include "TMC9660CommInterface.hpp"

Or via compiler flags: -DTMC9660_DISABLE_DEBUG_LOGGING