Open FFBoard
Open source force feedback firmware
TMC4671.h File Reference

Go to the source code of this file.

Classes

struct  TMC4671MotConf
 
struct  TMC4671HardwareTypeConf
 
union  StatusFlags
 
struct  StatusFlags::StatusFlags_s
 
struct  TMC4671MainConfig
 
struct  TMC4671PIDConf
 
struct  TMC4671Limits
 
struct  TMC4671PidPrecision
 
struct  TMC4671FlashAddrs
 
struct  TMC4671ABNConf
 
struct  TMC4671AENCConf
 
struct  TMC4671HALLConf
 
struct  TMC4671Biquad_t
 
struct  TMC4671Biquad_conf
 
class  TMC4671Biquad
 
struct  TMC4671BiquadFilters
 
class  TMC4671
 
class  TMC4671::TMC_ExternalEncoderUpdateThread
 
class  TMC_1
 
class  TMC_2
 

Enumerations

enum class  TMC_ControlState : uint32_t {
  uninitialized , waitPower , Shutdown , Running ,
  EncoderInit , EncoderFinished , HardError , OverTemp ,
  IndexSearch , FullCalibration , ExternalEncoderInit , Pidautotune
}
 
enum class  TMC_PwmMode : uint8_t {
  off = 0 , HSlow_LShigh = 1 , HShigh_LSlow = 2 , res2 = 3 ,
  res3 = 4 , PWM_LS = 5 , PWM_HS = 6 , PWM_FOC = 7
}
 
enum class  TMC_StartupType { NONE , coldStart , warmStart }
 
enum class  TMC_GpioMode {
  DebugSpi , DSAdcClkOut , DSAdcClkIn , Aout_Bin ,
  Ain_Bout , Aout_Bout , Ain_Bin
}
 
enum class  MotorType : uint8_t {
  NONE =0 , DC =1 , STEPPER =2 , BLDC =3 ,
  ERR
}
 
enum class  PhiE : uint8_t {
  ext =1 , openloop =2 , abn =3 , hall =5 ,
  aenc =6 , aencE =7 , NONE , extEncoder
}
 
enum class  MotionMode : uint8_t {
  stop =0 , torque =1 , velocity =2 , position =3 ,
  prbsflux =4 , prbstorque =5 , prbsvelocity =6 , uqudext =8 ,
  encminimove =9 , NONE
}
 
enum class  FFMode : uint8_t { none =0 , velocity =1 , torque =2 }
 
enum class  PosSelection : uint8_t {
  PhiE =0 , PhiE_ext =1 , PhiE_openloop =2 , PhiE_abn =3 ,
  res1 =4 , PhiE_hal =5 , PhiE_aenc =6 , PhiA_aenc =7 ,
  res2 =8 , PhiM_abn =9 , PhiM_abn2 =10 , PhiM_aenc =11 ,
  PhiM_hal =12
}
 
enum class  VelSelection : uint8_t {
  PhiE =0 , PhiE_ext =1 , PhiE_openloop =2 , PhiE_abn =3 ,
  res1 =4 , PhiE_hal =5 , PhiE_aenc =6 , PhiA_aenc =7 ,
  res2 =8 , PhiM_abn =9 , PhiM_abn2 =10 , PhiM_aenc =11 ,
  PhiM_hal =12
}
 
enum class  EncoderType_TMC : uint8_t {
  NONE =0 , abn =1 , sincos =2 , uvw =3 ,
  hall =4 , ext =5
}
 
enum class  TMC_HW_Ver : uint8_t {
  NONE =0 , v1_0 , v1_2 , v1_2_2 ,
  v1_2_2_LEM20 , v1_2_2_100mv , v1_3_66mv
}
 
enum class  TMCbiquadpreset : uint8_t { none =0 , lowpass =1 , notch =2 , peak =3 }
 

Variables

SPI_HandleTypeDef HSPIDRV
 
TIM_HandleTypeDef TIM_TMC
 
const std::vector< std::pair< TMC_HW_Ver, std::string > > tmcHwVersionNames
 

Enumeration Type Documentation

◆ EncoderType_TMC

enum class EncoderType_TMC : uint8_t
strong
Enumerator
NONE 
abn 
sincos 
uvw 
hall 
ext 

Definition at line 55 of file TMC4671.h.

◆ FFMode

enum class FFMode : uint8_t
strong
Enumerator
none 
velocity 
torque 

Definition at line 52 of file TMC4671.h.

◆ MotionMode

enum class MotionMode : uint8_t
strong
Enumerator
stop 
torque 
velocity 
position 
prbsflux 
prbstorque 
prbsvelocity 
uqudext 
encminimove 
NONE 

Definition at line 51 of file TMC4671.h.

◆ MotorType

enum class MotorType : uint8_t
strong
Enumerator
NONE 
DC 
STEPPER 
BLDC 
ERR 

Definition at line 49 of file TMC4671.h.

◆ PhiE

enum class PhiE : uint8_t
strong
Enumerator
ext 
openloop 
abn 
hall 
aenc 
aencE 
NONE 
extEncoder 

Definition at line 50 of file TMC4671.h.

◆ PosSelection

enum class PosSelection : uint8_t
strong
Enumerator
PhiE 
PhiE_ext 
PhiE_openloop 
PhiE_abn 
res1 
PhiE_hal 
PhiE_aenc 
PhiA_aenc 
res2 
PhiM_abn 
PhiM_abn2 
PhiM_aenc 
PhiM_hal 

Definition at line 53 of file TMC4671.h.

◆ TMC_ControlState

enum class TMC_ControlState : uint32_t
strong
Enumerator
uninitialized 
waitPower 
Shutdown 
Running 
EncoderInit 
EncoderFinished 
HardError 
OverTemp 
IndexSearch 
FullCalibration 
ExternalEncoderInit 
Pidautotune 

Definition at line 41 of file TMC4671.h.

◆ TMC_GpioMode

enum class TMC_GpioMode
strong
Enumerator
DebugSpi 
DSAdcClkOut 
DSAdcClkIn 
Aout_Bin 
Ain_Bout 
Aout_Bout 
Ain_Bin 

Definition at line 47 of file TMC4671.h.

◆ TMC_HW_Ver

enum class TMC_HW_Ver : uint8_t
strong
Enumerator
NONE 
v1_0 
v1_2 
v1_2_2 
v1_2_2_LEM20 
v1_2_2_100mv 
v1_3_66mv 

Definition at line 58 of file TMC4671.h.

◆ TMC_PwmMode

enum class TMC_PwmMode : uint8_t
strong
Enumerator
off 
HSlow_LShigh 
HShigh_LSlow 
res2 
res3 
PWM_LS 
PWM_HS 
PWM_FOC 

Definition at line 43 of file TMC4671.h.

◆ TMC_StartupType

enum class TMC_StartupType
strong
Enumerator
NONE 
coldStart 
warmStart 

Definition at line 45 of file TMC4671.h.

◆ TMCbiquadpreset

enum class TMCbiquadpreset : uint8_t
strong
Enumerator
none 
lowpass 
notch 
peak 

Definition at line 269 of file TMC4671.h.

◆ VelSelection

enum class VelSelection : uint8_t
strong
Enumerator
PhiE 
PhiE_ext 
PhiE_openloop 
PhiE_abn 
res1 
PhiE_hal 
PhiE_aenc 
PhiA_aenc 
res2 
PhiM_abn 
PhiM_abn2 
PhiM_aenc 
PhiM_hal 

Definition at line 54 of file TMC4671.h.

Variable Documentation

◆ HSPIDRV

SPI_HandleTypeDef HSPIDRV
extern

◆ TIM_TMC

TIM_HandleTypeDef TIM_TMC
extern

◆ tmcHwVersionNames

const std::vector<std::pair<TMC_HW_Ver,std::string> > tmcHwVersionNames
Initial value:
{
std::make_pair(TMC_HW_Ver::NONE,"Undefined"),
std::make_pair(TMC_HW_Ver::v1_0,"v1.0 AD8417"),
std::make_pair(TMC_HW_Ver::v1_2,"v1.2 AD8417"),
std::make_pair(TMC_HW_Ver::v1_2_2,"v1.2.2 LEM GO 10 (80mV/A)"),
std::make_pair(TMC_HW_Ver::v1_2_2_LEM20,"v1.2.2 LEM GO 20 (40mV/A)"),
std::make_pair(TMC_HW_Ver::v1_2_2_100mv,"v1.2/3 100mV/A"),
std::make_pair(TMC_HW_Ver::v1_3_66mv,"v1.3 ACS724 30A (66mV/A)")
}

Definition at line 60 of file TMC4671.h.