浏览代码

Followup for 6 extruders

Scott Lahteine 6 年前
父节点
当前提交
53bd0b55cb
共有 2 个文件被更改,包括 35 次插入3 次删除
  1. 3
    3
      Marlin/src/gcode/feature/trinamic/M911-M915.cpp
  2. 32
    0
      Marlin/src/module/stepper_indirection.cpp

+ 3
- 3
Marlin/src/gcode/feature/trinamic/M911-M915.cpp 查看文件

131
       #endif
131
       #endif
132
     #endif
132
     #endif
133
 
133
 
134
-    #if M91x_USE_E(0) || M91x_USE_E(1) || M91x_USE_E(2) || M91x_USE_E(3) || M91x_USE_E(4)
135
-      const int8_t eval = int8_t(parser.byteval(axis_codes[E_AXIS], 0xFF));
134
+    #if M91x_USE_E(0) || M91x_USE_E(1) || M91x_USE_E(2) || M91x_USE_E(3) || M91x_USE_E(4) || M91x_USE_E(5)
135
+      const uint8_t eval = int8_t(parser.byteval(axis_codes[E_AXIS], 0xFF));
136
       #if M91x_USE_E(0)
136
       #if M91x_USE_E(0)
137
         if (hasNone || eval == 0 || (hasE && eval < 0)) tmc_clear_otpw(stepperE0, TMC_E0);
137
         if (hasNone || eval == 0 || (hasE && eval < 0)) tmc_clear_otpw(stepperE0, TMC_E0);
138
       #endif
138
       #endif
149
         if (hasNone || eval == 4 || (hasE && eval < 0)) tmc_clear_otpw(stepperE4, TMC_E4);
149
         if (hasNone || eval == 4 || (hasE && eval < 0)) tmc_clear_otpw(stepperE4, TMC_E4);
150
       #endif
150
       #endif
151
       #if M91x_USE_E(5)
151
       #if M91x_USE_E(5)
152
-        if (hasNone || eval == 5 || (hasE && eval == 10)) tmc_clear_otpw(stepperE5, TMC_E5);
152
+        if (hasNone || eval == 5 || (hasE && eval < 0)) tmc_clear_otpw(stepperE5, TMC_E5);
153
       #endif
153
       #endif
154
     #endif
154
     #endif
155
 }
155
 }

+ 32
- 0
Marlin/src/module/stepper_indirection.cpp 查看文件

87
   #if AXIS_DRIVER_TYPE(E4, TMC26X)
87
   #if AXIS_DRIVER_TYPE(E4, TMC26X)
88
     _TMC26X_DEFINE(E4);
88
     _TMC26X_DEFINE(E4);
89
   #endif
89
   #endif
90
+  #if AXIS_DRIVER_TYPE(E5, TMC26X)
91
+    _TMC26X_DEFINE(E5);
92
+  #endif
90
 
93
 
91
   #define _TMC26X_INIT(A) do{ \
94
   #define _TMC26X_INIT(A) do{ \
92
     stepper##A.setMicrosteps(A##_MICROSTEPS); \
95
     stepper##A.setMicrosteps(A##_MICROSTEPS); \
130
     #if AXIS_DRIVER_TYPE(E4, TMC26X)
133
     #if AXIS_DRIVER_TYPE(E4, TMC26X)
131
       _TMC26X_INIT(E4);
134
       _TMC26X_INIT(E4);
132
     #endif
135
     #endif
136
+    #if AXIS_DRIVER_TYPE(E5, TMC26X)
137
+      _TMC26X_INIT(E5);
138
+    #endif
133
   }
139
   }
134
 #endif // TMC26X
140
 #endif // TMC26X
135
 
141
 
190
   #if AXIS_DRIVER_TYPE(E4, TMC2130)
196
   #if AXIS_DRIVER_TYPE(E4, TMC2130)
191
     _TMC2130_DEFINE(E4);
197
     _TMC2130_DEFINE(E4);
192
   #endif
198
   #endif
199
+  #if AXIS_DRIVER_TYPE(E5, TMC2130)
200
+    _TMC2130_DEFINE(E5);
201
+  #endif
193
 
202
 
194
   // Use internal reference voltage for current calculations. This is the default.
203
   // Use internal reference voltage for current calculations. This is the default.
195
   // Following values from Trinamic's spreadsheet with values for a NEMA17 (42BYGHW609)
204
   // Following values from Trinamic's spreadsheet with values for a NEMA17 (42BYGHW609)
394
       _TMC2208_DEFINE_SOFTWARE(E4);
403
       _TMC2208_DEFINE_SOFTWARE(E4);
395
     #endif
404
     #endif
396
   #endif
405
   #endif
406
+  #if AXIS_DRIVER_TYPE(E5, TMC2208)
407
+    #ifdef E5_HARDWARE_SERIAL
408
+      _TMC2208_DEFINE_HARDWARE(E5);
409
+    #else
410
+      _TMC2208_DEFINE_SOFTWARE(E5);
411
+    #endif
412
+  #endif
397
 
413
 
398
   void tmc2208_serial_begin() {
414
   void tmc2208_serial_begin() {
399
     #if AXIS_DRIVER_TYPE(X, TMC2208)
415
     #if AXIS_DRIVER_TYPE(X, TMC2208)
480
         stepperE4.beginSerial(115200);
496
         stepperE4.beginSerial(115200);
481
       #endif
497
       #endif
482
     #endif
498
     #endif
499
+    #if AXIS_DRIVER_TYPE(E5, TMC2208)
500
+      #ifdef E5_HARDWARE_SERIAL
501
+        E5_HARDWARE_SERIAL.begin(115200);
502
+      #else
503
+        stepperE5.beginSerial(115200);
504
+      #endif
505
+    #endif
483
   }
506
   }
484
 
507
 
485
   // Use internal reference voltage for current calculations. This is the default.
508
   // Use internal reference voltage for current calculations. This is the default.
597
   #if AXIS_IS_TMC(E4)
620
   #if AXIS_IS_TMC(E4)
598
     stepperE4.push();
621
     stepperE4.push();
599
   #endif
622
   #endif
623
+  #if AXIS_IS_TMC(E5)
624
+    stepperE5.push();
625
+  #endif
600
 }
626
 }
601
 
627
 
602
 void reset_stepper_drivers() {
628
 void reset_stepper_drivers() {
667
   #if AXIS_DRIVER_TYPE(E4, L6470)
693
   #if AXIS_DRIVER_TYPE(E4, L6470)
668
     _L6470_DEFINE(E4);
694
     _L6470_DEFINE(E4);
669
   #endif
695
   #endif
696
+  #if AXIS_DRIVER_TYPE(E5, L6470)
697
+    _L6470_DEFINE(E5);
698
+  #endif
670
 
699
 
671
   #define _L6470_INIT(A) do{ \
700
   #define _L6470_INIT(A) do{ \
672
     stepper##A.init(); \
701
     stepper##A.init(); \
713
     #if AXIS_DRIVER_TYPE(E4, L6470)
742
     #if AXIS_DRIVER_TYPE(E4, L6470)
714
       _L6470_INIT(E4);
743
       _L6470_INIT(E4);
715
     #endif
744
     #endif
745
+    #if AXIS_DRIVER_TYPE(E5, L6470)
746
+      _L6470_INIT(E5);
747
+    #endif
716
   }
748
   }
717
 
749
 
718
 #endif // L6470
750
 #endif // L6470

正在加载...
取消
保存