|
|
@ -47,7 +47,6 @@ void TMC51X0::initialize(cfg_t *cfg) { |
|
|
|
} |
|
|
|
|
|
|
|
void TMC51X0::setMRES(mres_type_t value) { |
|
|
|
|
|
|
|
if (value == kmres_256) { |
|
|
|
m_onecirclepulse = 51200; |
|
|
|
} else if (value == kmres_128) { |
|
|
@ -72,7 +71,6 @@ void TMC51X0::setMRES(mres_type_t value) { |
|
|
|
} |
|
|
|
m_MRES = value; |
|
|
|
PRV_FIELD_WRITE(TMC5130_CHOPCONF, TMC5130_MRES_MASK, TMC5130_MRES_SHIFT, value); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
void TMC51X0::setNoAccLimit(bool enable) { |
|
|
@ -99,20 +97,18 @@ void TMC51X0::enable(bool enable) { |
|
|
|
SET_PIN(m_ennpin, !enable); |
|
|
|
} |
|
|
|
uint8_t TMC51X0::reset() { |
|
|
|
stop(); |
|
|
|
// m_port->TMC5130Port_setResetNPinState(m_channel, false);
|
|
|
|
SET_PIN(m_csnpin, false); |
|
|
|
// m_port->TMC5130Port_sleepus(1000);
|
|
|
|
zchip_clock_early_delayus(1000); |
|
|
|
// m_port->TMC5130Port_setResetNPinState(m_channel, true);
|
|
|
|
// SET_PIN(m_csnpin, false);
|
|
|
|
// zchip_clock_early_delayus(1000);
|
|
|
|
SET_PIN(m_csnpin, true); |
|
|
|
|
|
|
|
for (uint32_t add = 0; add < TMC5130_REGISTER_COUNT; add++) { |
|
|
|
if (!TMC_IS_RESETTABLE(m_registerAccessTable[add])) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
writeInt(add, m_defaultRegisterResetState[add]); |
|
|
|
} |
|
|
|
stop(); |
|
|
|
enable(false); |
|
|
|
// for (uint32_t add = 0; add < TMC5130_REGISTER_COUNT; add++) {
|
|
|
|
// if (!TMC_IS_RESETTABLE(m_registerAccessTable[add])) {
|
|
|
|
// continue;
|
|
|
|
// }
|
|
|
|
// writeInt(add, m_defaultRegisterResetState[add]);
|
|
|
|
// }
|
|
|
|
writeInt(TMC5130_PWMCONF, 0x000500C8); |
|
|
|
writeInt(TMC5130_CHOPCONF, 0x000100c3); |
|
|
|
writeInt(TMC5130_IHOLD_IRUN, 0x00051A00); |
|
|
@ -120,19 +116,23 @@ uint8_t TMC51X0::reset() { |
|
|
|
writeInt(TMC5130_XTARGET, 0); |
|
|
|
writeInt(TMC5130_XACTUAL, 0x00000000); |
|
|
|
writeInt(TMC5130_VACTUAL, 0x00000000); |
|
|
|
writeInt(TMC5130_VSTART, 3000); |
|
|
|
writeInt(TMC5130_A1, 0); |
|
|
|
writeInt(TMC5130_V1, 0); |
|
|
|
writeInt(TMC5130_D1, 0); |
|
|
|
writeInt(TMC5130_VSTOP, 3000); |
|
|
|
writeInt(TMC5130_TZEROWAIT, 0); |
|
|
|
// TMC5130_AMAX
|
|
|
|
setAcceleration(100); |
|
|
|
setDeceleration(100); |
|
|
|
|
|
|
|
set_vstart(100); |
|
|
|
set_a1(15); |
|
|
|
set_amax(15); |
|
|
|
set_v1(500); |
|
|
|
set_dmax(15); |
|
|
|
set_d1(15); |
|
|
|
set_vstop(100); |
|
|
|
set_tzerowait(100); |
|
|
|
|
|
|
|
setIHOLD_IRUN(0, 4, 1); |
|
|
|
enable(false); |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
int32_t TMC51X0::getXACTUAL() { return to_user_pos(readInt(TMC5130_XACTUAL)); } |
|
|
|
void TMC51X0::setXACTUAL(int32_t value) { |
|
|
|
/**
|
|
|
|