TMC2130: Reformat
parent
f491072614
commit
e9627ad0d4
|
|
@ -16,18 +16,18 @@ enum MotorMode : uint8_t {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct MotorParams {
|
struct MotorParams {
|
||||||
uint8_t idx; ///< SHR16 index
|
uint8_t idx; ///< SHR16 index
|
||||||
bool dirOn; ///< forward direction
|
bool dirOn; ///< forward direction
|
||||||
gpio::GPIO_pin csPin; ///< CS pin
|
gpio::GPIO_pin csPin; ///< CS pin
|
||||||
gpio::GPIO_pin stepPin; ///< step pin
|
gpio::GPIO_pin stepPin; ///< step pin
|
||||||
gpio::GPIO_pin sgPin; ///< stallguard pin
|
gpio::GPIO_pin sgPin; ///< stallguard pin
|
||||||
uint8_t uSteps; ///< microstep resolution
|
uint8_t uSteps; ///< microstep resolution
|
||||||
};
|
};
|
||||||
|
|
||||||
struct MotorCurrents {
|
struct MotorCurrents {
|
||||||
bool vSense; ///< VSense current scaling
|
bool vSense; ///< VSense current scaling
|
||||||
uint8_t iRun; ///< Running current
|
uint8_t iRun; ///< Running current
|
||||||
uint8_t iHold; ///< Holding current
|
uint8_t iHold; ///< Holding current
|
||||||
};
|
};
|
||||||
|
|
||||||
class TMC2130 {
|
class TMC2130 {
|
||||||
|
|
@ -35,46 +35,50 @@ class TMC2130 {
|
||||||
MotorCurrents currents;
|
MotorCurrents currents;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/// constructor
|
/// Constructor
|
||||||
TMC2130(const MotorParams& params,
|
TMC2130(const MotorParams ¶ms,
|
||||||
const MotorCurrents& currents,
|
const MotorCurrents ¤ts,
|
||||||
MotorMode mode);
|
MotorMode mode);
|
||||||
|
|
||||||
/// (re)initialization of the chip
|
/// (re)initialization of the chip
|
||||||
void Init(const MotorParams& params);
|
void Init(const MotorParams ¶ms);
|
||||||
|
|
||||||
/// Get/Change the current motor mode
|
/// Get the current motor mode
|
||||||
MotorMode Mode() { return mode; } const
|
MotorMode Mode() const {
|
||||||
|
return mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Set the current motor mode
|
||||||
void SetMode(MotorMode mode);
|
void SetMode(MotorMode mode);
|
||||||
|
|
||||||
/// Get/Change the current motor currents
|
/// Get the current motor currents
|
||||||
const MotorCurrents& Currents() { return currents; } const
|
const MotorCurrents &Currents() const {
|
||||||
void SetCurrents(const MotorCurrents& currents);
|
return currents;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Set the current motor currents
|
||||||
|
void SetCurrents(const MotorCurrents ¤ts);
|
||||||
|
|
||||||
/// Return enabled state (TODO)
|
/// Return enabled state (TODO)
|
||||||
static bool Enabled(const MotorParams& params);
|
static bool Enabled(const MotorParams ¶ms);
|
||||||
|
|
||||||
/// Enable/Disable the motor
|
/// Enable/Disable the motor
|
||||||
static void SetEnabled(const MotorParams& params, bool enabled)
|
static void SetEnabled(const MotorParams ¶ms, bool enabled) {
|
||||||
{
|
|
||||||
hal::shr16::shr16.SetTMCDir(params.idx, enabled);
|
hal::shr16::shr16.SetTMCDir(params.idx, enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Set direction
|
/// Set direction
|
||||||
static inline void SetDir(const MotorParams& params, bool dir)
|
static inline void SetDir(const MotorParams ¶ms, bool dir) {
|
||||||
{
|
|
||||||
hal::shr16::shr16.SetTMCDir(params.idx, dir ^ params.dirOn);
|
hal::shr16::shr16.SetTMCDir(params.idx, dir ^ params.dirOn);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Step the motor
|
/// Step the motor
|
||||||
static inline void Step(const MotorParams& params)
|
static inline void Step(const MotorParams ¶ms) {
|
||||||
{
|
|
||||||
gpio::TogglePin(params.stepPin); // assumes DEDGE
|
gpio::TogglePin(params.stepPin); // assumes DEDGE
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Return SG state
|
/// Return SG state
|
||||||
static inline bool Stall(const MotorParams& params)
|
static inline bool Stall(const MotorParams ¶ms) {
|
||||||
{
|
|
||||||
return gpio::ReadPin(params.sgPin) == gpio::Level::high;
|
return gpio::ReadPin(params.sgPin) == gpio::Level::high;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue