|
|
@ -38,37 +38,53 @@ void TMC5130::initialize(cfg_t *cfg) { |
|
|
|
ZASSERT(m_ennpin); |
|
|
|
} |
|
|
|
m_hspi = cfg->hspi; |
|
|
|
reInitialize(); |
|
|
|
} |
|
|
|
|
|
|
|
void TMC5130::reInitialize() { |
|
|
|
enableIC(false); |
|
|
|
// tmc5130_init(&m_TMC5130, channel, &m_tmc_api_config, &tmc5130_defaultRegisterResetState[0]);
|
|
|
|
// tmc5130_setCallback(&m_TMC5130, pri_tmc4361A_callback);
|
|
|
|
|
|
|
|
reset(); |
|
|
|
|
|
|
|
writeInt(TMC5130_PWMCONF, 0x000500C8); |
|
|
|
// writeInt( TMC5130_GCONF, 0x00000004);
|
|
|
|
writeInt(TMC5130_CHOPCONF, 0x000100c3); |
|
|
|
writeInt(TMC5130_IHOLD_IRUN, 0x00051A00); |
|
|
|
writeInt(TMC5130_PWMCONF, 0x000401c8); |
|
|
|
|
|
|
|
writeInt(TMC5130_XTARGET, 0); |
|
|
|
writeInt(TMC5130_XACTUAL, 0x00000000); |
|
|
|
writeInt(TMC5130_VACTUAL, 0x00000000); |
|
|
|
|
|
|
|
writeInt(TMC5130_VSTART, 5); |
|
|
|
writeInt(TMC5130_A1, 1000); |
|
|
|
writeInt(TMC5130_V1, 0); |
|
|
|
|
|
|
|
writeInt(TMC5130_D1, 1000); |
|
|
|
writeInt(TMC5130_VSTOP, 10); |
|
|
|
writeInt(TMC5130_TZEROWAIT, 1000); |
|
|
|
|
|
|
|
setAcceleration(100000); |
|
|
|
setDeceleration(100000); |
|
|
|
setIHOLD_IRUN(2, 10, 1); |
|
|
|
enableIC(true); |
|
|
|
} |
|
|
|
|
|
|
|
DevStatusReg_t TMC5130::getDevStatus() { |
|
|
|
static_assert(sizeof(DevStatusReg_t) == 4); |
|
|
|
uint32_t value = readInt(TMC5130_DRVSTATUS); |
|
|
|
return *(DevStatusReg_t *)&value; |
|
|
|
} |
|
|
|
|
|
|
|
GState_t TMC5130::getGState() { |
|
|
|
static_assert(sizeof(GState_t) == 4); |
|
|
|
uint32_t value = readInt(TMC5130_GSTAT); |
|
|
|
return *(GState_t *)&value; |
|
|
|
} |
|
|
|
|
|
|
|
// TMC5130_GSTAT
|
|
|
|
bool TMC5130::ping() { |
|
|
|
uint32_t chipID = readChipVERSION(); |
|
|
|
if (0x11 == chipID) { |
|
|
|
return true; |
|
|
|
} else { |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void TMC5130::enableIC(bool enable) { |
|
|
|
// m_port->TMC5130Port_setENNPinState(m_channel, !enable);
|
|
|
|
SET_PIN(m_ennpin, !enable); |
|
|
|