I am trying to control a stepper motor using the TMC2160 drivers present on a BigTreeTech Kraken.
If I flash the Marlin firmware everything works and if I flash this code immediately after it works too but if I power off and on the board then the driver stops responding (the led and serial still work).
I think I am missing something in the driver initialization but I can't figure out why
`#include
include
include
include
include
define miso PC8
define mosi PC7
define sck PC6
define STEP_PIN PC14
define DIR_PIN PC13
define EN_PIN PE6
define CS_PIN PD6
define R_SENSE 0.022f
SoftwareSerial serial(PD9, PD8);
TMC2160Stepper st = TMC2160Stepper(CS_PIN,R_SENSE,mosi,miso,sck);
I am trying to control a stepper motor using the TMC2160 drivers present on a BigTreeTech Kraken. If I flash the Marlin firmware everything works and if I flash this code immediately after it works too but if I power off and on the board then the driver stops responding (the led and serial still work). I think I am missing something in the driver initialization but I can't figure out why
`#include
include
include
include
include
define miso PC8
define mosi PC7
define sck PC6
define STEP_PIN PC14
define DIR_PIN PC13
define EN_PIN PE6
define CS_PIN PD6
define R_SENSE 0.022f
SoftwareSerial serial(PD9, PD8);
TMC2160Stepper st = TMC2160Stepper(CS_PIN,R_SENSE,mosi,miso,sck);
int LedStatus = PA0; int LedTest = PA1;
void setup() { serial.begin(115200); serial.println("Serial open");
pinMode(LedStatus, OUTPUT); digitalWrite(LedStatus, HIGH); pinMode(LedTest, OUTPUT); digitalWrite(LedTest, HIGH);
pinMode(EN_PIN, OUTPUT); digitalWrite(EN_PIN, LOW);
pinMode(STEP_PIN, OUTPUT); pinMode(DIR_PIN, OUTPUT); digitalWrite(DIR_PIN, HIGH);
st.begin(); st.toff(5);
st.rms_current(1000); st.microsteps(256); st.en_pwm_mode(1); st.pwm_autoscale(1);
serial.print("DRV_STATUS=0b"); serial.println(st.DRV_STATUS(), BIN); serial.print("version: " ); serial.println(st.version()); serial.print("run status: " ); serial.println(st.irun()); serial.print("Driver enabled: " ); serial.println(st.isEnabled()); }
void loop() { digitalWrite(STEP_PIN, HIGH); digitalWrite(LedTest, HIGH); delayMicroseconds(50); digitalWrite(STEP_PIN, LOW); digitalWrite(LedTest, LOW); delayMicroseconds(50); } `
Here is the output of the code: Driver enabled: 0 run status: 5 version: 255 DRV_STATUS=0b11111111111111111111111111111111