|
HF-TMC9660 Driver 0.1.0-dev
Hardware Agnostic C++ Driver for the TMC9660
|
Configuration structure for position control auto-configuration. More...
#include <tmc9660.hpp>
Public Attributes | |
| tmc9660::tmcl::PositionSensorSelection | sensorSelection |
| Position feedback sensor selection (required) | |
| std::optional< uint16_t > | positionP |
| Position P gain [0-32767] (optional, default: 2000). | |
| std::optional< uint16_t > | positionI |
| Position I gain [0-32767] (optional, default: 100). | |
| tmc9660::tmcl::VelocityPiNorm | pNormalization |
| tmc9660::tmcl::VelocityPiNorm | iNormalization |
| std::optional< uint16_t > | positionScalingFactor |
| std::optional< uint32_t > | encoderCountsPerRev |
| uint8_t | loopDownsampling = 1 |
| Position loop downsampling factor [0-127] (default: 1). | |
| std::optional< int32_t > | positionLimitLow |
| Low position limit (optional, disabled if not provided) | |
| std::optional< int32_t > | positionLimitHigh |
| High position limit (optional, disabled if not provided) | |
| uint32_t | positionReachedThreshold = 100 |
| Position reached threshold (default: 100) | |
| std::optional< uint32_t > | stopOnDeviationMaxError |
| bool | stopOnDeviationSoftStop |
| Use soft stop (ramp down) for deviation stop (default: true) | |
Configuration structure for position control auto-configuration.
| std::optional<uint32_t> tmc9660::TMC9660< CommType >::PositionControl::PositionConfig::encoderCountsPerRev |
Encoder CPR for auto-calculating position scaling (optional, required if positionScalingFactor not provided)
| tmc9660::tmcl::VelocityPiNorm tmc9660::TMC9660< CommType >::PositionControl::PositionConfig::iNormalization |
I-term normalization (default: SHIFT_16_BIT)
| uint8_t tmc9660::TMC9660< CommType >::PositionControl::PositionConfig::loopDownsampling = 1 |
Position loop downsampling factor [0-127] (default: 1).
Clock Distribution (Cascading): The position control loop frequency is derived from the velocity loop frequency:
Effect on PI Gains: Lower loop frequencies (higher downsampling) require proportionally higher PI gains to maintain the same response. The integrator speed depends on the PWM frequency, velocity loop downsampling, and this position loop downsampling factor.
Typical Values:
Note: Position loop must be slower than velocity loop (typically 5-10× slower). Position loop downsampling factor [0-127] (default: 1)
| tmc9660::tmcl::VelocityPiNorm tmc9660::TMC9660< CommType >::PositionControl::PositionConfig::pNormalization |
P-term normalization (default: SHIFT_16_BIT)
| std::optional<uint16_t> tmc9660::TMC9660< CommType >::PositionControl::PositionConfig::positionI |
Position I gain [0-32767] (optional, default: 100).
Direct I gain for the position PI controller. Higher values = better steady-state accuracy but potentially more overshoot. Typical range: 50-200. Position I gain [0-32767] (optional, default: 100)
| std::optional<int32_t> tmc9660::TMC9660< CommType >::PositionControl::PositionConfig::positionLimitHigh |
High position limit (optional, disabled if not provided)
| std::optional<int32_t> tmc9660::TMC9660< CommType >::PositionControl::PositionConfig::positionLimitLow |
Low position limit (optional, disabled if not provided)
| std::optional<uint16_t> tmc9660::TMC9660< CommType >::PositionControl::PositionConfig::positionP |
Position P gain [0-32767] (optional, default: 2000).
Direct P gain for the position PI controller. Higher values = faster response but potentially less stable. Typical range: 1000-4000 for most applications. Position P gain [0-32767] (optional, default: 2000)
| uint32_t tmc9660::TMC9660< CommType >::PositionControl::PositionConfig::positionReachedThreshold = 100 |
Position reached threshold (default: 100)
| std::optional<uint16_t> tmc9660::TMC9660< CommType >::PositionControl::PositionConfig::positionScalingFactor |
Position scaling factor [1-2047] (optional, auto-calculated from encoder CPR if not provided)
| tmc9660::tmcl::PositionSensorSelection tmc9660::TMC9660< CommType >::PositionControl::PositionConfig::sensorSelection |
Position feedback sensor selection (required)
| std::optional<uint32_t> tmc9660::TMC9660< CommType >::PositionControl::PositionConfig::stopOnDeviationMaxError |
Max allowed position deviation for stop condition (optional, disabled if not provided)
| bool tmc9660::TMC9660< CommType >::PositionControl::PositionConfig::stopOnDeviationSoftStop |
Use soft stop (ramp down) for deviation stop (default: true)