Browse Source

Fixes for Z4 axis, CS pins (#17097)

Scott Lahteine 4 years ago
parent
commit
982197b162
No account linked to committer's email address
2 changed files with 28 additions and 27 deletions
  1. 20
    19
      Marlin/src/inc/SanityCheck.h
  2. 8
    8
      Marlin/src/pins/pins.h

+ 20
- 19
Marlin/src/inc/SanityCheck.h View File

2088
   #error "An SPI driven TMC driver on Z2 requires Z2_CS_PIN."
2088
   #error "An SPI driven TMC driver on Z2 requires Z2_CS_PIN."
2089
 #elif INVALID_TMC_SPI(Z3)
2089
 #elif INVALID_TMC_SPI(Z3)
2090
   #error "An SPI driven TMC driver on Z3 requires Z3_CS_PIN."
2090
   #error "An SPI driven TMC driver on Z3 requires Z3_CS_PIN."
2091
+#elif INVALID_TMC_SPI(Z4)
2092
+  #error "An SPI driven TMC driver on Z4 requires Z4_CS_PIN."
2091
 #elif INVALID_TMC_SPI(E0)
2093
 #elif INVALID_TMC_SPI(E0)
2092
   #error "An SPI driven TMC driver on E0 requires E0_CS_PIN."
2094
   #error "An SPI driven TMC driver on E0 requires E0_CS_PIN."
2093
 #elif INVALID_TMC_SPI(E1)
2095
 #elif INVALID_TMC_SPI(E1)
2125
   #error "TMC2208 or TMC2209 on Z2 requires Z2_HARDWARE_SERIAL or Z2_SERIAL_(RX|TX)_PIN."
2127
   #error "TMC2208 or TMC2209 on Z2 requires Z2_HARDWARE_SERIAL or Z2_SERIAL_(RX|TX)_PIN."
2126
 #elif INVALID_TMC_UART(Z3)
2128
 #elif INVALID_TMC_UART(Z3)
2127
   #error "TMC2208 or TMC2209 on Z3 requires Z3_HARDWARE_SERIAL or Z3_SERIAL_(RX|TX)_PIN."
2129
   #error "TMC2208 or TMC2209 on Z3 requires Z3_HARDWARE_SERIAL or Z3_SERIAL_(RX|TX)_PIN."
2130
+#elif INVALID_TMC_UART(Z4)
2131
+  #error "TMC2208 or TMC2209 on Z4 requires Z4_HARDWARE_SERIAL or Z4_SERIAL_(RX|TX)_PIN."
2128
 #elif INVALID_TMC_UART(E0)
2132
 #elif INVALID_TMC_UART(E0)
2129
   #error "TMC2208 or TMC2209 on E0 requires E0_HARDWARE_SERIAL or E0_SERIAL_(RX|TX)_PIN."
2133
   #error "TMC2208 or TMC2209 on E0 requires E0_HARDWARE_SERIAL or E0_SERIAL_(RX|TX)_PIN."
2130
 #elif INVALID_TMC_UART(E1)
2134
 #elif INVALID_TMC_UART(E1)
2162
   INVALID_TMC_ADDRESS(Z2);
2166
   INVALID_TMC_ADDRESS(Z2);
2163
 #elif AXIS_DRIVER_TYPE_Z3(TMC2209)
2167
 #elif AXIS_DRIVER_TYPE_Z3(TMC2209)
2164
   INVALID_TMC_ADDRESS(Z3);
2168
   INVALID_TMC_ADDRESS(Z3);
2169
+#elif AXIS_DRIVER_TYPE_Z4(TMC2209)
2170
+  INVALID_TMC_ADDRESS(Z4);
2165
 #elif AXIS_DRIVER_TYPE_E0(TMC2209)
2171
 #elif AXIS_DRIVER_TYPE_E0(TMC2209)
2166
   INVALID_TMC_ADDRESS(E0);
2172
   INVALID_TMC_ADDRESS(E0);
2167
 #elif AXIS_DRIVER_TYPE_E1(TMC2209)
2173
 #elif AXIS_DRIVER_TYPE_E1(TMC2209)
2328
   #error "STEALTHCHOP requires TMC2130, TMC2160, TMC2208, TMC2209, or TMC5160 stepper drivers."
2334
   #error "STEALTHCHOP requires TMC2130, TMC2160, TMC2208, TMC2209, or TMC5160 stepper drivers."
2329
 #endif
2335
 #endif
2330
 
2336
 
2337
+/**
2338
+ * TMC SPI Chaining
2339
+ */
2331
 #define IN_CHAIN(A) ((A##_CHAIN_POS > 0) && !HAS_L64XX)
2340
 #define IN_CHAIN(A) ((A##_CHAIN_POS > 0) && !HAS_L64XX)
2332
-// TMC SPI Chaining
2333
-#if IN_CHAIN(X) || IN_CHAIN(Y) || IN_CHAIN(Z) || IN_CHAIN(X2) || IN_CHAIN(Y2) || IN_CHAIN(Z2) || IN_CHAIN(Z3) || IN_CHAIN(E0) || IN_CHAIN(E1) || IN_CHAIN(E2) || IN_CHAIN(E3) || IN_CHAIN(E4) || IN_CHAIN(E5)
2334
-  #if  (IN_CHAIN(X)  && !PIN_EXISTS(X_CS) ) || (IN_CHAIN(Y)  && !PIN_EXISTS(Y_CS) ) \
2335
-    || (IN_CHAIN(Z)  && !PIN_EXISTS(Z_CS) ) || (IN_CHAIN(X2) && !PIN_EXISTS(X2_CS)) \
2336
-    || (IN_CHAIN(Y2) && !PIN_EXISTS(Y2_CS)) || (IN_CHAIN(Z2) && !PIN_EXISTS(Z2_CS)) \
2337
-    || (IN_CHAIN(Z3) && !PIN_EXISTS(Z3_CS)) || (IN_CHAIN(E0) && !PIN_EXISTS(E0_CS)) \
2338
-    || (IN_CHAIN(E1) && !PIN_EXISTS(E1_CS)) || (IN_CHAIN(E2) && !PIN_EXISTS(E2_CS)) \
2339
-    || (IN_CHAIN(E3) && !PIN_EXISTS(E3_CS)) || (IN_CHAIN(E4) && !PIN_EXISTS(E4_CS)) \
2340
-    || (IN_CHAIN(E5) && !PIN_EXISTS(E5_CS)) || (IN_CHAIN(E6) && !PIN_EXISTS(E6_CS)) \
2341
-    || (IN_CHAIN(E7) && !PIN_EXISTS(E7_CS))
2341
+#if  IN_CHAIN(X ) || IN_CHAIN(Y ) || IN_CHAIN(Z ) || IN_CHAIN(X2) || IN_CHAIN(Y2) || IN_CHAIN(Z2) || IN_CHAIN(Z3) || IN_CHAIN(Z4) \
2342
+  || IN_CHAIN(E0) || IN_CHAIN(E1) || IN_CHAIN(E2) || IN_CHAIN(E3) || IN_CHAIN(E4) || IN_CHAIN(E5) || IN_CHAIN(E6) || IN_CHAIN(E7)
2343
+  #define BAD_CHAIN(A) (IN_CHAIN(A) && !PIN_EXISTS(A##_CS))
2344
+  #if  BAD_CHAIN(X ) || BAD_CHAIN(Y ) || BAD_CHAIN(Z ) || BAD_CHAIN(X2) || BAD_CHAIN(Y2) || BAD_CHAIN(Z2) || BAD_CHAIN(Z3) || BAD_CHAIN(Z4) \
2345
+    || BAD_CHAIN(E0) || BAD_CHAIN(E1) || BAD_CHAIN(E2) || BAD_CHAIN(E3) || BAD_CHAIN(E4) || BAD_CHAIN(E5) || BAD_CHAIN(E6) || BAD_CHAIN(E7)
2342
     #error "All chained TMC drivers need a CS pin."
2346
     #error "All chained TMC drivers need a CS pin."
2343
   #else
2347
   #else
2344
     #if IN_CHAIN(X)
2348
     #if IN_CHAIN(X)
2372
     #elif IN_CHAIN(E7)
2376
     #elif IN_CHAIN(E7)
2373
       #define CS_COMPARE E7_CS_PIN
2377
       #define CS_COMPARE E7_CS_PIN
2374
     #endif
2378
     #endif
2375
-    #if  (IN_CHAIN(X)  && X_CS_PIN  != CS_COMPARE) || (IN_CHAIN(Y)  && Y_CS_PIN  != CS_COMPARE) \
2376
-      || (IN_CHAIN(Z)  && Z_CS_PIN  != CS_COMPARE) || (IN_CHAIN(X2) && X2_CS_PIN != CS_COMPARE) \
2377
-      || (IN_CHAIN(Y2) && Y2_CS_PIN != CS_COMPARE) || (IN_CHAIN(Z2) && Z2_CS_PIN != CS_COMPARE) \
2378
-      || (IN_CHAIN(Z3) && Z3_CS_PIN != CS_COMPARE) || (IN_CHAIN(E0) && E0_CS_PIN != CS_COMPARE) \
2379
-      || (IN_CHAIN(E1) && E1_CS_PIN != CS_COMPARE) || (IN_CHAIN(E2) && E2_CS_PIN != CS_COMPARE) \
2380
-      || (IN_CHAIN(E3) && E3_CS_PIN != CS_COMPARE) || (IN_CHAIN(E4) && E4_CS_PIN != CS_COMPARE) \
2381
-      || (IN_CHAIN(E5) && E5_CS_PIN != CS_COMPARE) || (IN_CHAIN(E6) && E6_CS_PIN != CS_COMPARE) \
2382
-      || (IN_CHAIN(E7) && E7_CS_PIN != CS_COMPARE)
2379
+    #define BAD_CS_PIN(A) (IN_CHAIN(A) && A##_CS_PIN != CS_COMPARE)
2380
+    #if  BAD_CS_PIN(X ) || BAD_CS_PIN(Y ) || BAD_CS_PIN(Z ) || BAD_CS_PIN(X2) || BAD_CS_PIN(Y2) || BAD_CS_PIN(Z2) || BAD_CS_PIN(Z3) || BAD_CS_PIN(Z4) \
2381
+      || BAD_CS_PIN(E0) || BAD_CS_PIN(E1) || BAD_CS_PIN(E2) || BAD_CS_PIN(E3) || BAD_CS_PIN(E4) || BAD_CS_PIN(E5) || BAD_CS_PIN(E6) || BAD_CS_PIN(E7)
2383
       #error "All chained TMC drivers must use the same CS pin."
2382
       #error "All chained TMC drivers must use the same CS pin."
2384
     #endif
2383
     #endif
2384
+    #undef BAD_CS_PIN
2385
+    #undef CS_COMPARE
2385
   #endif
2386
   #endif
2386
-  #undef CS_COMPARE
2387
+  #undef BAD_CHAIN
2387
 #endif
2388
 #endif
2388
 #undef IN_CHAIN
2389
 #undef IN_CHAIN
2389
 
2390
 

+ 8
- 8
Marlin/src/pins/pins.h View File

874
 #if !AXIS_HAS_SPI(Z)
874
 #if !AXIS_HAS_SPI(Z)
875
   #undef Z_CS_PIN
875
   #undef Z_CS_PIN
876
 #endif
876
 #endif
877
-#if !AXIS_HAS_SPI(E0)
877
+#if E_STEPPERS && !AXIS_HAS_SPI(E0)
878
   #undef E0_CS_PIN
878
   #undef E0_CS_PIN
879
 #endif
879
 #endif
880
-#if !AXIS_HAS_SPI(E1)
880
+#if E_STEPPERS > 1 && !AXIS_HAS_SPI(E1)
881
   #undef E1_CS_PIN
881
   #undef E1_CS_PIN
882
 #endif
882
 #endif
883
-#if !AXIS_HAS_SPI(E2)
883
+#if E_STEPPERS > 2 && !AXIS_HAS_SPI(E2)
884
   #undef E2_CS_PIN
884
   #undef E2_CS_PIN
885
 #endif
885
 #endif
886
-#if !AXIS_HAS_SPI(E3)
886
+#if E_STEPPERS > 3 && !AXIS_HAS_SPI(E3)
887
   #undef E3_CS_PIN
887
   #undef E3_CS_PIN
888
 #endif
888
 #endif
889
-#if !AXIS_HAS_SPI(E4)
889
+#if E_STEPPERS > 4 && !AXIS_HAS_SPI(E4)
890
   #undef E4_CS_PIN
890
   #undef E4_CS_PIN
891
 #endif
891
 #endif
892
-#if !AXIS_HAS_SPI(E5)
892
+#if E_STEPPERS > 5 && !AXIS_HAS_SPI(E5)
893
   #undef E5_CS_PIN
893
   #undef E5_CS_PIN
894
 #endif
894
 #endif
895
-#if !AXIS_HAS_SPI(E6)
895
+#if E_STEPPERS > 6 && !AXIS_HAS_SPI(E6)
896
   #undef E6_CS_PIN
896
   #undef E6_CS_PIN
897
 #endif
897
 #endif
898
-#if !AXIS_HAS_SPI(E7)
898
+#if E_STEPPERS > 7 && !AXIS_HAS_SPI(E7)
899
   #undef E7_CS_PIN
899
   #undef E7_CS_PIN
900
 #endif
900
 #endif
901
 
901
 

Loading…
Cancel
Save