Open FFBoard
Open source force feedback firmware
TMC_1 Class Reference

#include <TMC4671.h>

Inheritance diagram for TMC_1:
TMC4671 cpp_freertos::Thread ExtiHandler SPIDevice CommandHandler Encoder PersistentStorage MotorDriver

Public Member Functions

 TMC_1 ()
 
- Public Member Functions inherited from TMC4671
const ClassIdentifier getInfo ()
 Command handlers always have class infos. Works well with ChoosableClass. More...
 
const ClassType getClassType () override
 
 TMC4671 (SPIPort &spiport, OutputPin cspin, uint8_t address=1)
 
void setHwType (TMC_HW_Ver type)
 
void setAddress (uint8_t address)
 
uint8_t getSpiAddr ()
 
bool setSpiAddr (uint8_t chan)
 
virtual ~TMC4671 ()
 
bool initialize ()
 
void initializeWithPower ()
 
void Run ()
 
bool motorReady ()
 
bool hasPower ()
 
int32_t getTmcVM ()
 
bool isSetUp ()
 
uint32_t readReg (uint8_t reg)
 
void writeReg (uint8_t reg, uint32_t dat)
 
void writeRegAsync (uint8_t reg, uint32_t dat)
 
void updateReg (uint8_t reg, uint32_t dat, uint32_t mask, uint8_t shift)
 
void setMotorType (MotorType motor, uint16_t poles)
 
void runOpenLoop (uint16_t ud, uint16_t uq, int32_t speed, int32_t accel, bool torqueMode=false)
 
void setOpenLoopSpeedAccel (int32_t speed, uint32_t accel)
 
bool calibrateAdcOffset (uint16_t time=500)
 
void setup_ABN_Enc (TMC4671ABNConf encconf)
 
void setup_AENC (TMC4671AENCConf encconf)
 
void setup_HALL (TMC4671HALLConf hallconf)
 
void bangInitEnc (int16_t power)
 
void estimateABNparams ()
 
void estimateExtEnc ()
 
bool checkEncoder ()
 
void calibrateAenc ()
 
void calibrateEncoder ()
 
void setEncoderType (EncoderType_TMC type)
 
uint32_t getEncCpr ()
 
void setAdcOffset (uint32_t adc_I0_offset, uint32_t adc_I1_offset)
 
void setAdcScale (uint32_t adc_I0_scale, uint32_t adc_I1_scale)
 
void setupFeedForwardTorque (int32_t gain, int32_t constant)
 
void setupFeedForwardVelocity (int32_t gain, int32_t constant)
 
void setFFMode (FFMode mode)
 
void setSequentialPI (bool sequential)
 
void setBiquadFlux (const TMC4671Biquad &filter)
 
void setBiquadTorque (const TMC4671Biquad &filter)
 
void setBiquadPos (const TMC4671Biquad &filter)
 
void setBiquadVel (const TMC4671Biquad &filter)
 
void setTorqueFilter (TMC4671Biquad_conf &conf)
 
bool pingDriver ()
 
std::pair< uint32_t, std::string > getTmcType ()
 
void changeState (TMC_ControlState newState, bool force=false)
 
bool externalEncoderAllowed ()
 
void setExternalEncoderAllowed (bool allow)
 
float getPwmFreq ()
 
void setPwmFreq (float freq)
 
void setBBM (uint8_t bbml, uint8_t bbmh)
 
void timerElapsed (TIM_HandleTypeDef *htim)
 
void setPositionExt (int32_t pos)
 
void stopMotor ()
 
void startMotor ()
 
void emergencyStop (bool reset)
 
void turn (int16_t power)
 
int16_t controlFluxDissipate ()
 
void setTorque (int16_t torque)
 
void setTargetPos (int32_t pos)
 
int32_t getTargetPos ()
 
void setTargetVelocity (int32_t vel)
 
int32_t getTargetVelocity ()
 
int32_t getVelocity ()
 
int16_t getTorque ()
 
void setFlux (int16_t flux)
 
int16_t getFlux ()
 
void setFluxTorque (int16_t flux, int16_t torque)
 
void setFluxTorqueFF (int16_t flux, int16_t torque)
 
std::pair< int32_t, int32_t > getActualTorqueFlux ()
 
int32_t getActualFlux ()
 
int32_t getActualTorque ()
 
void rampFlux (uint16_t target, uint16_t time_ms)
 
bool checkAdc ()
 
float getTemp ()
 
TMC_ControlState getState ()
 
void setPhiEtype (PhiE type)
 
PhiE getPhiEtype ()
 
void setPhiE_ext (int16_t phiE)
 
int16_t getPhiE ()
 
int16_t getPhiEfromExternalEncoder ()
 
int16_t getPhiE_Enc ()
 
void setGpioMode (TMC_GpioMode mode)
 
uint8_t getGpioPins ()
 
void setGpioPins (uint8_t pins)
 
void setPosSel (PosSelection psel)
 
void setVelSel (VelSelection vsel, uint8_t mode=0)
 
void setMotionMode (MotionMode mode, bool force=false)
 
MotionMode getMotionMode ()
 
void setUdUq (int16_t ud, int16_t uq)
 
void setBrakeLimits (uint16_t low, uint16_t high)
 
bool reachedPosition (uint16_t tolerance)
 
void setPids (TMC4671PIDConf pids)
 
TMC4671PIDConf getPids ()
 
void setLimits (TMC4671Limits limits)
 
TMC4671Limits getLimits ()
 
void setUqUdLimit (uint16_t limit)
 
void setTorqueLimit (uint16_t limit)
 
void setPidPrecision (TMC4671PidPrecision setting)
 
EncodergetEncoder () override
 
void setEncoder (std::shared_ptr< Encoder > &encoder) override
 
bool hasIntegratedEncoder () override
 
bool usingExternalEncoder ()
 
int32_t getPos () override
 
int32_t getPosAbs () override
 
void setPos (int32_t pos) override
 
void setTmcPos (int32_t pos)
 
uint32_t getCpr ()
 
void setCpr (uint32_t cpr)
 
EncoderType getEncoderType () override
 
uint32_t posToEnc (uint32_t pos)
 
uint32_t encToPos (uint32_t enc)
 
void exti (uint16_t GPIO_Pin)
 
bool findEncoderIndex (int32_t speed=10, uint16_t power=2500, bool offsetPhiM=false, bool zeroCount=false)
 
bool autohome ()
 
void zeroAbnUsingPhiM (bool offsetPhiE=false)
 
StatusFlags readFlags (bool maskedOnly=true)
 
void setStatusMask (StatusFlags mask)
 
void setStatusMask (uint32_t mask)
 
void setStatusFlags (uint32_t flags)
 
void setStatusFlags (StatusFlags flags)
 
void setEncoderIndexFlagEnabled (bool enabled, bool zeroEncoder=false)
 
void statusCheck ()
 
void saveFlash () override
 
void restoreFlash () override
 
uint16_t encodeEncHallMisc ()
 
void restoreEncHallMisc (uint16_t val)
 
void beginSpiTransfer (SPIPort *port)
 
void endSpiTransfer (SPIPort *port)
 
CommandStatus command (const ParsedCommand &cmd, std::vector< CommandReply > &replies)
 
void registerCommands ()
 
virtual std::string getHelpstring ()
 
- Public Member Functions inherited from MotorDriver
 MotorDriver ()
 
virtual ~MotorDriver ()
 
- Public Member Functions inherited from ChoosableClass
virtual ~ChoosableClass ()
 
uint16_t getSelectionID ()
 
- Public Member Functions inherited from PersistentStorage
 PersistentStorage ()
 
virtual ~PersistentStorage ()
 
void restoreFlashDelayed ()
 
- Public Member Functions inherited from Encoder
 Encoder ()
 
virtual ~Encoder ()
 
virtual float getPos_f ()
 
virtual float getPosAbs_f ()
 
- Public Member Functions inherited from CommandHandler
 CommandHandler (const char *clsname, uint16_t clsid, uint8_t instance=0)
 
virtual ~CommandHandler ()
 
virtual bool hasCommands ()
 
virtual void setCommandsEnabled (bool enable)
 
void registerCommands ()
 
virtual CommandStatus internalCommand (const ParsedCommand &cmd, std::vector< CommandReply > &replies)
 
virtual std::string getCommandsHelpstring ()
 
virtual std::string getCsvHelpstring ()
 
virtual uint8_t getCommandHandlerInstance ()
 
void broadcastCommandReply (CommandReply reply, uint32_t cmdId, CMDtype type)
 
void sendCommandReplyAsync (CommandReply reply, uint32_t cmdId, CMDtype type, CommandInterface *interface=nullptr)
 
virtual uint16_t getCommandHandlerID ()
 
virtual CmdHandlerInfogetCommandHandlerInfo ()
 
virtual bool isValidCommandId (uint32_t cmdid, uint32_t ignoredFlags=0, uint32_t requiredFlag=0)
 
virtual CmdHandlerCommanddefgetCommandFromName (const std::string &cmd, uint32_t ignoredFlags=0)
 
virtual CmdHandlerCommanddefgetCommandFromId (const uint32_t id, uint32_t ignoredFlags=0)
 
template<typename ID >
void registerCommand (const char *cmd, const ID cmdid, const char *help=nullptr, uint32_t flags=0)
 
- Public Member Functions inherited from SPIDevice
 SPIDevice (SPIPort &port, OutputPin csPin)
 
 SPIDevice (SPIPort &port, SPIConfig &spiConfig)
 
virtual ~SPIDevice ()
 
void assertChipSelect ()
 
void clearChipSelect ()
 
virtual bool updateCSPin (OutputPin &csPin)
 
virtual void spiTxCompleted (SPIPort *port)
 
virtual void spiRxCompleted (SPIPort *port)
 
virtual void spiTxRxCompleted (SPIPort *port)
 
virtual void spiRequestError (SPIPort *port)
 
virtual SPIConfiggetSpiConfig ()
 
- Public Member Functions inherited from ExtiHandler
 ExtiHandler ()
 
virtual ~ExtiHandler ()
 
- Public Member Functions inherited from cpp_freertos::Thread
 Thread (const std::string Name, uint16_t StackDepth, UBaseType_t Priority)
 
 Thread (const char *Name, uint16_t StackDepth, UBaseType_t Priority)
 
 Thread (uint16_t StackDepth, UBaseType_t Priority)
 
bool Start ()
 
virtual ~Thread ()
 
TaskHandle_t GetHandle ()
 
void Suspend ()
 
void Resume ()
 
void ResumeFromISR ()
 
void Notify ()
 
void NotifyFromISR ()
 
uint32_t WaitForNotification (TickType_t Timeout=portMAX_DELAY)
 
UBaseType_t GetPriority ()
 
UBaseType_t GetPriorityFromISR ()
 
void SetPriority (UBaseType_t NewPriority)
 
std::string GetName ()
 
char * GetName ()
 

Static Public Member Functions

static bool isCreatable ()
 
- Static Public Member Functions inherited from TMC4671
static TMC4671MotConf decodeMotFromInt (uint16_t val)
 
static uint16_t encodeMotToInt (TMC4671MotConf mconf)
 
- Static Public Member Functions inherited from ChoosableClass
static bool isCreatable ()
 
- Static Public Member Functions inherited from PersistentStorage
static std::vector< PersistentStorage * > & getFlashHandlers ()
 
static void restoreFlashStartupCb ()
 
- Static Public Member Functions inherited from CommandHandler
static void logSerial (std::string string)
 Send a log formatted sequence. More...
 
static void logSerialDebug (std::string string)
 Send a log formatted sequence if debug is on. More...
 
static bool logsEnabled ()
 
static void setLogsEnabled (bool enabled)
 
static uint32_t getClassIdFromName (const char *name)
 
static const char * getClassNameFromId (const uint32_t id)
 
static CommandHandlergetHandlerFromHandlerId (const uint16_t cmdhandlerID)
 
static CommandHandlergetHandlerFromId (const uint16_t id, const uint8_t instance=0xFF)
 
static CommandHandlergetHandlerFromClassName (const char *name, const uint8_t instance=0xFF)
 
static std::vector< CommandHandler * > getHandlersFromClassName (const char *name)
 
static std::vector< CommandHandler * > getHandlersFromId (const uint16_t id)
 
static bool isInHandlerList (CommandHandler *handler)
 
static std::string getAllHelpstrings ()
 
static std::vector< CommandHandler * > & getCommandHandlers ()
 
template<typename TVal >
static CommandStatus handleGetSet (const ParsedCommand &cmd, std::vector< CommandReply > &replies, TVal &value)
 
template<typename TVal , class cls , class cls1 >
static CommandStatus handleGetSetFunc (const ParsedCommand &cmd, std::vector< CommandReply > &replies, TVal &value, void(cls1::*setfunc)(TVal), cls *obj)
 
template<typename TVal , class cls , class cls1 , class cls2 >
static CommandStatus handleGetFuncSetFunc (const ParsedCommand &cmd, std::vector< CommandReply > &replies, TVal(cls1::*getfunc)(), void(cls2::*setfunc)(TVal), cls *obj)
 
template<typename TVal , class cls , class cls1 >
static CommandStatus handleGetFuncSet (const ParsedCommand &cmd, std::vector< CommandReply > &replies, TVal &value, TVal(cls1::*getfunc)(), cls *obj)
 
- Static Public Member Functions inherited from cpp_freertos::Thread
static void Yield ()
 
static void StartScheduler ()
 
static void EndScheduler ()
 

Static Public Attributes

static ClassIdentifier info
 
- Static Public Attributes inherited from TMC4671
static ClassIdentifier info
 
- Static Public Attributes inherited from MotorDriver
static ClassIdentifier info ={.name = "None" , .id=CLSID_MOT_NONE, .visibility = ClassVisibility::visible}
 
static const std::vector< class_entry< MotorDriver > > all_drivers
 
- Static Public Attributes inherited from ChoosableClass
static ClassIdentifier info
 
- Static Public Attributes inherited from Encoder
static ClassIdentifier info ={.name = "None" , .id=CLSID_ENCODER_NONE, .visibility = ClassVisibility::visible}
 
static const std::vector< class_entry< Encoder > > all_encoders
 
- Static Public Attributes inherited from CommandHandler
static bool logEnabled = true
 
- Static Public Attributes inherited from ExtiHandler
static std::vector< ExtiHandler * > extiHandlers
 

Additional Inherited Members

- Public Attributes inherited from TMC4671
TMC4671MainConfig conf
 
bool emergency = false
 
bool estopTriggered = false
 
int16_t nextFlux = 0
 
int16_t idleFlux = 0
 
uint16_t maxOffsetFlux = 0
 
int16_t bangInitPower = 5000
 
const float fluxDissipationLimit = 1000
 
TMC4671PIDConf curPids
 
TMC4671Limits curLimits
 
TMC4671PidPrecision pidPrecision
 
TMC4671ABNConf abnconf
 
TMC4671HALLConf hallconf
 
TMC4671AENCConf aencconf
 
bool flagCheckInProgress = false
 
StatusFlags statusFlags = {0}
 
StatusFlags statusMask = {0}
 
TMC4671FlashAddrs flashAddrs
 
bool allowSlowSPI = true
 
- Protected Member Functions inherited from CommandHandler
void setInstance (uint8_t instance)
 
virtual void addCommandHandler ()
 
virtual void removeCommandHandler ()
 
- Protected Member Functions inherited from SPIDevice
virtual void setSpiConfig (SPIConfig config)
 
- Protected Member Functions inherited from cpp_freertos::Thread
virtual void Cleanup ()
 
void Delay (const TickType_t Delay)
 
void DelayUntil (const TickType_t Period)
 
void ResetDelayUntil ()
 
bool Wait (ConditionVariable &Cv, Mutex &CvLock, TickType_t Timeout=portMAX_DELAY)
 
- Static Protected Member Functions inherited from CommandHandler
static std::vector< uint16_t > & getCommandHandlerIds ()
 
- Protected Attributes inherited from MotorDriver
std::shared_ptr< EncoderdrvEncoder = std::make_shared<Encoder>()
 
- Protected Attributes inherited from ChoosableClass
uint16_t selectionId
 Should only be written by ClassChooser during creation. More...
 
- Protected Attributes inherited from PersistentStorage
bool restoreDelayedFlag = false
 
- Protected Attributes inherited from Encoder
uint32_t cpr = 0
 
- Protected Attributes inherited from CommandHandler
bool commandsEnabled = true
 
std::vector< CmdHandlerCommanddefregisteredCommands
 
CmdHandlerInfo cmdHandlerInfo
 
- Protected Attributes inherited from SPIDevice
SPIPortspiPort
 
SPIConfig spiConfig
 
- Static Protected Attributes inherited from PersistentStorage
static bool startupComplete = false
 

Detailed Description

Definition at line 660 of file TMC4671.h.

Constructor & Destructor Documentation

◆ TMC_1()

TMC_1::TMC_1 ( )
inline

Definition at line 662 of file TMC4671.h.

Member Function Documentation

◆ isCreatable()

bool TMC_1::isCreatable ( )
static

Definition at line 25 of file TMC4671.cpp.

Member Data Documentation

◆ info

ClassIdentifier TMC_1::info
static
Initial value:
= {
.name = "TMC4671 (CS 1)",
.id=CLSID_MOT_TMC0,
}

Definition at line 666 of file TMC4671.h.


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