Motor config
authorJoseph Coffland <joseph@cauldrondevelopment.com>
Wed, 6 Jan 2016 07:22:32 +0000 (23:22 -0800)
committerJoseph Coffland <joseph@cauldrondevelopment.com>
Wed, 6 Jan 2016 07:22:32 +0000 (23:22 -0800)
src/tmc2660.c

index d2c8cfb32c78787634611410830830a766811e14..33e40afd48e6aa955ccbb0211a672dfe6c6a47b6 100644 (file)
@@ -216,26 +216,28 @@ void tmc2660_init() {
     drivers[i].state = TMC2660_STATE_CONFIG;
     drivers[i].reg = 0;
 
-    drivers[i].regs[TMC2660_DRVCTRL] = TMC2660_DRVCTRL_MRES_8;
-    //drivers[i].regs[TMC2660_CHOPCONF] = TMC2660_CHOPCONF_TBL_36 |
-    // TMC2660_CHOPCONF_HEND(0) | TMC2660_CHOPCONF_HSTART(4) |
-    //  TMC2660_CHOPCONF_TOFF(4);
+    drivers[i].regs[TMC2660_DRVCTRL] = TMC2660_DRVCTRL_DEDGE | TMC2660_DRVCTRL_MRES_8;
     drivers[i].regs[TMC2660_CHOPCONF] = TMC2660_CHOPCONF_TBL_36 |
-      TMC2660_CHOPCONF_CHM | TMC2660_CHOPCONF_HEND(7) |
-      TMC2660_CHOPCONF_HSTART(6) | TMC2660_CHOPCONF_TOFF(7);
+      TMC2660_CHOPCONF_HEND(0) | TMC2660_CHOPCONF_HSTART(4) |
+      TMC2660_CHOPCONF_TOFF(4);
+    //drivers[i].regs[TMC2660_CHOPCONF] = TMC2660_CHOPCONF_TBL_36 |
+    //  TMC2660_CHOPCONF_CHM | TMC2660_CHOPCONF_HEND(7) |
+    //  TMC2660_CHOPCONF_HSTART(6) | TMC2660_CHOPCONF_TOFF(7);
     //drivers[i].regs[TMC2660_SMARTEN] = TMC2660_SMARTEN_SEIMIN |
     //  TMC2660_SMARTEN_MAX(2) | TMC2660_SMARTEN_MIN(2);
     drivers[i].regs[TMC2660_SGCSCONF] = TMC2660_SGCSCONF_SFILT |
-      TMC2660_SGCSCONF_THRESH(63) | TMC2660_SGCSCONF_CS(4);
+      TMC2660_SGCSCONF_THRESH(63) | TMC2660_SGCSCONF_CS(6);
     drivers[i].regs[TMC2660_DRVCONF] = TMC2660_DRVCONF_RDSEL_MSTEP;
   }
 
   // Setup pins
-  // Why is it necessary to set the SS pin for master mode to work?
+  // Must set the SS pin either in/high or any/output for master mode to work
   TMC2660_SPI_PORT.OUTSET = 1 << TMC2660_SPI_SS_PIN;   // High
-  TMC2660_SPI_PORT.DIRSET = 1 << TMC2660_SPI_SS_PIN;   // Output
+  TMC2660_SPI_PORT.DIRCLR = 1 << TMC2660_SPI_SS_PIN;   // Input
+
   TMC2660_SPI_PORT.OUTSET = 1 << TMC2660_SPI_SCK_PIN;  // High
   TMC2660_SPI_PORT.DIRSET = 1 << TMC2660_SPI_SCK_PIN;  // Output
+
   TMC2660_SPI_PORT.DIRCLR = 1 << TMC2660_SPI_MISO_PIN; // Input
   TMC2660_SPI_PORT.OUTSET = 1 << TMC2660_SPI_MOSI_PIN; // High
   TMC2660_SPI_PORT.DIRSET = 1 << TMC2660_SPI_MOSI_PIN; // Output