diff --git a/components/tmc/ic/ztmc5130.cpp b/components/tmc/ic/ztmc5130.cpp index 2d0bf5f..1f80f5d 100644 --- a/components/tmc/ic/ztmc5130.cpp +++ b/components/tmc/ic/ztmc5130.cpp @@ -28,14 +28,14 @@ void TMC5130::initialize(cfg_t *cfg) { if (cfg->csn_pin != PinNull) { m_csnpin = new ZGPIO(); m_csnpin->initAsOutput(cfg->csn_pin, ZGPIO::kMode_nopull, false, true); + ZASSERT(m_csnpin); } if (cfg->enn_pin != PinNull) { m_ennpin = new ZGPIO(); m_ennpin->initAsOutput(cfg->enn_pin, ZGPIO::kMode_nopull, false, true); + ZASSERT(m_ennpin); } - - ZGPIO *m_csnpin; - ZGPIO *m_ennpin; + m_hspi = cfg->hspi; enableIC(false); // tmc5130_init(&m_TMC5130, channel, &m_tmc_api_config, &tmc5130_defaultRegisterResetState[0]); @@ -148,7 +148,10 @@ bool TMC5130::isReachTarget() { void TMC5130::readWriteArray(uint8_t *data, size_t length) { CriticalContext cc; // m_port->TMC5130Port_readWriteArray(m_channel, data, length); + // m_csnpin + SET_PIN(m_csnpin, false); HAL_SPI_TransmitReceive(m_hspi, data, data, length, 100); + SET_PIN(m_csnpin, true); } void TMC5130::writeDatagram(uint8_t address, uint8_t x1, uint8_t x2, uint8_t x3, uint8_t x4) { CriticalContext cc; diff --git a/components/tmc/ic/ztmc5130.hpp b/components/tmc/ic/ztmc5130.hpp index 9ee8532..f02790c 100644 --- a/components/tmc/ic/ztmc5130.hpp +++ b/components/tmc/ic/ztmc5130.hpp @@ -65,16 +65,15 @@ class TMC5130 : public IStepperMotor { Pin_t csn_pin; } cfg_t; - protected: // TMC5130Port *m_port; // TMC5130Config_t *m_config; cfg_t m_cfg; - ZGPIO *m_csnpin; - ZGPIO *m_ennpin; - SPI_HandleTypeDef *m_hspi; + ZGPIO *m_csnpin = NULL; + ZGPIO *m_ennpin = NULL; + SPI_HandleTypeDef *m_hspi = NULL; // uint8_t m_channel; uint32_t m_lastCallPeriodicJobTick;