Browse Source

Add TMC driver HW serial defines (#17909)

Jason Smith 5 years ago
parent
commit
a2153c15ee
No account linked to committer's email address

+ 1
- 0
Marlin/src/core/drivers.h View File

131
 
131
 
132
 #define AXIS_HAS_RXTX AXIS_HAS_UART
132
 #define AXIS_HAS_RXTX AXIS_HAS_UART
133
 
133
 
134
+#define AXIS_HAS_HW_SERIAL(A) ( AXIS_HAS_UART(A) &&  defined(A##_HARDWARE_SERIAL) )
134
 #define AXIS_HAS_SW_SERIAL(A) ( AXIS_HAS_UART(A) && !defined(A##_HARDWARE_SERIAL) )
135
 #define AXIS_HAS_SW_SERIAL(A) ( AXIS_HAS_UART(A) && !defined(A##_HARDWARE_SERIAL) )
135
 
136
 
136
 #define AXIS_HAS_STALLGUARD(A)   (    AXIS_DRIVER_TYPE(A,TMC2130) || AXIS_DRIVER_TYPE(A,TMC2160) \
137
 #define AXIS_HAS_STALLGUARD(A)   (    AXIS_DRIVER_TYPE(A,TMC2130) || AXIS_DRIVER_TYPE(A,TMC2160) \

+ 3
- 0
Marlin/src/inc/Conditionals_post.h View File

1549
   #define HAS_E_STEPPER_ENABLE 1
1549
   #define HAS_E_STEPPER_ENABLE 1
1550
 #endif
1550
 #endif
1551
 
1551
 
1552
+#if ANY_AXIS_HAS(HW_SERIAL)
1553
+  #define HAS_TMC_HW_SERIAL 1
1554
+#endif
1552
 #if ANY_AXIS_HAS(SW_SERIAL)
1555
 #if ANY_AXIS_HAS(SW_SERIAL)
1553
   #define HAS_TMC_SW_SERIAL 1
1556
   #define HAS_TMC_SW_SERIAL 1
1554
 #endif
1557
 #endif

+ 13
- 9
Marlin/src/module/stepper/trinamic.cpp View File

318
   enum TMCAxis : uint8_t { X, Y, Z, X2, Y2, Z2, Z3, Z4, E0, E1, E2, E3, E4, E5, E6, E7, TOTAL };
318
   enum TMCAxis : uint8_t { X, Y, Z, X2, Y2, Z2, Z3, Z4, E0, E1, E2, E3, E4, E5, E6, E7, TOTAL };
319
 
319
 
320
   void tmc_serial_begin() {
320
   void tmc_serial_begin() {
321
-    struct {
322
-      const void *ptr[TMCAxis::TOTAL];
323
-      bool began(const TMCAxis a, const void * const p) {
324
-        LOOP_L_N(i, a) if (p == ptr[i]) return true;
325
-        ptr[a] = p; return false;
326
-      };
327
-    } sp_helper;
328
-    #define HW_SERIAL_BEGIN(A) do{ if (!sp_helper.began(TMCAxis::A, &A##_HARDWARE_SERIAL)) \
329
-                                         A##_HARDWARE_SERIAL.begin(TMC_BAUD_RATE); }while(0)
321
+    #if HAS_TMC_HW_SERIAL
322
+      struct {
323
+        const void *ptr[TMCAxis::TOTAL];
324
+        bool began(const TMCAxis a, const void * const p) {
325
+          LOOP_L_N(i, a) if (p == ptr[i]) return true;
326
+          ptr[a] = p; return false;
327
+        };
328
+      } sp_helper;
329
+
330
+      #define HW_SERIAL_BEGIN(A) do{ if (!sp_helper.began(TMCAxis::A, &A##_HARDWARE_SERIAL)) \
331
+                                          A##_HARDWARE_SERIAL.begin(TMC_BAUD_RATE); }while(0)
332
+    #endif
333
+
330
     #if AXIS_HAS_UART(X)
334
     #if AXIS_HAS_UART(X)
331
       #ifdef X_HARDWARE_SERIAL
335
       #ifdef X_HARDWARE_SERIAL
332
         HW_SERIAL_BEGIN(X);
336
         HW_SERIAL_BEGIN(X);

+ 5
- 1
buildroot/share/tests/STM32F103RC_btt-tests View File

13
 opt_set MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V1_0
13
 opt_set MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V1_0
14
 opt_set SERIAL_PORT 1
14
 opt_set SERIAL_PORT 1
15
 opt_set SERIAL_PORT_2 -1
15
 opt_set SERIAL_PORT_2 -1
16
-exec_test $1 $2 "BigTreeTech SKR Mini E3 - Basic Configuration"
16
+opt_set X_DRIVER_TYPE TMC2209
17
+opt_set Y_DRIVER_TYPE TMC2209
18
+opt_set Z_DRIVER_TYPE TMC2209
19
+opt_set E_DRIVER_TYPE TMC2209
20
+exec_test $1 $2 "BigTreeTech SKR Mini E3 1.0 - Basic Config with TMC2209 HW Serial"
17
 
21
 
18
 # clean up
22
 # clean up
19
 restore_configs
23
 restore_configs

+ 3
- 1
buildroot/share/tests/STM32F103RE_btt-tests View File

13
 opt_set MOTHERBOARD BOARD_BTT_SKR_E3_DIP
13
 opt_set MOTHERBOARD BOARD_BTT_SKR_E3_DIP
14
 opt_set SERIAL_PORT 1
14
 opt_set SERIAL_PORT 1
15
 opt_set SERIAL_PORT_2 -1
15
 opt_set SERIAL_PORT_2 -1
16
-exec_test $1 $2 "BigTreeTech SKR E3 DIP v1.0 - Basic Configuration"
16
+opt_set X_DRIVER_TYPE TMC2209
17
+opt_set Y_DRIVER_TYPE TMC2130
18
+exec_test $1 $2 "BigTreeTech SKR E3 DIP v1.0 - Basic Config with mixed TMC Drivers"
17
 
19
 
18
 # clean up
20
 # clean up
19
 restore_configs
21
 restore_configs

Loading…
Cancel
Save