HF-TMC9660 Driver
Hardware Agnostic C++ Driver for the TMC9660
Loading...
Searching...
No Matches
TMC9660::IIT Struct Reference

Subsystem for motor thermal overload protection via I²t integration. More...

#include <TMC9660.hpp>

Collaboration diagram for TMC9660::IIT:

Public Member Functions

bool configure (uint16_t timeConstant1_ms, float continuousCurrent1_A, uint16_t timeConstant2_ms, float continuousCurrent2_A) noexcept
 Configure the two I²t monitoring windows.
 
bool resetIntegralState () noexcept
 Reset both I²t accumulators to zero.
 
bool setThermalWindingTimeConstant1 (uint16_t ms) noexcept
 Set the winding time constant for window 1.
 
bool getThermalWindingTimeConstant1 (uint16_t &ms) noexcept
 Get the winding time constant for window 1.
 
bool setLimit1 (uint32_t limit) noexcept
 Set the I²t limit for window 1.
 
bool getLimit1 (uint32_t &limit) noexcept
 Get the I²t limit for window 1.
 
bool setThermalWindingTimeConstant2 (uint16_t ms) noexcept
 Set the winding time constant for window 2.
 
bool getThermalWindingTimeConstant2 (uint16_t &ms) noexcept
 Get the winding time constant for window 2.
 
bool setLimit2 (uint32_t limit) noexcept
 Set the I²t limit for window 2.
 
bool getLimit2 (uint32_t &limit) noexcept
 Get the I²t limit for window 2.
 
bool getActualTotalMotorCurrent (uint32_t &current, uint8_t motorIndex=0) noexcept
 Read the total motor current (torque+flux).
 
bool getSum1 (uint32_t &sum) noexcept
 Read the current integrated sum of window 1.
 
bool getSum2 (uint32_t &sum) noexcept
 Read the current integrated sum of window 2.
 

Private Member Functions

 IIT (TMC9660 &parent) noexcept
 

Private Attributes

TMC9660driver
 

Friends

class TMC9660
 

Detailed Description

Subsystem for motor thermal overload protection via I²t integration.

Configures two independent I²t windows that monitor integrated current over time (in A²·ms) to detect thermal overloads. If either limit is exceeded, a fault is triggered.

  • Refer to: Parameters #224–#228 (Table 41)
  • Manual: “IIT” section, p. 86
  • Related fault flags: IIT_1_EXCEEDED, IIT_2_EXCEEDED

Constructor & Destructor Documentation

◆ IIT()

TMC9660::IIT::IIT ( TMC9660 parent)
inlineexplicitprivatenoexcept

Member Function Documentation

◆ configure()

bool TMC9660::IIT::configure ( uint16_t  timeConstant1_ms,
float  continuousCurrent1_A,
uint16_t  timeConstant2_ms,
float  continuousCurrent2_A 
)
noexcept

Configure the two I²t monitoring windows.

Parameters
timeConstant1_msTime constant for window 1 [ms]
continuousCurrent1_ACurrent limit for window 1 [A]
timeConstant2_msTime constant for window 2 [ms]
continuousCurrent2_ACurrent limit for window 2 [A]
Returns
true if parameters written successfully
  • THERMAL_WINDING_TIME_CONSTANT_1/2
  • IIT_LIMIT_1/2

◆ getActualTotalMotorCurrent()

bool TMC9660::IIT::getActualTotalMotorCurrent ( uint32_t &  current,
uint8_t  motorIndex = 0 
)
noexcept

Read the total motor current (torque+flux).

  • ACTUAL_TOTAL_MOTOR_CURRENT

◆ getLimit1()

bool TMC9660::IIT::getLimit1 ( uint32_t &  limit)
noexcept

Get the I²t limit for window 1.

◆ getLimit2()

bool TMC9660::IIT::getLimit2 ( uint32_t &  limit)
noexcept

Get the I²t limit for window 2.

◆ getSum1()

bool TMC9660::IIT::getSum1 ( uint32_t &  sum)
noexcept

Read the current integrated sum of window 1.

  • IIT_SUM_1

◆ getSum2()

bool TMC9660::IIT::getSum2 ( uint32_t &  sum)
noexcept

Read the current integrated sum of window 2.

  • IIT_SUM_2

◆ getThermalWindingTimeConstant1()

bool TMC9660::IIT::getThermalWindingTimeConstant1 ( uint16_t &  ms)
noexcept

Get the winding time constant for window 1.

◆ getThermalWindingTimeConstant2()

bool TMC9660::IIT::getThermalWindingTimeConstant2 ( uint16_t &  ms)
noexcept

Get the winding time constant for window 2.

◆ resetIntegralState()

bool TMC9660::IIT::resetIntegralState ( )
noexcept

Reset both I²t accumulators to zero.

  • RESET_IIT_SUMS

◆ setLimit1()

bool TMC9660::IIT::setLimit1 ( uint32_t  limit)
noexcept

Set the I²t limit for window 1.

  • IIT_LIMIT_1

◆ setLimit2()

bool TMC9660::IIT::setLimit2 ( uint32_t  limit)
noexcept

Set the I²t limit for window 2.

  • IIT_LIMIT_2

◆ setThermalWindingTimeConstant1()

bool TMC9660::IIT::setThermalWindingTimeConstant1 ( uint16_t  ms)
noexcept

Set the winding time constant for window 1.

  • THERMAL_WINDING_TIME_CONSTANT_1

◆ setThermalWindingTimeConstant2()

bool TMC9660::IIT::setThermalWindingTimeConstant2 ( uint16_t  ms)
noexcept

Set the winding time constant for window 2.

  • THERMAL_WINDING_TIME_CONSTANT_2

Friends And Related Symbol Documentation

◆ TMC9660

friend class TMC9660
friend

Member Data Documentation

◆ driver

TMC9660& TMC9660::IIT::driver
private

The documentation for this struct was generated from the following files: