Browse Source

Prevent name conflicts with mixed stepper drivers

Scott Lahteine 5 years ago
parent
commit
ae91914260
68 changed files with 15028 additions and 9792 deletions
  1. 221
    144
      Marlin/Configuration_adv.h
  2. 221
    144
      Marlin/src/config/default/Configuration_adv.h
  3. 221
    144
      Marlin/src/config/examples/3DFabXYZ/Migbot/Configuration_adv.h
  4. 221
    144
      Marlin/src/config/examples/AlephObjects/TAZ4/Configuration_adv.h
  5. 221
    144
      Marlin/src/config/examples/Anet/A2/Configuration_adv.h
  6. 221
    144
      Marlin/src/config/examples/Anet/A2plus/Configuration_adv.h
  7. 221
    144
      Marlin/src/config/examples/Anet/A6/Configuration_adv.h
  8. 221
    144
      Marlin/src/config/examples/Anet/A8/Configuration_adv.h
  9. 221
    144
      Marlin/src/config/examples/ArmEd/Configuration_adv.h
  10. 221
    144
      Marlin/src/config/examples/BIBO/TouchX/cyclops/Configuration_adv.h
  11. 221
    144
      Marlin/src/config/examples/BIBO/TouchX/default/Configuration_adv.h
  12. 221
    144
      Marlin/src/config/examples/BQ/Hephestos/Configuration_adv.h
  13. 221
    144
      Marlin/src/config/examples/BQ/Hephestos_2/Configuration_adv.h
  14. 221
    144
      Marlin/src/config/examples/BQ/WITBOX/Configuration_adv.h
  15. 221
    144
      Marlin/src/config/examples/Cartesio/Configuration_adv.h
  16. 221
    144
      Marlin/src/config/examples/Creality/CR-10/Configuration_adv.h
  17. 221
    144
      Marlin/src/config/examples/Creality/CR-10S/Configuration_adv.h
  18. 221
    144
      Marlin/src/config/examples/Creality/CR-10mini/Configuration_adv.h
  19. 221
    144
      Marlin/src/config/examples/Creality/CR-8/Configuration_adv.h
  20. 221
    144
      Marlin/src/config/examples/Creality/Ender-2/Configuration_adv.h
  21. 221
    144
      Marlin/src/config/examples/Creality/Ender-3/Configuration_adv.h
  22. 221
    144
      Marlin/src/config/examples/Creality/Ender-4/Configuration_adv.h
  23. 221
    144
      Marlin/src/config/examples/Einstart-S/Configuration_adv.h
  24. 221
    144
      Marlin/src/config/examples/Felix/Configuration_adv.h
  25. 221
    144
      Marlin/src/config/examples/FlashForge/CreatorPro/Configuration_adv.h
  26. 221
    144
      Marlin/src/config/examples/FolgerTech/i3-2020/Configuration_adv.h
  27. 221
    144
      Marlin/src/config/examples/Formbot/Raptor/Configuration_adv.h
  28. 221
    144
      Marlin/src/config/examples/Formbot/T_Rex_2+/Configuration_adv.h
  29. 221
    144
      Marlin/src/config/examples/Formbot/T_Rex_3/Configuration_adv.h
  30. 221
    144
      Marlin/src/config/examples/Geeetech/MeCreator2/Configuration_adv.h
  31. 221
    144
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro C/Configuration_adv.h
  32. 221
    144
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro W/Configuration_adv.h
  33. 221
    144
      Marlin/src/config/examples/Infitary/i3-M508/Configuration_adv.h
  34. 221
    144
      Marlin/src/config/examples/JGAurora/A5/Configuration_adv.h
  35. 221
    144
      Marlin/src/config/examples/MakerParts/Configuration_adv.h
  36. 221
    144
      Marlin/src/config/examples/Malyan/M150/Configuration_adv.h
  37. 221
    144
      Marlin/src/config/examples/Malyan/M200/Configuration_adv.h
  38. 221
    144
      Marlin/src/config/examples/Micromake/C1/enhanced/Configuration_adv.h
  39. 221
    144
      Marlin/src/config/examples/Mks/Robin/Configuration_adv.h
  40. 221
    144
      Marlin/src/config/examples/Mks/Sbase/Configuration_adv.h
  41. 221
    144
      Marlin/src/config/examples/RapideLite/RL200/Configuration_adv.h
  42. 221
    144
      Marlin/src/config/examples/RigidBot/Configuration_adv.h
  43. 221
    144
      Marlin/src/config/examples/SCARA/Configuration_adv.h
  44. 221
    144
      Marlin/src/config/examples/Sanguinololu/Configuration_adv.h
  45. 221
    144
      Marlin/src/config/examples/TheBorg/Configuration_adv.h
  46. 221
    144
      Marlin/src/config/examples/TinyBoy2/Configuration_adv.h
  47. 221
    144
      Marlin/src/config/examples/Tronxy/X3A/Configuration_adv.h
  48. 221
    144
      Marlin/src/config/examples/UltiMachine/Archim1/Configuration_adv.h
  49. 221
    144
      Marlin/src/config/examples/UltiMachine/Archim2/Configuration_adv.h
  50. 221
    144
      Marlin/src/config/examples/VORONDesign/Configuration_adv.h
  51. 221
    144
      Marlin/src/config/examples/Velleman/K8200/Configuration_adv.h
  52. 221
    144
      Marlin/src/config/examples/Velleman/K8400/Configuration_adv.h
  53. 221
    144
      Marlin/src/config/examples/WASP/PowerWASP/Configuration_adv.h
  54. 221
    144
      Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration_adv.h
  55. 221
    144
      Marlin/src/config/examples/delta/Anycubic/Kossel/Configuration_adv.h
  56. 221
    144
      Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h
  57. 221
    144
      Marlin/src/config/examples/delta/FLSUN/kossel/Configuration_adv.h
  58. 221
    144
      Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h
  59. 221
    144
      Marlin/src/config/examples/delta/Geeetech/Rostock 301/Configuration_adv.h
  60. 221
    144
      Marlin/src/config/examples/delta/MKS/SBASE/Configuration_adv.h
  61. 221
    144
      Marlin/src/config/examples/delta/Tevo Little Monster/Configuration_adv.h
  62. 221
    144
      Marlin/src/config/examples/delta/generic/Configuration_adv.h
  63. 221
    144
      Marlin/src/config/examples/delta/kossel_mini/Configuration_adv.h
  64. 221
    144
      Marlin/src/config/examples/delta/kossel_xl/Configuration_adv.h
  65. 221
    144
      Marlin/src/config/examples/gCreate/gMax1.5+/Configuration_adv.h
  66. 221
    144
      Marlin/src/config/examples/makibox/Configuration_adv.h
  67. 221
    144
      Marlin/src/config/examples/tvrrug/Round2/Configuration_adv.h
  68. 221
    144
      Marlin/src/config/examples/wt150/Configuration_adv.h

+ 221
- 144
Marlin/Configuration_adv.h View File

@@ -1237,57 +1237,83 @@
1237 1237
  */
1238 1238
 #if HAS_DRIVER(TMC26X)
1239 1239
 
1240
-  #define X_MAX_CURRENT     1000 // in mA
1241
-  #define X_SENSE_RESISTOR    91 // in mOhms
1242
-  #define X_MICROSTEPS        16 // number of microsteps
1240
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1241
+    #define X_MAX_CURRENT     1000  // (mA)
1242
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1243
+    #define X_MICROSTEPS        16  // Number of microsteps
1244
+  #endif
1243 1245
 
1244
-  #define X2_MAX_CURRENT    1000
1245
-  #define X2_SENSE_RESISTOR   91
1246
-  #define X2_MICROSTEPS       16
1246
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1247
+    #define X2_MAX_CURRENT    1000
1248
+    #define X2_SENSE_RESISTOR   91
1249
+    #define X2_MICROSTEPS       16
1250
+  #endif
1247 1251
 
1248
-  #define Y_MAX_CURRENT     1000
1249
-  #define Y_SENSE_RESISTOR    91
1250
-  #define Y_MICROSTEPS        16
1252
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1253
+    #define Y_MAX_CURRENT     1000
1254
+    #define Y_SENSE_RESISTOR    91
1255
+    #define Y_MICROSTEPS        16
1256
+  #endif
1251 1257
 
1252
-  #define Y2_MAX_CURRENT    1000
1253
-  #define Y2_SENSE_RESISTOR   91
1254
-  #define Y2_MICROSTEPS       16
1258
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1259
+    #define Y2_MAX_CURRENT    1000
1260
+    #define Y2_SENSE_RESISTOR   91
1261
+    #define Y2_MICROSTEPS       16
1262
+  #endif
1255 1263
 
1256
-  #define Z_MAX_CURRENT     1000
1257
-  #define Z_SENSE_RESISTOR    91
1258
-  #define Z_MICROSTEPS        16
1264
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1265
+    #define Z_MAX_CURRENT     1000
1266
+    #define Z_SENSE_RESISTOR    91
1267
+    #define Z_MICROSTEPS        16
1268
+  #endif
1259 1269
 
1260
-  #define Z2_MAX_CURRENT    1000
1261
-  #define Z2_SENSE_RESISTOR   91
1262
-  #define Z2_MICROSTEPS       16
1270
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1271
+    #define Z2_MAX_CURRENT    1000
1272
+    #define Z2_SENSE_RESISTOR   91
1273
+    #define Z2_MICROSTEPS       16
1274
+  #endif
1263 1275
 
1264
-  #define Z3_MAX_CURRENT    1000
1265
-  #define Z3_SENSE_RESISTOR   91
1266
-  #define Z3_MICROSTEPS       16
1276
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1277
+    #define Z3_MAX_CURRENT    1000
1278
+    #define Z3_SENSE_RESISTOR   91
1279
+    #define Z3_MICROSTEPS       16
1280
+  #endif
1267 1281
 
1268
-  #define E0_MAX_CURRENT    1000
1269
-  #define E0_SENSE_RESISTOR   91
1270
-  #define E0_MICROSTEPS       16
1282
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1283
+    #define E0_MAX_CURRENT    1000
1284
+    #define E0_SENSE_RESISTOR   91
1285
+    #define E0_MICROSTEPS       16
1286
+  #endif
1271 1287
 
1272
-  #define E1_MAX_CURRENT    1000
1273
-  #define E1_SENSE_RESISTOR   91
1274
-  #define E1_MICROSTEPS       16
1288
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1289
+    #define E1_MAX_CURRENT    1000
1290
+    #define E1_SENSE_RESISTOR   91
1291
+    #define E1_MICROSTEPS       16
1292
+  #endif
1275 1293
 
1276
-  #define E2_MAX_CURRENT    1000
1277
-  #define E2_SENSE_RESISTOR   91
1278
-  #define E2_MICROSTEPS       16
1294
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1295
+    #define E2_MAX_CURRENT    1000
1296
+    #define E2_SENSE_RESISTOR   91
1297
+    #define E2_MICROSTEPS       16
1298
+  #endif
1279 1299
 
1280
-  #define E3_MAX_CURRENT    1000
1281
-  #define E3_SENSE_RESISTOR   91
1282
-  #define E3_MICROSTEPS       16
1300
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1301
+    #define E3_MAX_CURRENT    1000
1302
+    #define E3_SENSE_RESISTOR   91
1303
+    #define E3_MICROSTEPS       16
1304
+  #endif
1283 1305
 
1284
-  #define E4_MAX_CURRENT    1000
1285
-  #define E4_SENSE_RESISTOR   91
1286
-  #define E4_MICROSTEPS       16
1306
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1307
+    #define E4_MAX_CURRENT    1000
1308
+    #define E4_SENSE_RESISTOR   91
1309
+    #define E4_MICROSTEPS       16
1310
+  #endif
1287 1311
 
1288
-  #define E5_MAX_CURRENT    1000
1289
-  #define E5_SENSE_RESISTOR   91
1290
-  #define E5_MICROSTEPS       16
1312
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1313
+    #define E5_MAX_CURRENT    1000
1314
+    #define E5_SENSE_RESISTOR   91
1315
+    #define E5_MICROSTEPS       16
1316
+  #endif
1291 1317
 
1292 1318
 #endif // TMC26X
1293 1319
 
@@ -1314,44 +1340,70 @@
1314 1340
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1315 1341
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1316 1342
 
1317
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1318
-  #define X_MICROSTEPS        16  // 0..256
1343
+  #if AXIS_IS_TMC(X)
1344
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1345
+    #define X_MICROSTEPS   16  // 0..256
1346
+  #endif
1319 1347
 
1320
-  #define Y_CURRENT          800
1321
-  #define Y_MICROSTEPS        16
1348
+  #if AXIS_IS_TMC(X2)
1349
+    #define X2_CURRENT    800
1350
+    #define X2_MICROSTEPS  16
1351
+  #endif
1322 1352
 
1323
-  #define Z_CURRENT          800
1324
-  #define Z_MICROSTEPS        16
1353
+  #if AXIS_IS_TMC(Y)
1354
+    #define Y_CURRENT     800
1355
+    #define Y_MICROSTEPS   16
1356
+  #endif
1325 1357
 
1326
-  #define X2_CURRENT         800
1327
-  #define X2_MICROSTEPS       16
1358
+  #if AXIS_IS_TMC(Y2)
1359
+    #define Y2_CURRENT    800
1360
+    #define Y2_MICROSTEPS  16
1361
+  #endif
1328 1362
 
1329
-  #define Y2_CURRENT         800
1330
-  #define Y2_MICROSTEPS       16
1363
+  #if AXIS_IS_TMC(Z)
1364
+    #define Z_CURRENT     800
1365
+    #define Z_MICROSTEPS   16
1366
+  #endif
1331 1367
 
1332
-  #define Z2_CURRENT         800
1333
-  #define Z2_MICROSTEPS       16
1368
+  #if AXIS_IS_TMC(Z2)
1369
+    #define Z2_CURRENT    800
1370
+    #define Z2_MICROSTEPS  16
1371
+  #endif
1334 1372
 
1335
-  #define Z3_CURRENT         800
1336
-  #define Z3_MICROSTEPS       16
1373
+  #if AXIS_IS_TMC(Z3)
1374
+    #define Z3_CURRENT    800
1375
+    #define Z3_MICROSTEPS  16
1376
+  #endif
1337 1377
 
1338
-  #define E0_CURRENT         800
1339
-  #define E0_MICROSTEPS       16
1378
+  #if AXIS_IS_TMC(E0)
1379
+    #define E0_CURRENT    800
1380
+    #define E0_MICROSTEPS  16
1381
+  #endif
1340 1382
 
1341
-  #define E1_CURRENT         800
1342
-  #define E1_MICROSTEPS       16
1383
+  #if AXIS_IS_TMC(E1)
1384
+    #define E1_CURRENT    800
1385
+    #define E1_MICROSTEPS  16
1386
+  #endif
1343 1387
 
1344
-  #define E2_CURRENT         800
1345
-  #define E2_MICROSTEPS       16
1388
+  #if AXIS_IS_TMC(E2)
1389
+    #define E2_CURRENT    800
1390
+    #define E2_MICROSTEPS  16
1391
+  #endif
1346 1392
 
1347
-  #define E3_CURRENT         800
1348
-  #define E3_MICROSTEPS       16
1393
+  #if AXIS_IS_TMC(E3)
1394
+    #define E3_CURRENT    800
1395
+    #define E3_MICROSTEPS  16
1396
+  #endif
1349 1397
 
1350
-  #define E4_CURRENT         800
1351
-  #define E4_MICROSTEPS       16
1398
+  #if AXIS_IS_TMC(E4)
1399
+    #define E4_CURRENT    800
1400
+    #define E4_MICROSTEPS  16
1401
+  #endif
1352 1402
 
1353
-  #define E5_CURRENT         800
1354
-  #define E5_MICROSTEPS       16
1403
+  #if AXIS_IS_TMC(E5)
1404
+    #define E5_CURRENT    800
1405
+    #define E5_MICROSTEPS  16
1406
+  #endif
1355 1407
 
1356 1408
   /**
1357 1409
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1521,84 +1573,111 @@
1521 1573
  */
1522 1574
 #if HAS_DRIVER(L6470)
1523 1575
 
1524
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1525
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1526
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1527
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1528
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1529
-
1530
-  #define X2_MICROSTEPS      128
1531
-  #define X2_OVERCURRENT    2000
1532
-  #define X2_STALLCURRENT   1500
1533
-  #define X2_MAX_VOLTAGE     127
1534
-  #define X2_CHAIN_POS         0
1535
-
1536
-  #define Y_MICROSTEPS       128
1537
-  #define Y_OVERCURRENT     2000
1538
-  #define Y_STALLCURRENT    1500
1539
-  #define Y_MAX_VOLTAGE      127
1540
-  #define Y_CHAIN_POS          0
1541
-
1542
-  #define Y2_MICROSTEPS      128
1543
-  #define Y2_OVERCURRENT    2000
1544
-  #define Y2_STALLCURRENT   1500
1545
-  #define Y2_MAX_VOLTAGE     127
1546
-  #define Y2_CHAIN_POS         0
1547
-
1548
-  #define Z_MICROSTEPS       128
1549
-  #define Z_OVERCURRENT     2000
1550
-  #define Z_STALLCURRENT    1500
1551
-  #define Z_MAX_VOLTAGE      127
1552
-  #define Z_CHAIN_POS          0
1553
-
1554
-  #define Z2_MICROSTEPS      128
1555
-  #define Z2_OVERCURRENT    2000
1556
-  #define Z2_STALLCURRENT   1500
1557
-  #define Z2_MAX_VOLTAGE     127
1558
-  #define Z2_CHAIN_POS         0
1559
-
1560
-  #define Z3_MICROSTEPS      128
1561
-  #define Z3_OVERCURRENT    2000
1562
-  #define Z3_STALLCURRENT   1500
1563
-  #define Z3_MAX_VOLTAGE     127
1564
-  #define Z3_CHAIN_POS         0
1565
-
1566
-  #define E0_MICROSTEPS      128
1567
-  #define E0_OVERCURRENT    2000
1568
-  #define E0_STALLCURRENT   1500
1569
-  #define E0_MAX_VOLTAGE     127
1570
-  #define E0_CHAIN_POS         0
1571
-
1572
-  #define E1_MICROSTEPS      128
1573
-  #define E1_OVERCURRENT    2000
1574
-  #define E1_STALLCURRENT   1500
1575
-  #define E1_MAX_VOLTAGE     127
1576
-  #define E1_CHAIN_POS         0
1577
-
1578
-  #define E2_MICROSTEPS      128
1579
-  #define E2_OVERCURRENT    2000
1580
-  #define E2_STALLCURRENT   1500
1581
-  #define E2_MAX_VOLTAGE     127
1582
-  #define E2_CHAIN_POS         0
1583
-
1584
-  #define E3_MICROSTEPS      128
1585
-  #define E3_OVERCURRENT    2000
1586
-  #define E3_STALLCURRENT   1500
1587
-  #define E3_MAX_VOLTAGE     127
1588
-  #define E3_CHAIN_POS         0
1589
-
1590
-  #define E4_MICROSTEPS      128
1591
-  #define E4_OVERCURRENT    2000
1592
-  #define E4_STALLCURRENT   1500
1593
-  #define E4_MAX_VOLTAGE     127
1594
-  #define E4_CHAIN_POS         0
1595
-
1596
-  #define E5_MICROSTEPS      128
1597
-  #define E5_OVERCURRENT    2000
1598
-  #define E5_STALLCURRENT   1500
1599
-  #define E5_MAX_VOLTAGE     127
1600
-  #define E5_CHAIN_POS         0
1576
+  //#define L6470_CHITCHAT        // Display additional status info
1601 1577
 
1578
+  #if AXIS_DRIVER_TYPE_X(L6470)
1579
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1580
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1581
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1582
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1583
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1584
+  #endif
1585
+
1586
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1587
+    #define X2_MICROSTEPS      128
1588
+    #define X2_OVERCURRENT    2000
1589
+    #define X2_STALLCURRENT   1500
1590
+    #define X2_MAX_VOLTAGE     127
1591
+    #define X2_CHAIN_POS         0
1592
+  #endif
1593
+
1594
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1595
+    #define Y_MICROSTEPS       128
1596
+    #define Y_OVERCURRENT     2000
1597
+    #define Y_STALLCURRENT    1500
1598
+    #define Y_MAX_VOLTAGE      127
1599
+    #define Y_CHAIN_POS          0
1600
+  #endif
1601
+
1602
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1603
+    #define Y2_MICROSTEPS      128
1604
+    #define Y2_OVERCURRENT    2000
1605
+    #define Y2_STALLCURRENT   1500
1606
+    #define Y2_MAX_VOLTAGE     127
1607
+    #define Y2_CHAIN_POS         0
1608
+  #endif
1609
+
1610
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1611
+    #define Z_MICROSTEPS       128
1612
+    #define Z_OVERCURRENT     2000
1613
+    #define Z_STALLCURRENT    1500
1614
+    #define Z_MAX_VOLTAGE      127
1615
+    #define Z_CHAIN_POS          0
1616
+  #endif
1617
+
1618
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1619
+    #define Z2_MICROSTEPS      128
1620
+    #define Z2_OVERCURRENT    2000
1621
+    #define Z2_STALLCURRENT   1500
1622
+    #define Z2_MAX_VOLTAGE     127
1623
+    #define Z2_CHAIN_POS         0
1624
+  #endif
1625
+
1626
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1627
+    #define Z3_MICROSTEPS      128
1628
+    #define Z3_OVERCURRENT    2000
1629
+    #define Z3_STALLCURRENT   1500
1630
+    #define Z3_MAX_VOLTAGE     127
1631
+    #define Z3_CHAIN_POS         0
1632
+  #endif
1633
+
1634
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1635
+    #define E0_MICROSTEPS      128
1636
+    #define E0_OVERCURRENT    2000
1637
+    #define E0_STALLCURRENT   1500
1638
+    #define E0_MAX_VOLTAGE     127
1639
+    #define E0_CHAIN_POS         0
1640
+  #endif
1641
+
1642
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1643
+    #define E1_MICROSTEPS      128
1644
+    #define E1_OVERCURRENT    2000
1645
+    #define E1_STALLCURRENT   1500
1646
+    #define E1_MAX_VOLTAGE     127
1647
+    #define E1_CHAIN_POS         0
1648
+  #endif
1649
+
1650
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1651
+    #define E2_MICROSTEPS      128
1652
+    #define E2_OVERCURRENT    2000
1653
+    #define E2_STALLCURRENT   1500
1654
+    #define E2_MAX_VOLTAGE     127
1655
+    #define E2_CHAIN_POS         0
1656
+  #endif
1657
+
1658
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1659
+    #define E3_MICROSTEPS      128
1660
+    #define E3_OVERCURRENT    2000
1661
+    #define E3_STALLCURRENT   1500
1662
+    #define E3_MAX_VOLTAGE     127
1663
+    #define E3_CHAIN_POS         0
1664
+  #endif
1665
+
1666
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1667
+    #define E4_MICROSTEPS      128
1668
+    #define E4_OVERCURRENT    2000
1669
+    #define E4_STALLCURRENT   1500
1670
+    #define E4_MAX_VOLTAGE     127
1671
+    #define E4_CHAIN_POS         0
1672
+  #endif
1673
+
1674
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1675
+    #define E5_MICROSTEPS      128
1676
+    #define E5_OVERCURRENT    2000
1677
+    #define E5_STALLCURRENT   1500
1678
+    #define E5_MAX_VOLTAGE     127
1679
+    #define E5_CHAIN_POS         0
1680
+  #endif
1602 1681
 
1603 1682
   /**
1604 1683
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1623,8 +1702,6 @@
1623 1702
     //#define L6470_STOP_ON_ERROR
1624 1703
   #endif
1625 1704
 
1626
-  #define L6470_CHITCHAT     // enable display of additional status info
1627
-
1628 1705
 #endif // L6470
1629 1706
 
1630 1707
 /**

+ 221
- 144
Marlin/src/config/default/Configuration_adv.h View File

@@ -1237,57 +1237,83 @@
1237 1237
  */
1238 1238
 #if HAS_DRIVER(TMC26X)
1239 1239
 
1240
-  #define X_MAX_CURRENT     1000 // in mA
1241
-  #define X_SENSE_RESISTOR    91 // in mOhms
1242
-  #define X_MICROSTEPS        16 // number of microsteps
1240
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1241
+    #define X_MAX_CURRENT     1000  // (mA)
1242
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1243
+    #define X_MICROSTEPS        16  // Number of microsteps
1244
+  #endif
1243 1245
 
1244
-  #define X2_MAX_CURRENT    1000
1245
-  #define X2_SENSE_RESISTOR   91
1246
-  #define X2_MICROSTEPS       16
1246
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1247
+    #define X2_MAX_CURRENT    1000
1248
+    #define X2_SENSE_RESISTOR   91
1249
+    #define X2_MICROSTEPS       16
1250
+  #endif
1247 1251
 
1248
-  #define Y_MAX_CURRENT     1000
1249
-  #define Y_SENSE_RESISTOR    91
1250
-  #define Y_MICROSTEPS        16
1252
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1253
+    #define Y_MAX_CURRENT     1000
1254
+    #define Y_SENSE_RESISTOR    91
1255
+    #define Y_MICROSTEPS        16
1256
+  #endif
1251 1257
 
1252
-  #define Y2_MAX_CURRENT    1000
1253
-  #define Y2_SENSE_RESISTOR   91
1254
-  #define Y2_MICROSTEPS       16
1258
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1259
+    #define Y2_MAX_CURRENT    1000
1260
+    #define Y2_SENSE_RESISTOR   91
1261
+    #define Y2_MICROSTEPS       16
1262
+  #endif
1255 1263
 
1256
-  #define Z_MAX_CURRENT     1000
1257
-  #define Z_SENSE_RESISTOR    91
1258
-  #define Z_MICROSTEPS        16
1264
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1265
+    #define Z_MAX_CURRENT     1000
1266
+    #define Z_SENSE_RESISTOR    91
1267
+    #define Z_MICROSTEPS        16
1268
+  #endif
1259 1269
 
1260
-  #define Z2_MAX_CURRENT    1000
1261
-  #define Z2_SENSE_RESISTOR   91
1262
-  #define Z2_MICROSTEPS       16
1270
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1271
+    #define Z2_MAX_CURRENT    1000
1272
+    #define Z2_SENSE_RESISTOR   91
1273
+    #define Z2_MICROSTEPS       16
1274
+  #endif
1263 1275
 
1264
-  #define Z3_MAX_CURRENT    1000
1265
-  #define Z3_SENSE_RESISTOR   91
1266
-  #define Z3_MICROSTEPS       16
1276
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1277
+    #define Z3_MAX_CURRENT    1000
1278
+    #define Z3_SENSE_RESISTOR   91
1279
+    #define Z3_MICROSTEPS       16
1280
+  #endif
1267 1281
 
1268
-  #define E0_MAX_CURRENT    1000
1269
-  #define E0_SENSE_RESISTOR   91
1270
-  #define E0_MICROSTEPS       16
1282
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1283
+    #define E0_MAX_CURRENT    1000
1284
+    #define E0_SENSE_RESISTOR   91
1285
+    #define E0_MICROSTEPS       16
1286
+  #endif
1271 1287
 
1272
-  #define E1_MAX_CURRENT    1000
1273
-  #define E1_SENSE_RESISTOR   91
1274
-  #define E1_MICROSTEPS       16
1288
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1289
+    #define E1_MAX_CURRENT    1000
1290
+    #define E1_SENSE_RESISTOR   91
1291
+    #define E1_MICROSTEPS       16
1292
+  #endif
1275 1293
 
1276
-  #define E2_MAX_CURRENT    1000
1277
-  #define E2_SENSE_RESISTOR   91
1278
-  #define E2_MICROSTEPS       16
1294
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1295
+    #define E2_MAX_CURRENT    1000
1296
+    #define E2_SENSE_RESISTOR   91
1297
+    #define E2_MICROSTEPS       16
1298
+  #endif
1279 1299
 
1280
-  #define E3_MAX_CURRENT    1000
1281
-  #define E3_SENSE_RESISTOR   91
1282
-  #define E3_MICROSTEPS       16
1300
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1301
+    #define E3_MAX_CURRENT    1000
1302
+    #define E3_SENSE_RESISTOR   91
1303
+    #define E3_MICROSTEPS       16
1304
+  #endif
1283 1305
 
1284
-  #define E4_MAX_CURRENT    1000
1285
-  #define E4_SENSE_RESISTOR   91
1286
-  #define E4_MICROSTEPS       16
1306
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1307
+    #define E4_MAX_CURRENT    1000
1308
+    #define E4_SENSE_RESISTOR   91
1309
+    #define E4_MICROSTEPS       16
1310
+  #endif
1287 1311
 
1288
-  #define E5_MAX_CURRENT    1000
1289
-  #define E5_SENSE_RESISTOR   91
1290
-  #define E5_MICROSTEPS       16
1312
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1313
+    #define E5_MAX_CURRENT    1000
1314
+    #define E5_SENSE_RESISTOR   91
1315
+    #define E5_MICROSTEPS       16
1316
+  #endif
1291 1317
 
1292 1318
 #endif // TMC26X
1293 1319
 
@@ -1314,44 +1340,70 @@
1314 1340
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1315 1341
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1316 1342
 
1317
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1318
-  #define X_MICROSTEPS        16  // 0..256
1343
+  #if AXIS_IS_TMC(X)
1344
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1345
+    #define X_MICROSTEPS   16  // 0..256
1346
+  #endif
1319 1347
 
1320
-  #define Y_CURRENT          800
1321
-  #define Y_MICROSTEPS        16
1348
+  #if AXIS_IS_TMC(X2)
1349
+    #define X2_CURRENT    800
1350
+    #define X2_MICROSTEPS  16
1351
+  #endif
1322 1352
 
1323
-  #define Z_CURRENT          800
1324
-  #define Z_MICROSTEPS        16
1353
+  #if AXIS_IS_TMC(Y)
1354
+    #define Y_CURRENT     800
1355
+    #define Y_MICROSTEPS   16
1356
+  #endif
1325 1357
 
1326
-  #define X2_CURRENT         800
1327
-  #define X2_MICROSTEPS       16
1358
+  #if AXIS_IS_TMC(Y2)
1359
+    #define Y2_CURRENT    800
1360
+    #define Y2_MICROSTEPS  16
1361
+  #endif
1328 1362
 
1329
-  #define Y2_CURRENT         800
1330
-  #define Y2_MICROSTEPS       16
1363
+  #if AXIS_IS_TMC(Z)
1364
+    #define Z_CURRENT     800
1365
+    #define Z_MICROSTEPS   16
1366
+  #endif
1331 1367
 
1332
-  #define Z2_CURRENT         800
1333
-  #define Z2_MICROSTEPS       16
1368
+  #if AXIS_IS_TMC(Z2)
1369
+    #define Z2_CURRENT    800
1370
+    #define Z2_MICROSTEPS  16
1371
+  #endif
1334 1372
 
1335
-  #define Z3_CURRENT         800
1336
-  #define Z3_MICROSTEPS       16
1373
+  #if AXIS_IS_TMC(Z3)
1374
+    #define Z3_CURRENT    800
1375
+    #define Z3_MICROSTEPS  16
1376
+  #endif
1337 1377
 
1338
-  #define E0_CURRENT         800
1339
-  #define E0_MICROSTEPS       16
1378
+  #if AXIS_IS_TMC(E0)
1379
+    #define E0_CURRENT    800
1380
+    #define E0_MICROSTEPS  16
1381
+  #endif
1340 1382
 
1341
-  #define E1_CURRENT         800
1342
-  #define E1_MICROSTEPS       16
1383
+  #if AXIS_IS_TMC(E1)
1384
+    #define E1_CURRENT    800
1385
+    #define E1_MICROSTEPS  16
1386
+  #endif
1343 1387
 
1344
-  #define E2_CURRENT         800
1345
-  #define E2_MICROSTEPS       16
1388
+  #if AXIS_IS_TMC(E2)
1389
+    #define E2_CURRENT    800
1390
+    #define E2_MICROSTEPS  16
1391
+  #endif
1346 1392
 
1347
-  #define E3_CURRENT         800
1348
-  #define E3_MICROSTEPS       16
1393
+  #if AXIS_IS_TMC(E3)
1394
+    #define E3_CURRENT    800
1395
+    #define E3_MICROSTEPS  16
1396
+  #endif
1349 1397
 
1350
-  #define E4_CURRENT         800
1351
-  #define E4_MICROSTEPS       16
1398
+  #if AXIS_IS_TMC(E4)
1399
+    #define E4_CURRENT    800
1400
+    #define E4_MICROSTEPS  16
1401
+  #endif
1352 1402
 
1353
-  #define E5_CURRENT         800
1354
-  #define E5_MICROSTEPS       16
1403
+  #if AXIS_IS_TMC(E5)
1404
+    #define E5_CURRENT    800
1405
+    #define E5_MICROSTEPS  16
1406
+  #endif
1355 1407
 
1356 1408
   /**
1357 1409
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1521,84 +1573,111 @@
1521 1573
  */
1522 1574
 #if HAS_DRIVER(L6470)
1523 1575
 
1524
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1525
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1526
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1527
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1528
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1529
-
1530
-  #define X2_MICROSTEPS      128
1531
-  #define X2_OVERCURRENT    2000
1532
-  #define X2_STALLCURRENT   1500
1533
-  #define X2_MAX_VOLTAGE     127
1534
-  #define X2_CHAIN_POS         0
1535
-
1536
-  #define Y_MICROSTEPS       128
1537
-  #define Y_OVERCURRENT     2000
1538
-  #define Y_STALLCURRENT    1500
1539
-  #define Y_MAX_VOLTAGE      127
1540
-  #define Y_CHAIN_POS          0
1541
-
1542
-  #define Y2_MICROSTEPS      128
1543
-  #define Y2_OVERCURRENT    2000
1544
-  #define Y2_STALLCURRENT   1500
1545
-  #define Y2_MAX_VOLTAGE     127
1546
-  #define Y2_CHAIN_POS         0
1547
-
1548
-  #define Z_MICROSTEPS       128
1549
-  #define Z_OVERCURRENT     2000
1550
-  #define Z_STALLCURRENT    1500
1551
-  #define Z_MAX_VOLTAGE      127
1552
-  #define Z_CHAIN_POS          0
1553
-
1554
-  #define Z2_MICROSTEPS      128
1555
-  #define Z2_OVERCURRENT    2000
1556
-  #define Z2_STALLCURRENT   1500
1557
-  #define Z2_MAX_VOLTAGE     127
1558
-  #define Z2_CHAIN_POS         0
1559
-
1560
-  #define Z3_MICROSTEPS      128
1561
-  #define Z3_OVERCURRENT    2000
1562
-  #define Z3_STALLCURRENT   1500
1563
-  #define Z3_MAX_VOLTAGE     127
1564
-  #define Z3_CHAIN_POS         0
1565
-
1566
-  #define E0_MICROSTEPS      128
1567
-  #define E0_OVERCURRENT    2000
1568
-  #define E0_STALLCURRENT   1500
1569
-  #define E0_MAX_VOLTAGE     127
1570
-  #define E0_CHAIN_POS         0
1571
-
1572
-  #define E1_MICROSTEPS      128
1573
-  #define E1_OVERCURRENT    2000
1574
-  #define E1_STALLCURRENT   1500
1575
-  #define E1_MAX_VOLTAGE     127
1576
-  #define E1_CHAIN_POS         0
1577
-
1578
-  #define E2_MICROSTEPS      128
1579
-  #define E2_OVERCURRENT    2000
1580
-  #define E2_STALLCURRENT   1500
1581
-  #define E2_MAX_VOLTAGE     127
1582
-  #define E2_CHAIN_POS         0
1583
-
1584
-  #define E3_MICROSTEPS      128
1585
-  #define E3_OVERCURRENT    2000
1586
-  #define E3_STALLCURRENT   1500
1587
-  #define E3_MAX_VOLTAGE     127
1588
-  #define E3_CHAIN_POS         0
1589
-
1590
-  #define E4_MICROSTEPS      128
1591
-  #define E4_OVERCURRENT    2000
1592
-  #define E4_STALLCURRENT   1500
1593
-  #define E4_MAX_VOLTAGE     127
1594
-  #define E4_CHAIN_POS         0
1595
-
1596
-  #define E5_MICROSTEPS      128
1597
-  #define E5_OVERCURRENT    2000
1598
-  #define E5_STALLCURRENT   1500
1599
-  #define E5_MAX_VOLTAGE     127
1600
-  #define E5_CHAIN_POS         0
1576
+  //#define L6470_CHITCHAT        // Display additional status info
1601 1577
 
1578
+  #if AXIS_DRIVER_TYPE_X(L6470)
1579
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1580
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1581
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1582
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1583
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1584
+  #endif
1585
+
1586
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1587
+    #define X2_MICROSTEPS      128
1588
+    #define X2_OVERCURRENT    2000
1589
+    #define X2_STALLCURRENT   1500
1590
+    #define X2_MAX_VOLTAGE     127
1591
+    #define X2_CHAIN_POS         0
1592
+  #endif
1593
+
1594
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1595
+    #define Y_MICROSTEPS       128
1596
+    #define Y_OVERCURRENT     2000
1597
+    #define Y_STALLCURRENT    1500
1598
+    #define Y_MAX_VOLTAGE      127
1599
+    #define Y_CHAIN_POS          0
1600
+  #endif
1601
+
1602
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1603
+    #define Y2_MICROSTEPS      128
1604
+    #define Y2_OVERCURRENT    2000
1605
+    #define Y2_STALLCURRENT   1500
1606
+    #define Y2_MAX_VOLTAGE     127
1607
+    #define Y2_CHAIN_POS         0
1608
+  #endif
1609
+
1610
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1611
+    #define Z_MICROSTEPS       128
1612
+    #define Z_OVERCURRENT     2000
1613
+    #define Z_STALLCURRENT    1500
1614
+    #define Z_MAX_VOLTAGE      127
1615
+    #define Z_CHAIN_POS          0
1616
+  #endif
1617
+
1618
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1619
+    #define Z2_MICROSTEPS      128
1620
+    #define Z2_OVERCURRENT    2000
1621
+    #define Z2_STALLCURRENT   1500
1622
+    #define Z2_MAX_VOLTAGE     127
1623
+    #define Z2_CHAIN_POS         0
1624
+  #endif
1625
+
1626
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1627
+    #define Z3_MICROSTEPS      128
1628
+    #define Z3_OVERCURRENT    2000
1629
+    #define Z3_STALLCURRENT   1500
1630
+    #define Z3_MAX_VOLTAGE     127
1631
+    #define Z3_CHAIN_POS         0
1632
+  #endif
1633
+
1634
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1635
+    #define E0_MICROSTEPS      128
1636
+    #define E0_OVERCURRENT    2000
1637
+    #define E0_STALLCURRENT   1500
1638
+    #define E0_MAX_VOLTAGE     127
1639
+    #define E0_CHAIN_POS         0
1640
+  #endif
1641
+
1642
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1643
+    #define E1_MICROSTEPS      128
1644
+    #define E1_OVERCURRENT    2000
1645
+    #define E1_STALLCURRENT   1500
1646
+    #define E1_MAX_VOLTAGE     127
1647
+    #define E1_CHAIN_POS         0
1648
+  #endif
1649
+
1650
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1651
+    #define E2_MICROSTEPS      128
1652
+    #define E2_OVERCURRENT    2000
1653
+    #define E2_STALLCURRENT   1500
1654
+    #define E2_MAX_VOLTAGE     127
1655
+    #define E2_CHAIN_POS         0
1656
+  #endif
1657
+
1658
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1659
+    #define E3_MICROSTEPS      128
1660
+    #define E3_OVERCURRENT    2000
1661
+    #define E3_STALLCURRENT   1500
1662
+    #define E3_MAX_VOLTAGE     127
1663
+    #define E3_CHAIN_POS         0
1664
+  #endif
1665
+
1666
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1667
+    #define E4_MICROSTEPS      128
1668
+    #define E4_OVERCURRENT    2000
1669
+    #define E4_STALLCURRENT   1500
1670
+    #define E4_MAX_VOLTAGE     127
1671
+    #define E4_CHAIN_POS         0
1672
+  #endif
1673
+
1674
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1675
+    #define E5_MICROSTEPS      128
1676
+    #define E5_OVERCURRENT    2000
1677
+    #define E5_STALLCURRENT   1500
1678
+    #define E5_MAX_VOLTAGE     127
1679
+    #define E5_CHAIN_POS         0
1680
+  #endif
1602 1681
 
1603 1682
   /**
1604 1683
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1623,8 +1702,6 @@
1623 1702
     //#define L6470_STOP_ON_ERROR
1624 1703
   #endif
1625 1704
 
1626
-  #define L6470_CHITCHAT     // enable display of additional status info
1627
-
1628 1705
 #endif // L6470
1629 1706
 
1630 1707
 /**

+ 221
- 144
Marlin/src/config/examples/3DFabXYZ/Migbot/Configuration_adv.h View File

@@ -1237,57 +1237,83 @@
1237 1237
  */
1238 1238
 #if HAS_DRIVER(TMC26X)
1239 1239
 
1240
-  #define X_MAX_CURRENT     1000 // in mA
1241
-  #define X_SENSE_RESISTOR    91 // in mOhms
1242
-  #define X_MICROSTEPS        16 // number of microsteps
1240
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1241
+    #define X_MAX_CURRENT     1000  // (mA)
1242
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1243
+    #define X_MICROSTEPS        16  // Number of microsteps
1244
+  #endif
1243 1245
 
1244
-  #define X2_MAX_CURRENT    1000
1245
-  #define X2_SENSE_RESISTOR   91
1246
-  #define X2_MICROSTEPS       16
1246
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1247
+    #define X2_MAX_CURRENT    1000
1248
+    #define X2_SENSE_RESISTOR   91
1249
+    #define X2_MICROSTEPS       16
1250
+  #endif
1247 1251
 
1248
-  #define Y_MAX_CURRENT     1000
1249
-  #define Y_SENSE_RESISTOR    91
1250
-  #define Y_MICROSTEPS        16
1252
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1253
+    #define Y_MAX_CURRENT     1000
1254
+    #define Y_SENSE_RESISTOR    91
1255
+    #define Y_MICROSTEPS        16
1256
+  #endif
1251 1257
 
1252
-  #define Y2_MAX_CURRENT    1000
1253
-  #define Y2_SENSE_RESISTOR   91
1254
-  #define Y2_MICROSTEPS       16
1258
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1259
+    #define Y2_MAX_CURRENT    1000
1260
+    #define Y2_SENSE_RESISTOR   91
1261
+    #define Y2_MICROSTEPS       16
1262
+  #endif
1255 1263
 
1256
-  #define Z_MAX_CURRENT     1000
1257
-  #define Z_SENSE_RESISTOR    91
1258
-  #define Z_MICROSTEPS        16
1264
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1265
+    #define Z_MAX_CURRENT     1000
1266
+    #define Z_SENSE_RESISTOR    91
1267
+    #define Z_MICROSTEPS        16
1268
+  #endif
1259 1269
 
1260
-  #define Z2_MAX_CURRENT    1000
1261
-  #define Z2_SENSE_RESISTOR   91
1262
-  #define Z2_MICROSTEPS       16
1270
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1271
+    #define Z2_MAX_CURRENT    1000
1272
+    #define Z2_SENSE_RESISTOR   91
1273
+    #define Z2_MICROSTEPS       16
1274
+  #endif
1263 1275
 
1264
-  #define Z3_MAX_CURRENT    1000
1265
-  #define Z3_SENSE_RESISTOR   91
1266
-  #define Z3_MICROSTEPS       16
1276
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1277
+    #define Z3_MAX_CURRENT    1000
1278
+    #define Z3_SENSE_RESISTOR   91
1279
+    #define Z3_MICROSTEPS       16
1280
+  #endif
1267 1281
 
1268
-  #define E0_MAX_CURRENT    1000
1269
-  #define E0_SENSE_RESISTOR   91
1270
-  #define E0_MICROSTEPS       16
1282
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1283
+    #define E0_MAX_CURRENT    1000
1284
+    #define E0_SENSE_RESISTOR   91
1285
+    #define E0_MICROSTEPS       16
1286
+  #endif
1271 1287
 
1272
-  #define E1_MAX_CURRENT    1000
1273
-  #define E1_SENSE_RESISTOR   91
1274
-  #define E1_MICROSTEPS       16
1288
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1289
+    #define E1_MAX_CURRENT    1000
1290
+    #define E1_SENSE_RESISTOR   91
1291
+    #define E1_MICROSTEPS       16
1292
+  #endif
1275 1293
 
1276
-  #define E2_MAX_CURRENT    1000
1277
-  #define E2_SENSE_RESISTOR   91
1278
-  #define E2_MICROSTEPS       16
1294
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1295
+    #define E2_MAX_CURRENT    1000
1296
+    #define E2_SENSE_RESISTOR   91
1297
+    #define E2_MICROSTEPS       16
1298
+  #endif
1279 1299
 
1280
-  #define E3_MAX_CURRENT    1000
1281
-  #define E3_SENSE_RESISTOR   91
1282
-  #define E3_MICROSTEPS       16
1300
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1301
+    #define E3_MAX_CURRENT    1000
1302
+    #define E3_SENSE_RESISTOR   91
1303
+    #define E3_MICROSTEPS       16
1304
+  #endif
1283 1305
 
1284
-  #define E4_MAX_CURRENT    1000
1285
-  #define E4_SENSE_RESISTOR   91
1286
-  #define E4_MICROSTEPS       16
1306
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1307
+    #define E4_MAX_CURRENT    1000
1308
+    #define E4_SENSE_RESISTOR   91
1309
+    #define E4_MICROSTEPS       16
1310
+  #endif
1287 1311
 
1288
-  #define E5_MAX_CURRENT    1000
1289
-  #define E5_SENSE_RESISTOR   91
1290
-  #define E5_MICROSTEPS       16
1312
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1313
+    #define E5_MAX_CURRENT    1000
1314
+    #define E5_SENSE_RESISTOR   91
1315
+    #define E5_MICROSTEPS       16
1316
+  #endif
1291 1317
 
1292 1318
 #endif // TMC26X
1293 1319
 
@@ -1314,44 +1340,70 @@
1314 1340
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1315 1341
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1316 1342
 
1317
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1318
-  #define X_MICROSTEPS        16  // 0..256
1343
+  #if AXIS_IS_TMC(X)
1344
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1345
+    #define X_MICROSTEPS   16  // 0..256
1346
+  #endif
1319 1347
 
1320
-  #define Y_CURRENT          800
1321
-  #define Y_MICROSTEPS        16
1348
+  #if AXIS_IS_TMC(X2)
1349
+    #define X2_CURRENT    800
1350
+    #define X2_MICROSTEPS  16
1351
+  #endif
1322 1352
 
1323
-  #define Z_CURRENT          800
1324
-  #define Z_MICROSTEPS        16
1353
+  #if AXIS_IS_TMC(Y)
1354
+    #define Y_CURRENT     800
1355
+    #define Y_MICROSTEPS   16
1356
+  #endif
1325 1357
 
1326
-  #define X2_CURRENT         800
1327
-  #define X2_MICROSTEPS       16
1358
+  #if AXIS_IS_TMC(Y2)
1359
+    #define Y2_CURRENT    800
1360
+    #define Y2_MICROSTEPS  16
1361
+  #endif
1328 1362
 
1329
-  #define Y2_CURRENT         800
1330
-  #define Y2_MICROSTEPS       16
1363
+  #if AXIS_IS_TMC(Z)
1364
+    #define Z_CURRENT     800
1365
+    #define Z_MICROSTEPS   16
1366
+  #endif
1331 1367
 
1332
-  #define Z2_CURRENT         800
1333
-  #define Z2_MICROSTEPS       16
1368
+  #if AXIS_IS_TMC(Z2)
1369
+    #define Z2_CURRENT    800
1370
+    #define Z2_MICROSTEPS  16
1371
+  #endif
1334 1372
 
1335
-  #define Z3_CURRENT         800
1336
-  #define Z3_MICROSTEPS       16
1373
+  #if AXIS_IS_TMC(Z3)
1374
+    #define Z3_CURRENT    800
1375
+    #define Z3_MICROSTEPS  16
1376
+  #endif
1337 1377
 
1338
-  #define E0_CURRENT         800
1339
-  #define E0_MICROSTEPS       16
1378
+  #if AXIS_IS_TMC(E0)
1379
+    #define E0_CURRENT    800
1380
+    #define E0_MICROSTEPS  16
1381
+  #endif
1340 1382
 
1341
-  #define E1_CURRENT         800
1342
-  #define E1_MICROSTEPS       16
1383
+  #if AXIS_IS_TMC(E1)
1384
+    #define E1_CURRENT    800
1385
+    #define E1_MICROSTEPS  16
1386
+  #endif
1343 1387
 
1344
-  #define E2_CURRENT         800
1345
-  #define E2_MICROSTEPS       16
1388
+  #if AXIS_IS_TMC(E2)
1389
+    #define E2_CURRENT    800
1390
+    #define E2_MICROSTEPS  16
1391
+  #endif
1346 1392
 
1347
-  #define E3_CURRENT         800
1348
-  #define E3_MICROSTEPS       16
1393
+  #if AXIS_IS_TMC(E3)
1394
+    #define E3_CURRENT    800
1395
+    #define E3_MICROSTEPS  16
1396
+  #endif
1349 1397
 
1350
-  #define E4_CURRENT         800
1351
-  #define E4_MICROSTEPS       16
1398
+  #if AXIS_IS_TMC(E4)
1399
+    #define E4_CURRENT    800
1400
+    #define E4_MICROSTEPS  16
1401
+  #endif
1352 1402
 
1353
-  #define E5_CURRENT         800
1354
-  #define E5_MICROSTEPS       16
1403
+  #if AXIS_IS_TMC(E5)
1404
+    #define E5_CURRENT    800
1405
+    #define E5_MICROSTEPS  16
1406
+  #endif
1355 1407
 
1356 1408
   /**
1357 1409
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1521,84 +1573,111 @@
1521 1573
  */
1522 1574
 #if HAS_DRIVER(L6470)
1523 1575
 
1524
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1525
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1526
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1527
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1528
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1529
-
1530
-  #define X2_MICROSTEPS      128
1531
-  #define X2_OVERCURRENT    2000
1532
-  #define X2_STALLCURRENT   1500
1533
-  #define X2_MAX_VOLTAGE     127
1534
-  #define X2_CHAIN_POS         0
1535
-
1536
-  #define Y_MICROSTEPS       128
1537
-  #define Y_OVERCURRENT     2000
1538
-  #define Y_STALLCURRENT    1500
1539
-  #define Y_MAX_VOLTAGE      127
1540
-  #define Y_CHAIN_POS          0
1541
-
1542
-  #define Y2_MICROSTEPS      128
1543
-  #define Y2_OVERCURRENT    2000
1544
-  #define Y2_STALLCURRENT   1500
1545
-  #define Y2_MAX_VOLTAGE     127
1546
-  #define Y2_CHAIN_POS         0
1547
-
1548
-  #define Z_MICROSTEPS       128
1549
-  #define Z_OVERCURRENT     2000
1550
-  #define Z_STALLCURRENT    1500
1551
-  #define Z_MAX_VOLTAGE      127
1552
-  #define Z_CHAIN_POS          0
1553
-
1554
-  #define Z2_MICROSTEPS      128
1555
-  #define Z2_OVERCURRENT    2000
1556
-  #define Z2_STALLCURRENT   1500
1557
-  #define Z2_MAX_VOLTAGE     127
1558
-  #define Z2_CHAIN_POS         0
1559
-
1560
-  #define Z3_MICROSTEPS      128
1561
-  #define Z3_OVERCURRENT    2000
1562
-  #define Z3_STALLCURRENT   1500
1563
-  #define Z3_MAX_VOLTAGE     127
1564
-  #define Z3_CHAIN_POS         0
1565
-
1566
-  #define E0_MICROSTEPS      128
1567
-  #define E0_OVERCURRENT    2000
1568
-  #define E0_STALLCURRENT   1500
1569
-  #define E0_MAX_VOLTAGE     127
1570
-  #define E0_CHAIN_POS         0
1571
-
1572
-  #define E1_MICROSTEPS      128
1573
-  #define E1_OVERCURRENT    2000
1574
-  #define E1_STALLCURRENT   1500
1575
-  #define E1_MAX_VOLTAGE     127
1576
-  #define E1_CHAIN_POS         0
1577
-
1578
-  #define E2_MICROSTEPS      128
1579
-  #define E2_OVERCURRENT    2000
1580
-  #define E2_STALLCURRENT   1500
1581
-  #define E2_MAX_VOLTAGE     127
1582
-  #define E2_CHAIN_POS         0
1583
-
1584
-  #define E3_MICROSTEPS      128
1585
-  #define E3_OVERCURRENT    2000
1586
-  #define E3_STALLCURRENT   1500
1587
-  #define E3_MAX_VOLTAGE     127
1588
-  #define E3_CHAIN_POS         0
1589
-
1590
-  #define E4_MICROSTEPS      128
1591
-  #define E4_OVERCURRENT    2000
1592
-  #define E4_STALLCURRENT   1500
1593
-  #define E4_MAX_VOLTAGE     127
1594
-  #define E4_CHAIN_POS         0
1595
-
1596
-  #define E5_MICROSTEPS      128
1597
-  #define E5_OVERCURRENT    2000
1598
-  #define E5_STALLCURRENT   1500
1599
-  #define E5_MAX_VOLTAGE     127
1600
-  #define E5_CHAIN_POS         0
1576
+  //#define L6470_CHITCHAT        // Display additional status info
1601 1577
 
1578
+  #if AXIS_DRIVER_TYPE_X(L6470)
1579
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1580
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1581
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1582
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1583
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1584
+  #endif
1585
+
1586
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1587
+    #define X2_MICROSTEPS      128
1588
+    #define X2_OVERCURRENT    2000
1589
+    #define X2_STALLCURRENT   1500
1590
+    #define X2_MAX_VOLTAGE     127
1591
+    #define X2_CHAIN_POS         0
1592
+  #endif
1593
+
1594
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1595
+    #define Y_MICROSTEPS       128
1596
+    #define Y_OVERCURRENT     2000
1597
+    #define Y_STALLCURRENT    1500
1598
+    #define Y_MAX_VOLTAGE      127
1599
+    #define Y_CHAIN_POS          0
1600
+  #endif
1601
+
1602
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1603
+    #define Y2_MICROSTEPS      128
1604
+    #define Y2_OVERCURRENT    2000
1605
+    #define Y2_STALLCURRENT   1500
1606
+    #define Y2_MAX_VOLTAGE     127
1607
+    #define Y2_CHAIN_POS         0
1608
+  #endif
1609
+
1610
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1611
+    #define Z_MICROSTEPS       128
1612
+    #define Z_OVERCURRENT     2000
1613
+    #define Z_STALLCURRENT    1500
1614
+    #define Z_MAX_VOLTAGE      127
1615
+    #define Z_CHAIN_POS          0
1616
+  #endif
1617
+
1618
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1619
+    #define Z2_MICROSTEPS      128
1620
+    #define Z2_OVERCURRENT    2000
1621
+    #define Z2_STALLCURRENT   1500
1622
+    #define Z2_MAX_VOLTAGE     127
1623
+    #define Z2_CHAIN_POS         0
1624
+  #endif
1625
+
1626
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1627
+    #define Z3_MICROSTEPS      128
1628
+    #define Z3_OVERCURRENT    2000
1629
+    #define Z3_STALLCURRENT   1500
1630
+    #define Z3_MAX_VOLTAGE     127
1631
+    #define Z3_CHAIN_POS         0
1632
+  #endif
1633
+
1634
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1635
+    #define E0_MICROSTEPS      128
1636
+    #define E0_OVERCURRENT    2000
1637
+    #define E0_STALLCURRENT   1500
1638
+    #define E0_MAX_VOLTAGE     127
1639
+    #define E0_CHAIN_POS         0
1640
+  #endif
1641
+
1642
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1643
+    #define E1_MICROSTEPS      128
1644
+    #define E1_OVERCURRENT    2000
1645
+    #define E1_STALLCURRENT   1500
1646
+    #define E1_MAX_VOLTAGE     127
1647
+    #define E1_CHAIN_POS         0
1648
+  #endif
1649
+
1650
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1651
+    #define E2_MICROSTEPS      128
1652
+    #define E2_OVERCURRENT    2000
1653
+    #define E2_STALLCURRENT   1500
1654
+    #define E2_MAX_VOLTAGE     127
1655
+    #define E2_CHAIN_POS         0
1656
+  #endif
1657
+
1658
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1659
+    #define E3_MICROSTEPS      128
1660
+    #define E3_OVERCURRENT    2000
1661
+    #define E3_STALLCURRENT   1500
1662
+    #define E3_MAX_VOLTAGE     127
1663
+    #define E3_CHAIN_POS         0
1664
+  #endif
1665
+
1666
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1667
+    #define E4_MICROSTEPS      128
1668
+    #define E4_OVERCURRENT    2000
1669
+    #define E4_STALLCURRENT   1500
1670
+    #define E4_MAX_VOLTAGE     127
1671
+    #define E4_CHAIN_POS         0
1672
+  #endif
1673
+
1674
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1675
+    #define E5_MICROSTEPS      128
1676
+    #define E5_OVERCURRENT    2000
1677
+    #define E5_STALLCURRENT   1500
1678
+    #define E5_MAX_VOLTAGE     127
1679
+    #define E5_CHAIN_POS         0
1680
+  #endif
1602 1681
 
1603 1682
   /**
1604 1683
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1623,8 +1702,6 @@
1623 1702
     //#define L6470_STOP_ON_ERROR
1624 1703
   #endif
1625 1704
 
1626
-  #define L6470_CHITCHAT     // enable display of additional status info
1627
-
1628 1705
 #endif // L6470
1629 1706
 
1630 1707
 /**

+ 221
- 144
Marlin/src/config/examples/AlephObjects/TAZ4/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/Anet/A2/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/Anet/A2plus/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/Anet/A6/Configuration_adv.h View File

@@ -1235,57 +1235,83 @@
1235 1235
  */
1236 1236
 #if HAS_DRIVER(TMC26X)
1237 1237
 
1238
-  #define X_MAX_CURRENT     1000 // in mA
1239
-  #define X_SENSE_RESISTOR    91 // in mOhms
1240
-  #define X_MICROSTEPS        16 // number of microsteps
1238
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1239
+    #define X_MAX_CURRENT     1000  // (mA)
1240
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1241
+    #define X_MICROSTEPS        16  // Number of microsteps
1242
+  #endif
1241 1243
 
1242
-  #define X2_MAX_CURRENT    1000
1243
-  #define X2_SENSE_RESISTOR   91
1244
-  #define X2_MICROSTEPS       16
1244
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1245
+    #define X2_MAX_CURRENT    1000
1246
+    #define X2_SENSE_RESISTOR   91
1247
+    #define X2_MICROSTEPS       16
1248
+  #endif
1245 1249
 
1246
-  #define Y_MAX_CURRENT     1000
1247
-  #define Y_SENSE_RESISTOR    91
1248
-  #define Y_MICROSTEPS        16
1250
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1251
+    #define Y_MAX_CURRENT     1000
1252
+    #define Y_SENSE_RESISTOR    91
1253
+    #define Y_MICROSTEPS        16
1254
+  #endif
1249 1255
 
1250
-  #define Y2_MAX_CURRENT    1000
1251
-  #define Y2_SENSE_RESISTOR   91
1252
-  #define Y2_MICROSTEPS       16
1256
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1257
+    #define Y2_MAX_CURRENT    1000
1258
+    #define Y2_SENSE_RESISTOR   91
1259
+    #define Y2_MICROSTEPS       16
1260
+  #endif
1253 1261
 
1254
-  #define Z_MAX_CURRENT     1000
1255
-  #define Z_SENSE_RESISTOR    91
1256
-  #define Z_MICROSTEPS        16
1262
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1263
+    #define Z_MAX_CURRENT     1000
1264
+    #define Z_SENSE_RESISTOR    91
1265
+    #define Z_MICROSTEPS        16
1266
+  #endif
1257 1267
 
1258
-  #define Z2_MAX_CURRENT    1000
1259
-  #define Z2_SENSE_RESISTOR   91
1260
-  #define Z2_MICROSTEPS       16
1268
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1269
+    #define Z2_MAX_CURRENT    1000
1270
+    #define Z2_SENSE_RESISTOR   91
1271
+    #define Z2_MICROSTEPS       16
1272
+  #endif
1261 1273
 
1262
-  #define Z3_MAX_CURRENT    1000
1263
-  #define Z3_SENSE_RESISTOR   91
1264
-  #define Z3_MICROSTEPS       16
1274
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1275
+    #define Z3_MAX_CURRENT    1000
1276
+    #define Z3_SENSE_RESISTOR   91
1277
+    #define Z3_MICROSTEPS       16
1278
+  #endif
1265 1279
 
1266
-  #define E0_MAX_CURRENT    1000
1267
-  #define E0_SENSE_RESISTOR   91
1268
-  #define E0_MICROSTEPS       16
1280
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1281
+    #define E0_MAX_CURRENT    1000
1282
+    #define E0_SENSE_RESISTOR   91
1283
+    #define E0_MICROSTEPS       16
1284
+  #endif
1269 1285
 
1270
-  #define E1_MAX_CURRENT    1000
1271
-  #define E1_SENSE_RESISTOR   91
1272
-  #define E1_MICROSTEPS       16
1286
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1287
+    #define E1_MAX_CURRENT    1000
1288
+    #define E1_SENSE_RESISTOR   91
1289
+    #define E1_MICROSTEPS       16
1290
+  #endif
1273 1291
 
1274
-  #define E2_MAX_CURRENT    1000
1275
-  #define E2_SENSE_RESISTOR   91
1276
-  #define E2_MICROSTEPS       16
1292
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1293
+    #define E2_MAX_CURRENT    1000
1294
+    #define E2_SENSE_RESISTOR   91
1295
+    #define E2_MICROSTEPS       16
1296
+  #endif
1277 1297
 
1278
-  #define E3_MAX_CURRENT    1000
1279
-  #define E3_SENSE_RESISTOR   91
1280
-  #define E3_MICROSTEPS       16
1298
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1299
+    #define E3_MAX_CURRENT    1000
1300
+    #define E3_SENSE_RESISTOR   91
1301
+    #define E3_MICROSTEPS       16
1302
+  #endif
1281 1303
 
1282
-  #define E4_MAX_CURRENT    1000
1283
-  #define E4_SENSE_RESISTOR   91
1284
-  #define E4_MICROSTEPS       16
1304
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1305
+    #define E4_MAX_CURRENT    1000
1306
+    #define E4_SENSE_RESISTOR   91
1307
+    #define E4_MICROSTEPS       16
1308
+  #endif
1285 1309
 
1286
-  #define E5_MAX_CURRENT    1000
1287
-  #define E5_SENSE_RESISTOR   91
1288
-  #define E5_MICROSTEPS       16
1310
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1311
+    #define E5_MAX_CURRENT    1000
1312
+    #define E5_SENSE_RESISTOR   91
1313
+    #define E5_MICROSTEPS       16
1314
+  #endif
1289 1315
 
1290 1316
 #endif // TMC26X
1291 1317
 
@@ -1312,44 +1338,70 @@
1312 1338
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1313 1339
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1314 1340
 
1315
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1316
-  #define X_MICROSTEPS        16  // 0..256
1341
+  #if AXIS_IS_TMC(X)
1342
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1343
+    #define X_MICROSTEPS   16  // 0..256
1344
+  #endif
1317 1345
 
1318
-  #define Y_CURRENT          800
1319
-  #define Y_MICROSTEPS        16
1346
+  #if AXIS_IS_TMC(X2)
1347
+    #define X2_CURRENT    800
1348
+    #define X2_MICROSTEPS  16
1349
+  #endif
1320 1350
 
1321
-  #define Z_CURRENT          800
1322
-  #define Z_MICROSTEPS        16
1351
+  #if AXIS_IS_TMC(Y)
1352
+    #define Y_CURRENT     800
1353
+    #define Y_MICROSTEPS   16
1354
+  #endif
1323 1355
 
1324
-  #define X2_CURRENT         800
1325
-  #define X2_MICROSTEPS       16
1356
+  #if AXIS_IS_TMC(Y2)
1357
+    #define Y2_CURRENT    800
1358
+    #define Y2_MICROSTEPS  16
1359
+  #endif
1326 1360
 
1327
-  #define Y2_CURRENT         800
1328
-  #define Y2_MICROSTEPS       16
1361
+  #if AXIS_IS_TMC(Z)
1362
+    #define Z_CURRENT     800
1363
+    #define Z_MICROSTEPS   16
1364
+  #endif
1329 1365
 
1330
-  #define Z2_CURRENT         800
1331
-  #define Z2_MICROSTEPS       16
1366
+  #if AXIS_IS_TMC(Z2)
1367
+    #define Z2_CURRENT    800
1368
+    #define Z2_MICROSTEPS  16
1369
+  #endif
1332 1370
 
1333
-  #define Z3_CURRENT         800
1334
-  #define Z3_MICROSTEPS       16
1371
+  #if AXIS_IS_TMC(Z3)
1372
+    #define Z3_CURRENT    800
1373
+    #define Z3_MICROSTEPS  16
1374
+  #endif
1335 1375
 
1336
-  #define E0_CURRENT         800
1337
-  #define E0_MICROSTEPS       16
1376
+  #if AXIS_IS_TMC(E0)
1377
+    #define E0_CURRENT    800
1378
+    #define E0_MICROSTEPS  16
1379
+  #endif
1338 1380
 
1339
-  #define E1_CURRENT         800
1340
-  #define E1_MICROSTEPS       16
1381
+  #if AXIS_IS_TMC(E1)
1382
+    #define E1_CURRENT    800
1383
+    #define E1_MICROSTEPS  16
1384
+  #endif
1341 1385
 
1342
-  #define E2_CURRENT         800
1343
-  #define E2_MICROSTEPS       16
1386
+  #if AXIS_IS_TMC(E2)
1387
+    #define E2_CURRENT    800
1388
+    #define E2_MICROSTEPS  16
1389
+  #endif
1344 1390
 
1345
-  #define E3_CURRENT         800
1346
-  #define E3_MICROSTEPS       16
1391
+  #if AXIS_IS_TMC(E3)
1392
+    #define E3_CURRENT    800
1393
+    #define E3_MICROSTEPS  16
1394
+  #endif
1347 1395
 
1348
-  #define E4_CURRENT         800
1349
-  #define E4_MICROSTEPS       16
1396
+  #if AXIS_IS_TMC(E4)
1397
+    #define E4_CURRENT    800
1398
+    #define E4_MICROSTEPS  16
1399
+  #endif
1350 1400
 
1351
-  #define E5_CURRENT         800
1352
-  #define E5_MICROSTEPS       16
1401
+  #if AXIS_IS_TMC(E5)
1402
+    #define E5_CURRENT    800
1403
+    #define E5_MICROSTEPS  16
1404
+  #endif
1353 1405
 
1354 1406
   /**
1355 1407
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1519,84 +1571,111 @@
1519 1571
  */
1520 1572
 #if HAS_DRIVER(L6470)
1521 1573
 
1522
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1523
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1524
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1525
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1526
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1527
-
1528
-  #define X2_MICROSTEPS      128
1529
-  #define X2_OVERCURRENT    2000
1530
-  #define X2_STALLCURRENT   1500
1531
-  #define X2_MAX_VOLTAGE     127
1532
-  #define X2_CHAIN_POS         0
1533
-
1534
-  #define Y_MICROSTEPS       128
1535
-  #define Y_OVERCURRENT     2000
1536
-  #define Y_STALLCURRENT    1500
1537
-  #define Y_MAX_VOLTAGE      127
1538
-  #define Y_CHAIN_POS          0
1539
-
1540
-  #define Y2_MICROSTEPS      128
1541
-  #define Y2_OVERCURRENT    2000
1542
-  #define Y2_STALLCURRENT   1500
1543
-  #define Y2_MAX_VOLTAGE     127
1544
-  #define Y2_CHAIN_POS         0
1545
-
1546
-  #define Z_MICROSTEPS       128
1547
-  #define Z_OVERCURRENT     2000
1548
-  #define Z_STALLCURRENT    1500
1549
-  #define Z_MAX_VOLTAGE      127
1550
-  #define Z_CHAIN_POS          0
1551
-
1552
-  #define Z2_MICROSTEPS      128
1553
-  #define Z2_OVERCURRENT    2000
1554
-  #define Z2_STALLCURRENT   1500
1555
-  #define Z2_MAX_VOLTAGE     127
1556
-  #define Z2_CHAIN_POS         0
1557
-
1558
-  #define Z3_MICROSTEPS      128
1559
-  #define Z3_OVERCURRENT    2000
1560
-  #define Z3_STALLCURRENT   1500
1561
-  #define Z3_MAX_VOLTAGE     127
1562
-  #define Z3_CHAIN_POS         0
1563
-
1564
-  #define E0_MICROSTEPS      128
1565
-  #define E0_OVERCURRENT    2000
1566
-  #define E0_STALLCURRENT   1500
1567
-  #define E0_MAX_VOLTAGE     127
1568
-  #define E0_CHAIN_POS         0
1569
-
1570
-  #define E1_MICROSTEPS      128
1571
-  #define E1_OVERCURRENT    2000
1572
-  #define E1_STALLCURRENT   1500
1573
-  #define E1_MAX_VOLTAGE     127
1574
-  #define E1_CHAIN_POS         0
1575
-
1576
-  #define E2_MICROSTEPS      128
1577
-  #define E2_OVERCURRENT    2000
1578
-  #define E2_STALLCURRENT   1500
1579
-  #define E2_MAX_VOLTAGE     127
1580
-  #define E2_CHAIN_POS         0
1581
-
1582
-  #define E3_MICROSTEPS      128
1583
-  #define E3_OVERCURRENT    2000
1584
-  #define E3_STALLCURRENT   1500
1585
-  #define E3_MAX_VOLTAGE     127
1586
-  #define E3_CHAIN_POS         0
1587
-
1588
-  #define E4_MICROSTEPS      128
1589
-  #define E4_OVERCURRENT    2000
1590
-  #define E4_STALLCURRENT   1500
1591
-  #define E4_MAX_VOLTAGE     127
1592
-  #define E4_CHAIN_POS         0
1593
-
1594
-  #define E5_MICROSTEPS      128
1595
-  #define E5_OVERCURRENT    2000
1596
-  #define E5_STALLCURRENT   1500
1597
-  #define E5_MAX_VOLTAGE     127
1598
-  #define E5_CHAIN_POS         0
1574
+  //#define L6470_CHITCHAT        // Display additional status info
1599 1575
 
1576
+  #if AXIS_DRIVER_TYPE_X(L6470)
1577
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1578
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1579
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1580
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1581
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1582
+  #endif
1583
+
1584
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1585
+    #define X2_MICROSTEPS      128
1586
+    #define X2_OVERCURRENT    2000
1587
+    #define X2_STALLCURRENT   1500
1588
+    #define X2_MAX_VOLTAGE     127
1589
+    #define X2_CHAIN_POS         0
1590
+  #endif
1591
+
1592
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1593
+    #define Y_MICROSTEPS       128
1594
+    #define Y_OVERCURRENT     2000
1595
+    #define Y_STALLCURRENT    1500
1596
+    #define Y_MAX_VOLTAGE      127
1597
+    #define Y_CHAIN_POS          0
1598
+  #endif
1599
+
1600
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1601
+    #define Y2_MICROSTEPS      128
1602
+    #define Y2_OVERCURRENT    2000
1603
+    #define Y2_STALLCURRENT   1500
1604
+    #define Y2_MAX_VOLTAGE     127
1605
+    #define Y2_CHAIN_POS         0
1606
+  #endif
1607
+
1608
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1609
+    #define Z_MICROSTEPS       128
1610
+    #define Z_OVERCURRENT     2000
1611
+    #define Z_STALLCURRENT    1500
1612
+    #define Z_MAX_VOLTAGE      127
1613
+    #define Z_CHAIN_POS          0
1614
+  #endif
1615
+
1616
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1617
+    #define Z2_MICROSTEPS      128
1618
+    #define Z2_OVERCURRENT    2000
1619
+    #define Z2_STALLCURRENT   1500
1620
+    #define Z2_MAX_VOLTAGE     127
1621
+    #define Z2_CHAIN_POS         0
1622
+  #endif
1623
+
1624
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1625
+    #define Z3_MICROSTEPS      128
1626
+    #define Z3_OVERCURRENT    2000
1627
+    #define Z3_STALLCURRENT   1500
1628
+    #define Z3_MAX_VOLTAGE     127
1629
+    #define Z3_CHAIN_POS         0
1630
+  #endif
1631
+
1632
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1633
+    #define E0_MICROSTEPS      128
1634
+    #define E0_OVERCURRENT    2000
1635
+    #define E0_STALLCURRENT   1500
1636
+    #define E0_MAX_VOLTAGE     127
1637
+    #define E0_CHAIN_POS         0
1638
+  #endif
1639
+
1640
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1641
+    #define E1_MICROSTEPS      128
1642
+    #define E1_OVERCURRENT    2000
1643
+    #define E1_STALLCURRENT   1500
1644
+    #define E1_MAX_VOLTAGE     127
1645
+    #define E1_CHAIN_POS         0
1646
+  #endif
1647
+
1648
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1649
+    #define E2_MICROSTEPS      128
1650
+    #define E2_OVERCURRENT    2000
1651
+    #define E2_STALLCURRENT   1500
1652
+    #define E2_MAX_VOLTAGE     127
1653
+    #define E2_CHAIN_POS         0
1654
+  #endif
1655
+
1656
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1657
+    #define E3_MICROSTEPS      128
1658
+    #define E3_OVERCURRENT    2000
1659
+    #define E3_STALLCURRENT   1500
1660
+    #define E3_MAX_VOLTAGE     127
1661
+    #define E3_CHAIN_POS         0
1662
+  #endif
1663
+
1664
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1665
+    #define E4_MICROSTEPS      128
1666
+    #define E4_OVERCURRENT    2000
1667
+    #define E4_STALLCURRENT   1500
1668
+    #define E4_MAX_VOLTAGE     127
1669
+    #define E4_CHAIN_POS         0
1670
+  #endif
1671
+
1672
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1673
+    #define E5_MICROSTEPS      128
1674
+    #define E5_OVERCURRENT    2000
1675
+    #define E5_STALLCURRENT   1500
1676
+    #define E5_MAX_VOLTAGE     127
1677
+    #define E5_CHAIN_POS         0
1678
+  #endif
1600 1679
 
1601 1680
   /**
1602 1681
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1621,8 +1700,6 @@
1621 1700
     //#define L6470_STOP_ON_ERROR
1622 1701
   #endif
1623 1702
 
1624
-  #define L6470_CHITCHAT     // enable display of additional status info
1625
-
1626 1703
 #endif // L6470
1627 1704
 
1628 1705
 /**

+ 221
- 144
Marlin/src/config/examples/Anet/A8/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/ArmEd/Configuration_adv.h View File

@@ -1241,57 +1241,83 @@
1241 1241
  */
1242 1242
 #if HAS_DRIVER(TMC26X)
1243 1243
 
1244
-  #define X_MAX_CURRENT     1000 // in mA
1245
-  #define X_SENSE_RESISTOR    91 // in mOhms
1246
-  #define X_MICROSTEPS        16 // number of microsteps
1244
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1245
+    #define X_MAX_CURRENT     1000  // (mA)
1246
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1247
+    #define X_MICROSTEPS        16  // Number of microsteps
1248
+  #endif
1247 1249
 
1248
-  #define X2_MAX_CURRENT    1000
1249
-  #define X2_SENSE_RESISTOR   91
1250
-  #define X2_MICROSTEPS       16
1250
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1251
+    #define X2_MAX_CURRENT    1000
1252
+    #define X2_SENSE_RESISTOR   91
1253
+    #define X2_MICROSTEPS       16
1254
+  #endif
1251 1255
 
1252
-  #define Y_MAX_CURRENT     1000
1253
-  #define Y_SENSE_RESISTOR    91
1254
-  #define Y_MICROSTEPS        16
1256
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1257
+    #define Y_MAX_CURRENT     1000
1258
+    #define Y_SENSE_RESISTOR    91
1259
+    #define Y_MICROSTEPS        16
1260
+  #endif
1255 1261
 
1256
-  #define Y2_MAX_CURRENT    1000
1257
-  #define Y2_SENSE_RESISTOR   91
1258
-  #define Y2_MICROSTEPS       16
1262
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1263
+    #define Y2_MAX_CURRENT    1000
1264
+    #define Y2_SENSE_RESISTOR   91
1265
+    #define Y2_MICROSTEPS       16
1266
+  #endif
1259 1267
 
1260
-  #define Z_MAX_CURRENT     1000
1261
-  #define Z_SENSE_RESISTOR    91
1262
-  #define Z_MICROSTEPS        16
1268
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1269
+    #define Z_MAX_CURRENT     1000
1270
+    #define Z_SENSE_RESISTOR    91
1271
+    #define Z_MICROSTEPS        16
1272
+  #endif
1263 1273
 
1264
-  #define Z2_MAX_CURRENT    1000
1265
-  #define Z2_SENSE_RESISTOR   91
1266
-  #define Z2_MICROSTEPS       16
1274
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1275
+    #define Z2_MAX_CURRENT    1000
1276
+    #define Z2_SENSE_RESISTOR   91
1277
+    #define Z2_MICROSTEPS       16
1278
+  #endif
1267 1279
 
1268
-  #define Z3_MAX_CURRENT    1000
1269
-  #define Z3_SENSE_RESISTOR   91
1270
-  #define Z3_MICROSTEPS       16
1280
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1281
+    #define Z3_MAX_CURRENT    1000
1282
+    #define Z3_SENSE_RESISTOR   91
1283
+    #define Z3_MICROSTEPS       16
1284
+  #endif
1271 1285
 
1272
-  #define E0_MAX_CURRENT    1000
1273
-  #define E0_SENSE_RESISTOR   91
1274
-  #define E0_MICROSTEPS       16
1286
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1287
+    #define E0_MAX_CURRENT    1000
1288
+    #define E0_SENSE_RESISTOR   91
1289
+    #define E0_MICROSTEPS       16
1290
+  #endif
1275 1291
 
1276
-  #define E1_MAX_CURRENT    1000
1277
-  #define E1_SENSE_RESISTOR   91
1278
-  #define E1_MICROSTEPS       16
1292
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1293
+    #define E1_MAX_CURRENT    1000
1294
+    #define E1_SENSE_RESISTOR   91
1295
+    #define E1_MICROSTEPS       16
1296
+  #endif
1279 1297
 
1280
-  #define E2_MAX_CURRENT    1000
1281
-  #define E2_SENSE_RESISTOR   91
1282
-  #define E2_MICROSTEPS       16
1298
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1299
+    #define E2_MAX_CURRENT    1000
1300
+    #define E2_SENSE_RESISTOR   91
1301
+    #define E2_MICROSTEPS       16
1302
+  #endif
1283 1303
 
1284
-  #define E3_MAX_CURRENT    1000
1285
-  #define E3_SENSE_RESISTOR   91
1286
-  #define E3_MICROSTEPS       16
1304
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1305
+    #define E3_MAX_CURRENT    1000
1306
+    #define E3_SENSE_RESISTOR   91
1307
+    #define E3_MICROSTEPS       16
1308
+  #endif
1287 1309
 
1288
-  #define E4_MAX_CURRENT    1000
1289
-  #define E4_SENSE_RESISTOR   91
1290
-  #define E4_MICROSTEPS       16
1310
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1311
+    #define E4_MAX_CURRENT    1000
1312
+    #define E4_SENSE_RESISTOR   91
1313
+    #define E4_MICROSTEPS       16
1314
+  #endif
1291 1315
 
1292
-  #define E5_MAX_CURRENT    1000
1293
-  #define E5_SENSE_RESISTOR   91
1294
-  #define E5_MICROSTEPS       16
1316
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1317
+    #define E5_MAX_CURRENT    1000
1318
+    #define E5_SENSE_RESISTOR   91
1319
+    #define E5_MICROSTEPS       16
1320
+  #endif
1295 1321
 
1296 1322
 #endif // TMC26X
1297 1323
 
@@ -1318,44 +1344,70 @@
1318 1344
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1319 1345
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1320 1346
 
1321
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1322
-  #define X_MICROSTEPS        16  // 0..256
1347
+  #if AXIS_IS_TMC(X)
1348
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1349
+    #define X_MICROSTEPS   16  // 0..256
1350
+  #endif
1323 1351
 
1324
-  #define Y_CURRENT          800
1325
-  #define Y_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(X2)
1353
+    #define X2_CURRENT    800
1354
+    #define X2_MICROSTEPS  16
1355
+  #endif
1326 1356
 
1327
-  #define Z_CURRENT          800
1328
-  #define Z_MICROSTEPS        16
1357
+  #if AXIS_IS_TMC(Y)
1358
+    #define Y_CURRENT     800
1359
+    #define Y_MICROSTEPS   16
1360
+  #endif
1329 1361
 
1330
-  #define X2_CURRENT         800
1331
-  #define X2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Y2)
1363
+    #define Y2_CURRENT    800
1364
+    #define Y2_MICROSTEPS  16
1365
+  #endif
1332 1366
 
1333
-  #define Y2_CURRENT         800
1334
-  #define Y2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z)
1368
+    #define Z_CURRENT     800
1369
+    #define Z_MICROSTEPS   16
1370
+  #endif
1335 1371
 
1336
-  #define Z2_CURRENT         800
1337
-  #define Z2_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z2)
1373
+    #define Z2_CURRENT    800
1374
+    #define Z2_MICROSTEPS  16
1375
+  #endif
1338 1376
 
1339
-  #define Z3_CURRENT         800
1340
-  #define Z3_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(Z3)
1378
+    #define Z3_CURRENT    800
1379
+    #define Z3_MICROSTEPS  16
1380
+  #endif
1341 1381
 
1342
-  #define E0_CURRENT         800
1343
-  #define E0_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E0)
1383
+    #define E0_CURRENT    800
1384
+    #define E0_MICROSTEPS  16
1385
+  #endif
1344 1386
 
1345
-  #define E1_CURRENT         800
1346
-  #define E1_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E1)
1388
+    #define E1_CURRENT    800
1389
+    #define E1_MICROSTEPS  16
1390
+  #endif
1347 1391
 
1348
-  #define E2_CURRENT         800
1349
-  #define E2_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E2)
1393
+    #define E2_CURRENT    800
1394
+    #define E2_MICROSTEPS  16
1395
+  #endif
1350 1396
 
1351
-  #define E3_CURRENT         800
1352
-  #define E3_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E3)
1398
+    #define E3_CURRENT    800
1399
+    #define E3_MICROSTEPS  16
1400
+  #endif
1353 1401
 
1354
-  #define E4_CURRENT         800
1355
-  #define E4_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E4)
1403
+    #define E4_CURRENT    800
1404
+    #define E4_MICROSTEPS  16
1405
+  #endif
1356 1406
 
1357
-  #define E5_CURRENT         800
1358
-  #define E5_MICROSTEPS       16
1407
+  #if AXIS_IS_TMC(E5)
1408
+    #define E5_CURRENT    800
1409
+    #define E5_MICROSTEPS  16
1410
+  #endif
1359 1411
 
1360 1412
   /**
1361 1413
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1525,84 +1577,111 @@
1525 1577
  */
1526 1578
 #if HAS_DRIVER(L6470)
1527 1579
 
1528
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1529
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1530
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1531
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1532
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1533
-
1534
-  #define X2_MICROSTEPS      128
1535
-  #define X2_OVERCURRENT    2000
1536
-  #define X2_STALLCURRENT   1500
1537
-  #define X2_MAX_VOLTAGE     127
1538
-  #define X2_CHAIN_POS         0
1539
-
1540
-  #define Y_MICROSTEPS       128
1541
-  #define Y_OVERCURRENT     2000
1542
-  #define Y_STALLCURRENT    1500
1543
-  #define Y_MAX_VOLTAGE      127
1544
-  #define Y_CHAIN_POS          0
1545
-
1546
-  #define Y2_MICROSTEPS      128
1547
-  #define Y2_OVERCURRENT    2000
1548
-  #define Y2_STALLCURRENT   1500
1549
-  #define Y2_MAX_VOLTAGE     127
1550
-  #define Y2_CHAIN_POS         0
1551
-
1552
-  #define Z_MICROSTEPS       128
1553
-  #define Z_OVERCURRENT     2000
1554
-  #define Z_STALLCURRENT    1500
1555
-  #define Z_MAX_VOLTAGE      127
1556
-  #define Z_CHAIN_POS          0
1557
-
1558
-  #define Z2_MICROSTEPS      128
1559
-  #define Z2_OVERCURRENT    2000
1560
-  #define Z2_STALLCURRENT   1500
1561
-  #define Z2_MAX_VOLTAGE     127
1562
-  #define Z2_CHAIN_POS         0
1563
-
1564
-  #define Z3_MICROSTEPS      128
1565
-  #define Z3_OVERCURRENT    2000
1566
-  #define Z3_STALLCURRENT   1500
1567
-  #define Z3_MAX_VOLTAGE     127
1568
-  #define Z3_CHAIN_POS         0
1569
-
1570
-  #define E0_MICROSTEPS      128
1571
-  #define E0_OVERCURRENT    2000
1572
-  #define E0_STALLCURRENT   1500
1573
-  #define E0_MAX_VOLTAGE     127
1574
-  #define E0_CHAIN_POS         0
1575
-
1576
-  #define E1_MICROSTEPS      128
1577
-  #define E1_OVERCURRENT    2000
1578
-  #define E1_STALLCURRENT   1500
1579
-  #define E1_MAX_VOLTAGE     127
1580
-  #define E1_CHAIN_POS         0
1581
-
1582
-  #define E2_MICROSTEPS      128
1583
-  #define E2_OVERCURRENT    2000
1584
-  #define E2_STALLCURRENT   1500
1585
-  #define E2_MAX_VOLTAGE     127
1586
-  #define E2_CHAIN_POS         0
1587
-
1588
-  #define E3_MICROSTEPS      128
1589
-  #define E3_OVERCURRENT    2000
1590
-  #define E3_STALLCURRENT   1500
1591
-  #define E3_MAX_VOLTAGE     127
1592
-  #define E3_CHAIN_POS         0
1593
-
1594
-  #define E4_MICROSTEPS      128
1595
-  #define E4_OVERCURRENT    2000
1596
-  #define E4_STALLCURRENT   1500
1597
-  #define E4_MAX_VOLTAGE     127
1598
-  #define E4_CHAIN_POS         0
1599
-
1600
-  #define E5_MICROSTEPS      128
1601
-  #define E5_OVERCURRENT    2000
1602
-  #define E5_STALLCURRENT   1500
1603
-  #define E5_MAX_VOLTAGE     127
1604
-  #define E5_CHAIN_POS         0
1580
+  //#define L6470_CHITCHAT        // Display additional status info
1605 1581
 
1582
+  #if AXIS_DRIVER_TYPE_X(L6470)
1583
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1584
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1585
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1586
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1587
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1588
+  #endif
1589
+
1590
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1591
+    #define X2_MICROSTEPS      128
1592
+    #define X2_OVERCURRENT    2000
1593
+    #define X2_STALLCURRENT   1500
1594
+    #define X2_MAX_VOLTAGE     127
1595
+    #define X2_CHAIN_POS         0
1596
+  #endif
1597
+
1598
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1599
+    #define Y_MICROSTEPS       128
1600
+    #define Y_OVERCURRENT     2000
1601
+    #define Y_STALLCURRENT    1500
1602
+    #define Y_MAX_VOLTAGE      127
1603
+    #define Y_CHAIN_POS          0
1604
+  #endif
1605
+
1606
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1607
+    #define Y2_MICROSTEPS      128
1608
+    #define Y2_OVERCURRENT    2000
1609
+    #define Y2_STALLCURRENT   1500
1610
+    #define Y2_MAX_VOLTAGE     127
1611
+    #define Y2_CHAIN_POS         0
1612
+  #endif
1613
+
1614
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1615
+    #define Z_MICROSTEPS       128
1616
+    #define Z_OVERCURRENT     2000
1617
+    #define Z_STALLCURRENT    1500
1618
+    #define Z_MAX_VOLTAGE      127
1619
+    #define Z_CHAIN_POS          0
1620
+  #endif
1621
+
1622
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1623
+    #define Z2_MICROSTEPS      128
1624
+    #define Z2_OVERCURRENT    2000
1625
+    #define Z2_STALLCURRENT   1500
1626
+    #define Z2_MAX_VOLTAGE     127
1627
+    #define Z2_CHAIN_POS         0
1628
+  #endif
1629
+
1630
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1631
+    #define Z3_MICROSTEPS      128
1632
+    #define Z3_OVERCURRENT    2000
1633
+    #define Z3_STALLCURRENT   1500
1634
+    #define Z3_MAX_VOLTAGE     127
1635
+    #define Z3_CHAIN_POS         0
1636
+  #endif
1637
+
1638
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1639
+    #define E0_MICROSTEPS      128
1640
+    #define E0_OVERCURRENT    2000
1641
+    #define E0_STALLCURRENT   1500
1642
+    #define E0_MAX_VOLTAGE     127
1643
+    #define E0_CHAIN_POS         0
1644
+  #endif
1645
+
1646
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1647
+    #define E1_MICROSTEPS      128
1648
+    #define E1_OVERCURRENT    2000
1649
+    #define E1_STALLCURRENT   1500
1650
+    #define E1_MAX_VOLTAGE     127
1651
+    #define E1_CHAIN_POS         0
1652
+  #endif
1653
+
1654
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1655
+    #define E2_MICROSTEPS      128
1656
+    #define E2_OVERCURRENT    2000
1657
+    #define E2_STALLCURRENT   1500
1658
+    #define E2_MAX_VOLTAGE     127
1659
+    #define E2_CHAIN_POS         0
1660
+  #endif
1661
+
1662
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1663
+    #define E3_MICROSTEPS      128
1664
+    #define E3_OVERCURRENT    2000
1665
+    #define E3_STALLCURRENT   1500
1666
+    #define E3_MAX_VOLTAGE     127
1667
+    #define E3_CHAIN_POS         0
1668
+  #endif
1669
+
1670
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1671
+    #define E4_MICROSTEPS      128
1672
+    #define E4_OVERCURRENT    2000
1673
+    #define E4_STALLCURRENT   1500
1674
+    #define E4_MAX_VOLTAGE     127
1675
+    #define E4_CHAIN_POS         0
1676
+  #endif
1677
+
1678
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1679
+    #define E5_MICROSTEPS      128
1680
+    #define E5_OVERCURRENT    2000
1681
+    #define E5_STALLCURRENT   1500
1682
+    #define E5_MAX_VOLTAGE     127
1683
+    #define E5_CHAIN_POS         0
1684
+  #endif
1606 1685
 
1607 1686
   /**
1608 1687
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1627,8 +1706,6 @@
1627 1706
     //#define L6470_STOP_ON_ERROR
1628 1707
   #endif
1629 1708
 
1630
-  #define L6470_CHITCHAT     // enable display of additional status info
1631
-
1632 1709
 #endif // L6470
1633 1710
 
1634 1711
 /**

+ 221
- 144
Marlin/src/config/examples/BIBO/TouchX/cyclops/Configuration_adv.h View File

@@ -1235,57 +1235,83 @@
1235 1235
  */
1236 1236
 #if HAS_DRIVER(TMC26X)
1237 1237
 
1238
-  #define X_MAX_CURRENT     1000 // in mA
1239
-  #define X_SENSE_RESISTOR    91 // in mOhms
1240
-  #define X_MICROSTEPS        16 // number of microsteps
1238
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1239
+    #define X_MAX_CURRENT     1000  // (mA)
1240
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1241
+    #define X_MICROSTEPS        16  // Number of microsteps
1242
+  #endif
1241 1243
 
1242
-  #define X2_MAX_CURRENT    1000
1243
-  #define X2_SENSE_RESISTOR   91
1244
-  #define X2_MICROSTEPS       16
1244
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1245
+    #define X2_MAX_CURRENT    1000
1246
+    #define X2_SENSE_RESISTOR   91
1247
+    #define X2_MICROSTEPS       16
1248
+  #endif
1245 1249
 
1246
-  #define Y_MAX_CURRENT     1000
1247
-  #define Y_SENSE_RESISTOR    91
1248
-  #define Y_MICROSTEPS        16
1250
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1251
+    #define Y_MAX_CURRENT     1000
1252
+    #define Y_SENSE_RESISTOR    91
1253
+    #define Y_MICROSTEPS        16
1254
+  #endif
1249 1255
 
1250
-  #define Y2_MAX_CURRENT    1000
1251
-  #define Y2_SENSE_RESISTOR   91
1252
-  #define Y2_MICROSTEPS       16
1256
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1257
+    #define Y2_MAX_CURRENT    1000
1258
+    #define Y2_SENSE_RESISTOR   91
1259
+    #define Y2_MICROSTEPS       16
1260
+  #endif
1253 1261
 
1254
-  #define Z_MAX_CURRENT     1000
1255
-  #define Z_SENSE_RESISTOR    91
1256
-  #define Z_MICROSTEPS        16
1262
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1263
+    #define Z_MAX_CURRENT     1000
1264
+    #define Z_SENSE_RESISTOR    91
1265
+    #define Z_MICROSTEPS        16
1266
+  #endif
1257 1267
 
1258
-  #define Z2_MAX_CURRENT    1000
1259
-  #define Z2_SENSE_RESISTOR   91
1260
-  #define Z2_MICROSTEPS       16
1268
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1269
+    #define Z2_MAX_CURRENT    1000
1270
+    #define Z2_SENSE_RESISTOR   91
1271
+    #define Z2_MICROSTEPS       16
1272
+  #endif
1261 1273
 
1262
-  #define Z3_MAX_CURRENT    1000
1263
-  #define Z3_SENSE_RESISTOR   91
1264
-  #define Z3_MICROSTEPS       16
1274
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1275
+    #define Z3_MAX_CURRENT    1000
1276
+    #define Z3_SENSE_RESISTOR   91
1277
+    #define Z3_MICROSTEPS       16
1278
+  #endif
1265 1279
 
1266
-  #define E0_MAX_CURRENT    1000
1267
-  #define E0_SENSE_RESISTOR   91
1268
-  #define E0_MICROSTEPS       16
1280
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1281
+    #define E0_MAX_CURRENT    1000
1282
+    #define E0_SENSE_RESISTOR   91
1283
+    #define E0_MICROSTEPS       16
1284
+  #endif
1269 1285
 
1270
-  #define E1_MAX_CURRENT    1000
1271
-  #define E1_SENSE_RESISTOR   91
1272
-  #define E1_MICROSTEPS       16
1286
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1287
+    #define E1_MAX_CURRENT    1000
1288
+    #define E1_SENSE_RESISTOR   91
1289
+    #define E1_MICROSTEPS       16
1290
+  #endif
1273 1291
 
1274
-  #define E2_MAX_CURRENT    1000
1275
-  #define E2_SENSE_RESISTOR   91
1276
-  #define E2_MICROSTEPS       16
1292
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1293
+    #define E2_MAX_CURRENT    1000
1294
+    #define E2_SENSE_RESISTOR   91
1295
+    #define E2_MICROSTEPS       16
1296
+  #endif
1277 1297
 
1278
-  #define E3_MAX_CURRENT    1000
1279
-  #define E3_SENSE_RESISTOR   91
1280
-  #define E3_MICROSTEPS       16
1298
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1299
+    #define E3_MAX_CURRENT    1000
1300
+    #define E3_SENSE_RESISTOR   91
1301
+    #define E3_MICROSTEPS       16
1302
+  #endif
1281 1303
 
1282
-  #define E4_MAX_CURRENT    1000
1283
-  #define E4_SENSE_RESISTOR   91
1284
-  #define E4_MICROSTEPS       16
1304
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1305
+    #define E4_MAX_CURRENT    1000
1306
+    #define E4_SENSE_RESISTOR   91
1307
+    #define E4_MICROSTEPS       16
1308
+  #endif
1285 1309
 
1286
-  #define E5_MAX_CURRENT    1000
1287
-  #define E5_SENSE_RESISTOR   91
1288
-  #define E5_MICROSTEPS       16
1310
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1311
+    #define E5_MAX_CURRENT    1000
1312
+    #define E5_SENSE_RESISTOR   91
1313
+    #define E5_MICROSTEPS       16
1314
+  #endif
1289 1315
 
1290 1316
 #endif // TMC26X
1291 1317
 
@@ -1312,44 +1338,70 @@
1312 1338
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1313 1339
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1314 1340
 
1315
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1316
-  #define X_MICROSTEPS        16  // 0..256
1341
+  #if AXIS_IS_TMC(X)
1342
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1343
+    #define X_MICROSTEPS   16  // 0..256
1344
+  #endif
1317 1345
 
1318
-  #define Y_CURRENT          800
1319
-  #define Y_MICROSTEPS        16
1346
+  #if AXIS_IS_TMC(X2)
1347
+    #define X2_CURRENT    800
1348
+    #define X2_MICROSTEPS  16
1349
+  #endif
1320 1350
 
1321
-  #define Z_CURRENT          800
1322
-  #define Z_MICROSTEPS        16
1351
+  #if AXIS_IS_TMC(Y)
1352
+    #define Y_CURRENT     800
1353
+    #define Y_MICROSTEPS   16
1354
+  #endif
1323 1355
 
1324
-  #define X2_CURRENT         800
1325
-  #define X2_MICROSTEPS       16
1356
+  #if AXIS_IS_TMC(Y2)
1357
+    #define Y2_CURRENT    800
1358
+    #define Y2_MICROSTEPS  16
1359
+  #endif
1326 1360
 
1327
-  #define Y2_CURRENT         800
1328
-  #define Y2_MICROSTEPS       16
1361
+  #if AXIS_IS_TMC(Z)
1362
+    #define Z_CURRENT     800
1363
+    #define Z_MICROSTEPS   16
1364
+  #endif
1329 1365
 
1330
-  #define Z2_CURRENT         800
1331
-  #define Z2_MICROSTEPS       16
1366
+  #if AXIS_IS_TMC(Z2)
1367
+    #define Z2_CURRENT    800
1368
+    #define Z2_MICROSTEPS  16
1369
+  #endif
1332 1370
 
1333
-  #define Z3_CURRENT         800
1334
-  #define Z3_MICROSTEPS       16
1371
+  #if AXIS_IS_TMC(Z3)
1372
+    #define Z3_CURRENT    800
1373
+    #define Z3_MICROSTEPS  16
1374
+  #endif
1335 1375
 
1336
-  #define E0_CURRENT         800
1337
-  #define E0_MICROSTEPS       16
1376
+  #if AXIS_IS_TMC(E0)
1377
+    #define E0_CURRENT    800
1378
+    #define E0_MICROSTEPS  16
1379
+  #endif
1338 1380
 
1339
-  #define E1_CURRENT         800
1340
-  #define E1_MICROSTEPS       16
1381
+  #if AXIS_IS_TMC(E1)
1382
+    #define E1_CURRENT    800
1383
+    #define E1_MICROSTEPS  16
1384
+  #endif
1341 1385
 
1342
-  #define E2_CURRENT         800
1343
-  #define E2_MICROSTEPS       16
1386
+  #if AXIS_IS_TMC(E2)
1387
+    #define E2_CURRENT    800
1388
+    #define E2_MICROSTEPS  16
1389
+  #endif
1344 1390
 
1345
-  #define E3_CURRENT         800
1346
-  #define E3_MICROSTEPS       16
1391
+  #if AXIS_IS_TMC(E3)
1392
+    #define E3_CURRENT    800
1393
+    #define E3_MICROSTEPS  16
1394
+  #endif
1347 1395
 
1348
-  #define E4_CURRENT         800
1349
-  #define E4_MICROSTEPS       16
1396
+  #if AXIS_IS_TMC(E4)
1397
+    #define E4_CURRENT    800
1398
+    #define E4_MICROSTEPS  16
1399
+  #endif
1350 1400
 
1351
-  #define E5_CURRENT         800
1352
-  #define E5_MICROSTEPS       16
1401
+  #if AXIS_IS_TMC(E5)
1402
+    #define E5_CURRENT    800
1403
+    #define E5_MICROSTEPS  16
1404
+  #endif
1353 1405
 
1354 1406
   /**
1355 1407
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1519,84 +1571,111 @@
1519 1571
  */
1520 1572
 #if HAS_DRIVER(L6470)
1521 1573
 
1522
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1523
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1524
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1525
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1526
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1527
-
1528
-  #define X2_MICROSTEPS      128
1529
-  #define X2_OVERCURRENT    2000
1530
-  #define X2_STALLCURRENT   1500
1531
-  #define X2_MAX_VOLTAGE     127
1532
-  #define X2_CHAIN_POS         0
1533
-
1534
-  #define Y_MICROSTEPS       128
1535
-  #define Y_OVERCURRENT     2000
1536
-  #define Y_STALLCURRENT    1500
1537
-  #define Y_MAX_VOLTAGE      127
1538
-  #define Y_CHAIN_POS          0
1539
-
1540
-  #define Y2_MICROSTEPS      128
1541
-  #define Y2_OVERCURRENT    2000
1542
-  #define Y2_STALLCURRENT   1500
1543
-  #define Y2_MAX_VOLTAGE     127
1544
-  #define Y2_CHAIN_POS         0
1545
-
1546
-  #define Z_MICROSTEPS       128
1547
-  #define Z_OVERCURRENT     2000
1548
-  #define Z_STALLCURRENT    1500
1549
-  #define Z_MAX_VOLTAGE      127
1550
-  #define Z_CHAIN_POS          0
1551
-
1552
-  #define Z2_MICROSTEPS      128
1553
-  #define Z2_OVERCURRENT    2000
1554
-  #define Z2_STALLCURRENT   1500
1555
-  #define Z2_MAX_VOLTAGE     127
1556
-  #define Z2_CHAIN_POS         0
1557
-
1558
-  #define Z3_MICROSTEPS      128
1559
-  #define Z3_OVERCURRENT    2000
1560
-  #define Z3_STALLCURRENT   1500
1561
-  #define Z3_MAX_VOLTAGE     127
1562
-  #define Z3_CHAIN_POS         0
1563
-
1564
-  #define E0_MICROSTEPS      128
1565
-  #define E0_OVERCURRENT    2000
1566
-  #define E0_STALLCURRENT   1500
1567
-  #define E0_MAX_VOLTAGE     127
1568
-  #define E0_CHAIN_POS         0
1569
-
1570
-  #define E1_MICROSTEPS      128
1571
-  #define E1_OVERCURRENT    2000
1572
-  #define E1_STALLCURRENT   1500
1573
-  #define E1_MAX_VOLTAGE     127
1574
-  #define E1_CHAIN_POS         0
1575
-
1576
-  #define E2_MICROSTEPS      128
1577
-  #define E2_OVERCURRENT    2000
1578
-  #define E2_STALLCURRENT   1500
1579
-  #define E2_MAX_VOLTAGE     127
1580
-  #define E2_CHAIN_POS         0
1581
-
1582
-  #define E3_MICROSTEPS      128
1583
-  #define E3_OVERCURRENT    2000
1584
-  #define E3_STALLCURRENT   1500
1585
-  #define E3_MAX_VOLTAGE     127
1586
-  #define E3_CHAIN_POS         0
1587
-
1588
-  #define E4_MICROSTEPS      128
1589
-  #define E4_OVERCURRENT    2000
1590
-  #define E4_STALLCURRENT   1500
1591
-  #define E4_MAX_VOLTAGE     127
1592
-  #define E4_CHAIN_POS         0
1593
-
1594
-  #define E5_MICROSTEPS      128
1595
-  #define E5_OVERCURRENT    2000
1596
-  #define E5_STALLCURRENT   1500
1597
-  #define E5_MAX_VOLTAGE     127
1598
-  #define E5_CHAIN_POS         0
1574
+  //#define L6470_CHITCHAT        // Display additional status info
1599 1575
 
1576
+  #if AXIS_DRIVER_TYPE_X(L6470)
1577
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1578
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1579
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1580
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1581
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1582
+  #endif
1583
+
1584
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1585
+    #define X2_MICROSTEPS      128
1586
+    #define X2_OVERCURRENT    2000
1587
+    #define X2_STALLCURRENT   1500
1588
+    #define X2_MAX_VOLTAGE     127
1589
+    #define X2_CHAIN_POS         0
1590
+  #endif
1591
+
1592
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1593
+    #define Y_MICROSTEPS       128
1594
+    #define Y_OVERCURRENT     2000
1595
+    #define Y_STALLCURRENT    1500
1596
+    #define Y_MAX_VOLTAGE      127
1597
+    #define Y_CHAIN_POS          0
1598
+  #endif
1599
+
1600
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1601
+    #define Y2_MICROSTEPS      128
1602
+    #define Y2_OVERCURRENT    2000
1603
+    #define Y2_STALLCURRENT   1500
1604
+    #define Y2_MAX_VOLTAGE     127
1605
+    #define Y2_CHAIN_POS         0
1606
+  #endif
1607
+
1608
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1609
+    #define Z_MICROSTEPS       128
1610
+    #define Z_OVERCURRENT     2000
1611
+    #define Z_STALLCURRENT    1500
1612
+    #define Z_MAX_VOLTAGE      127
1613
+    #define Z_CHAIN_POS          0
1614
+  #endif
1615
+
1616
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1617
+    #define Z2_MICROSTEPS      128
1618
+    #define Z2_OVERCURRENT    2000
1619
+    #define Z2_STALLCURRENT   1500
1620
+    #define Z2_MAX_VOLTAGE     127
1621
+    #define Z2_CHAIN_POS         0
1622
+  #endif
1623
+
1624
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1625
+    #define Z3_MICROSTEPS      128
1626
+    #define Z3_OVERCURRENT    2000
1627
+    #define Z3_STALLCURRENT   1500
1628
+    #define Z3_MAX_VOLTAGE     127
1629
+    #define Z3_CHAIN_POS         0
1630
+  #endif
1631
+
1632
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1633
+    #define E0_MICROSTEPS      128
1634
+    #define E0_OVERCURRENT    2000
1635
+    #define E0_STALLCURRENT   1500
1636
+    #define E0_MAX_VOLTAGE     127
1637
+    #define E0_CHAIN_POS         0
1638
+  #endif
1639
+
1640
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1641
+    #define E1_MICROSTEPS      128
1642
+    #define E1_OVERCURRENT    2000
1643
+    #define E1_STALLCURRENT   1500
1644
+    #define E1_MAX_VOLTAGE     127
1645
+    #define E1_CHAIN_POS         0
1646
+  #endif
1647
+
1648
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1649
+    #define E2_MICROSTEPS      128
1650
+    #define E2_OVERCURRENT    2000
1651
+    #define E2_STALLCURRENT   1500
1652
+    #define E2_MAX_VOLTAGE     127
1653
+    #define E2_CHAIN_POS         0
1654
+  #endif
1655
+
1656
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1657
+    #define E3_MICROSTEPS      128
1658
+    #define E3_OVERCURRENT    2000
1659
+    #define E3_STALLCURRENT   1500
1660
+    #define E3_MAX_VOLTAGE     127
1661
+    #define E3_CHAIN_POS         0
1662
+  #endif
1663
+
1664
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1665
+    #define E4_MICROSTEPS      128
1666
+    #define E4_OVERCURRENT    2000
1667
+    #define E4_STALLCURRENT   1500
1668
+    #define E4_MAX_VOLTAGE     127
1669
+    #define E4_CHAIN_POS         0
1670
+  #endif
1671
+
1672
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1673
+    #define E5_MICROSTEPS      128
1674
+    #define E5_OVERCURRENT    2000
1675
+    #define E5_STALLCURRENT   1500
1676
+    #define E5_MAX_VOLTAGE     127
1677
+    #define E5_CHAIN_POS         0
1678
+  #endif
1600 1679
 
1601 1680
   /**
1602 1681
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1621,8 +1700,6 @@
1621 1700
     //#define L6470_STOP_ON_ERROR
1622 1701
   #endif
1623 1702
 
1624
-  #define L6470_CHITCHAT     // enable display of additional status info
1625
-
1626 1703
 #endif // L6470
1627 1704
 
1628 1705
 /**

+ 221
- 144
Marlin/src/config/examples/BIBO/TouchX/default/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/BQ/Hephestos/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/BQ/Hephestos_2/Configuration_adv.h View File

@@ -1244,57 +1244,83 @@
1244 1244
  */
1245 1245
 #if HAS_DRIVER(TMC26X)
1246 1246
 
1247
-  #define X_MAX_CURRENT     1000 // in mA
1248
-  #define X_SENSE_RESISTOR    91 // in mOhms
1249
-  #define X_MICROSTEPS        16 // number of microsteps
1247
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1248
+    #define X_MAX_CURRENT     1000  // (mA)
1249
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1250
+    #define X_MICROSTEPS        16  // Number of microsteps
1251
+  #endif
1250 1252
 
1251
-  #define X2_MAX_CURRENT    1000
1252
-  #define X2_SENSE_RESISTOR   91
1253
-  #define X2_MICROSTEPS       16
1253
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1254
+    #define X2_MAX_CURRENT    1000
1255
+    #define X2_SENSE_RESISTOR   91
1256
+    #define X2_MICROSTEPS       16
1257
+  #endif
1254 1258
 
1255
-  #define Y_MAX_CURRENT     1000
1256
-  #define Y_SENSE_RESISTOR    91
1257
-  #define Y_MICROSTEPS        16
1259
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1260
+    #define Y_MAX_CURRENT     1000
1261
+    #define Y_SENSE_RESISTOR    91
1262
+    #define Y_MICROSTEPS        16
1263
+  #endif
1258 1264
 
1259
-  #define Y2_MAX_CURRENT    1000
1260
-  #define Y2_SENSE_RESISTOR   91
1261
-  #define Y2_MICROSTEPS       16
1265
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1266
+    #define Y2_MAX_CURRENT    1000
1267
+    #define Y2_SENSE_RESISTOR   91
1268
+    #define Y2_MICROSTEPS       16
1269
+  #endif
1262 1270
 
1263
-  #define Z_MAX_CURRENT     1000
1264
-  #define Z_SENSE_RESISTOR    91
1265
-  #define Z_MICROSTEPS        16
1271
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1272
+    #define Z_MAX_CURRENT     1000
1273
+    #define Z_SENSE_RESISTOR    91
1274
+    #define Z_MICROSTEPS        16
1275
+  #endif
1266 1276
 
1267
-  #define Z2_MAX_CURRENT    1000
1268
-  #define Z2_SENSE_RESISTOR   91
1269
-  #define Z2_MICROSTEPS       16
1277
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1278
+    #define Z2_MAX_CURRENT    1000
1279
+    #define Z2_SENSE_RESISTOR   91
1280
+    #define Z2_MICROSTEPS       16
1281
+  #endif
1270 1282
 
1271
-  #define Z3_MAX_CURRENT    1000
1272
-  #define Z3_SENSE_RESISTOR   91
1273
-  #define Z3_MICROSTEPS       16
1283
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1284
+    #define Z3_MAX_CURRENT    1000
1285
+    #define Z3_SENSE_RESISTOR   91
1286
+    #define Z3_MICROSTEPS       16
1287
+  #endif
1274 1288
 
1275
-  #define E0_MAX_CURRENT    1000
1276
-  #define E0_SENSE_RESISTOR   91
1277
-  #define E0_MICROSTEPS       16
1289
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1290
+    #define E0_MAX_CURRENT    1000
1291
+    #define E0_SENSE_RESISTOR   91
1292
+    #define E0_MICROSTEPS       16
1293
+  #endif
1278 1294
 
1279
-  #define E1_MAX_CURRENT    1000
1280
-  #define E1_SENSE_RESISTOR   91
1281
-  #define E1_MICROSTEPS       16
1295
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1296
+    #define E1_MAX_CURRENT    1000
1297
+    #define E1_SENSE_RESISTOR   91
1298
+    #define E1_MICROSTEPS       16
1299
+  #endif
1282 1300
 
1283
-  #define E2_MAX_CURRENT    1000
1284
-  #define E2_SENSE_RESISTOR   91
1285
-  #define E2_MICROSTEPS       16
1301
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1302
+    #define E2_MAX_CURRENT    1000
1303
+    #define E2_SENSE_RESISTOR   91
1304
+    #define E2_MICROSTEPS       16
1305
+  #endif
1286 1306
 
1287
-  #define E3_MAX_CURRENT    1000
1288
-  #define E3_SENSE_RESISTOR   91
1289
-  #define E3_MICROSTEPS       16
1307
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1308
+    #define E3_MAX_CURRENT    1000
1309
+    #define E3_SENSE_RESISTOR   91
1310
+    #define E3_MICROSTEPS       16
1311
+  #endif
1290 1312
 
1291
-  #define E4_MAX_CURRENT    1000
1292
-  #define E4_SENSE_RESISTOR   91
1293
-  #define E4_MICROSTEPS       16
1313
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1314
+    #define E4_MAX_CURRENT    1000
1315
+    #define E4_SENSE_RESISTOR   91
1316
+    #define E4_MICROSTEPS       16
1317
+  #endif
1294 1318
 
1295
-  #define E5_MAX_CURRENT    1000
1296
-  #define E5_SENSE_RESISTOR   91
1297
-  #define E5_MICROSTEPS       16
1319
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1320
+    #define E5_MAX_CURRENT    1000
1321
+    #define E5_SENSE_RESISTOR   91
1322
+    #define E5_MICROSTEPS       16
1323
+  #endif
1298 1324
 
1299 1325
 #endif // TMC26X
1300 1326
 
@@ -1321,44 +1347,70 @@
1321 1347
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1322 1348
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1323 1349
 
1324
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1325
-  #define X_MICROSTEPS        16  // 0..256
1350
+  #if AXIS_IS_TMC(X)
1351
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1352
+    #define X_MICROSTEPS   16  // 0..256
1353
+  #endif
1326 1354
 
1327
-  #define Y_CURRENT          800
1328
-  #define Y_MICROSTEPS        16
1355
+  #if AXIS_IS_TMC(X2)
1356
+    #define X2_CURRENT    800
1357
+    #define X2_MICROSTEPS  16
1358
+  #endif
1329 1359
 
1330
-  #define Z_CURRENT          800
1331
-  #define Z_MICROSTEPS        16
1360
+  #if AXIS_IS_TMC(Y)
1361
+    #define Y_CURRENT     800
1362
+    #define Y_MICROSTEPS   16
1363
+  #endif
1332 1364
 
1333
-  #define X2_CURRENT         800
1334
-  #define X2_MICROSTEPS       16
1365
+  #if AXIS_IS_TMC(Y2)
1366
+    #define Y2_CURRENT    800
1367
+    #define Y2_MICROSTEPS  16
1368
+  #endif
1335 1369
 
1336
-  #define Y2_CURRENT         800
1337
-  #define Y2_MICROSTEPS       16
1370
+  #if AXIS_IS_TMC(Z)
1371
+    #define Z_CURRENT     800
1372
+    #define Z_MICROSTEPS   16
1373
+  #endif
1338 1374
 
1339
-  #define Z2_CURRENT         800
1340
-  #define Z2_MICROSTEPS       16
1375
+  #if AXIS_IS_TMC(Z2)
1376
+    #define Z2_CURRENT    800
1377
+    #define Z2_MICROSTEPS  16
1378
+  #endif
1341 1379
 
1342
-  #define Z3_CURRENT         800
1343
-  #define Z3_MICROSTEPS       16
1380
+  #if AXIS_IS_TMC(Z3)
1381
+    #define Z3_CURRENT    800
1382
+    #define Z3_MICROSTEPS  16
1383
+  #endif
1344 1384
 
1345
-  #define E0_CURRENT         800
1346
-  #define E0_MICROSTEPS       16
1385
+  #if AXIS_IS_TMC(E0)
1386
+    #define E0_CURRENT    800
1387
+    #define E0_MICROSTEPS  16
1388
+  #endif
1347 1389
 
1348
-  #define E1_CURRENT         800
1349
-  #define E1_MICROSTEPS       16
1390
+  #if AXIS_IS_TMC(E1)
1391
+    #define E1_CURRENT    800
1392
+    #define E1_MICROSTEPS  16
1393
+  #endif
1350 1394
 
1351
-  #define E2_CURRENT         800
1352
-  #define E2_MICROSTEPS       16
1395
+  #if AXIS_IS_TMC(E2)
1396
+    #define E2_CURRENT    800
1397
+    #define E2_MICROSTEPS  16
1398
+  #endif
1353 1399
 
1354
-  #define E3_CURRENT         800
1355
-  #define E3_MICROSTEPS       16
1400
+  #if AXIS_IS_TMC(E3)
1401
+    #define E3_CURRENT    800
1402
+    #define E3_MICROSTEPS  16
1403
+  #endif
1356 1404
 
1357
-  #define E4_CURRENT         800
1358
-  #define E4_MICROSTEPS       16
1405
+  #if AXIS_IS_TMC(E4)
1406
+    #define E4_CURRENT    800
1407
+    #define E4_MICROSTEPS  16
1408
+  #endif
1359 1409
 
1360
-  #define E5_CURRENT         800
1361
-  #define E5_MICROSTEPS       16
1410
+  #if AXIS_IS_TMC(E5)
1411
+    #define E5_CURRENT    800
1412
+    #define E5_MICROSTEPS  16
1413
+  #endif
1362 1414
 
1363 1415
   /**
1364 1416
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1528,84 +1580,111 @@
1528 1580
  */
1529 1581
 #if HAS_DRIVER(L6470)
1530 1582
 
1531
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1532
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1533
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1534
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1535
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1536
-
1537
-  #define X2_MICROSTEPS      128
1538
-  #define X2_OVERCURRENT    2000
1539
-  #define X2_STALLCURRENT   1500
1540
-  #define X2_MAX_VOLTAGE     127
1541
-  #define X2_CHAIN_POS         0
1542
-
1543
-  #define Y_MICROSTEPS       128
1544
-  #define Y_OVERCURRENT     2000
1545
-  #define Y_STALLCURRENT    1500
1546
-  #define Y_MAX_VOLTAGE      127
1547
-  #define Y_CHAIN_POS          0
1548
-
1549
-  #define Y2_MICROSTEPS      128
1550
-  #define Y2_OVERCURRENT    2000
1551
-  #define Y2_STALLCURRENT   1500
1552
-  #define Y2_MAX_VOLTAGE     127
1553
-  #define Y2_CHAIN_POS         0
1554
-
1555
-  #define Z_MICROSTEPS       128
1556
-  #define Z_OVERCURRENT     2000
1557
-  #define Z_STALLCURRENT    1500
1558
-  #define Z_MAX_VOLTAGE      127
1559
-  #define Z_CHAIN_POS          0
1560
-
1561
-  #define Z2_MICROSTEPS      128
1562
-  #define Z2_OVERCURRENT    2000
1563
-  #define Z2_STALLCURRENT   1500
1564
-  #define Z2_MAX_VOLTAGE     127
1565
-  #define Z2_CHAIN_POS         0
1566
-
1567
-  #define Z3_MICROSTEPS      128
1568
-  #define Z3_OVERCURRENT    2000
1569
-  #define Z3_STALLCURRENT   1500
1570
-  #define Z3_MAX_VOLTAGE     127
1571
-  #define Z3_CHAIN_POS         0
1572
-
1573
-  #define E0_MICROSTEPS      128
1574
-  #define E0_OVERCURRENT    2000
1575
-  #define E0_STALLCURRENT   1500
1576
-  #define E0_MAX_VOLTAGE     127
1577
-  #define E0_CHAIN_POS         0
1578
-
1579
-  #define E1_MICROSTEPS      128
1580
-  #define E1_OVERCURRENT    2000
1581
-  #define E1_STALLCURRENT   1500
1582
-  #define E1_MAX_VOLTAGE     127
1583
-  #define E1_CHAIN_POS         0
1584
-
1585
-  #define E2_MICROSTEPS      128
1586
-  #define E2_OVERCURRENT    2000
1587
-  #define E2_STALLCURRENT   1500
1588
-  #define E2_MAX_VOLTAGE     127
1589
-  #define E2_CHAIN_POS         0
1590
-
1591
-  #define E3_MICROSTEPS      128
1592
-  #define E3_OVERCURRENT    2000
1593
-  #define E3_STALLCURRENT   1500
1594
-  #define E3_MAX_VOLTAGE     127
1595
-  #define E3_CHAIN_POS         0
1596
-
1597
-  #define E4_MICROSTEPS      128
1598
-  #define E4_OVERCURRENT    2000
1599
-  #define E4_STALLCURRENT   1500
1600
-  #define E4_MAX_VOLTAGE     127
1601
-  #define E4_CHAIN_POS         0
1602
-
1603
-  #define E5_MICROSTEPS      128
1604
-  #define E5_OVERCURRENT    2000
1605
-  #define E5_STALLCURRENT   1500
1606
-  #define E5_MAX_VOLTAGE     127
1607
-  #define E5_CHAIN_POS         0
1583
+  //#define L6470_CHITCHAT        // Display additional status info
1608 1584
 
1585
+  #if AXIS_DRIVER_TYPE_X(L6470)
1586
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1587
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1588
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1589
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1590
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1594
+    #define X2_MICROSTEPS      128
1595
+    #define X2_OVERCURRENT    2000
1596
+    #define X2_STALLCURRENT   1500
1597
+    #define X2_MAX_VOLTAGE     127
1598
+    #define X2_CHAIN_POS         0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1602
+    #define Y_MICROSTEPS       128
1603
+    #define Y_OVERCURRENT     2000
1604
+    #define Y_STALLCURRENT    1500
1605
+    #define Y_MAX_VOLTAGE      127
1606
+    #define Y_CHAIN_POS          0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1610
+    #define Y2_MICROSTEPS      128
1611
+    #define Y2_OVERCURRENT    2000
1612
+    #define Y2_STALLCURRENT   1500
1613
+    #define Y2_MAX_VOLTAGE     127
1614
+    #define Y2_CHAIN_POS         0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1618
+    #define Z_MICROSTEPS       128
1619
+    #define Z_OVERCURRENT     2000
1620
+    #define Z_STALLCURRENT    1500
1621
+    #define Z_MAX_VOLTAGE      127
1622
+    #define Z_CHAIN_POS          0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1626
+    #define Z2_MICROSTEPS      128
1627
+    #define Z2_OVERCURRENT    2000
1628
+    #define Z2_STALLCURRENT   1500
1629
+    #define Z2_MAX_VOLTAGE     127
1630
+    #define Z2_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1634
+    #define Z3_MICROSTEPS      128
1635
+    #define Z3_OVERCURRENT    2000
1636
+    #define Z3_STALLCURRENT   1500
1637
+    #define Z3_MAX_VOLTAGE     127
1638
+    #define Z3_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1642
+    #define E0_MICROSTEPS      128
1643
+    #define E0_OVERCURRENT    2000
1644
+    #define E0_STALLCURRENT   1500
1645
+    #define E0_MAX_VOLTAGE     127
1646
+    #define E0_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1650
+    #define E1_MICROSTEPS      128
1651
+    #define E1_OVERCURRENT    2000
1652
+    #define E1_STALLCURRENT   1500
1653
+    #define E1_MAX_VOLTAGE     127
1654
+    #define E1_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1658
+    #define E2_MICROSTEPS      128
1659
+    #define E2_OVERCURRENT    2000
1660
+    #define E2_STALLCURRENT   1500
1661
+    #define E2_MAX_VOLTAGE     127
1662
+    #define E2_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1666
+    #define E3_MICROSTEPS      128
1667
+    #define E3_OVERCURRENT    2000
1668
+    #define E3_STALLCURRENT   1500
1669
+    #define E3_MAX_VOLTAGE     127
1670
+    #define E3_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1674
+    #define E4_MICROSTEPS      128
1675
+    #define E4_OVERCURRENT    2000
1676
+    #define E4_STALLCURRENT   1500
1677
+    #define E4_MAX_VOLTAGE     127
1678
+    #define E4_CHAIN_POS         0
1679
+  #endif
1680
+
1681
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1682
+    #define E5_MICROSTEPS      128
1683
+    #define E5_OVERCURRENT    2000
1684
+    #define E5_STALLCURRENT   1500
1685
+    #define E5_MAX_VOLTAGE     127
1686
+    #define E5_CHAIN_POS         0
1687
+  #endif
1609 1688
 
1610 1689
   /**
1611 1690
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1630,8 +1709,6 @@
1630 1709
     //#define L6470_STOP_ON_ERROR
1631 1710
   #endif
1632 1711
 
1633
-  #define L6470_CHITCHAT     // enable display of additional status info
1634
-
1635 1712
 #endif // L6470
1636 1713
 
1637 1714
 /**

+ 221
- 144
Marlin/src/config/examples/BQ/WITBOX/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/Cartesio/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/Creality/CR-10/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/Creality/CR-10S/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/Creality/CR-10mini/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/Creality/CR-8/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/Creality/Ender-2/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/Creality/Ender-3/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/Creality/Ender-4/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/Einstart-S/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/Felix/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/FlashForge/CreatorPro/Configuration_adv.h View File

@@ -1235,57 +1235,83 @@
1235 1235
  */
1236 1236
 #if HAS_DRIVER(TMC26X)
1237 1237
 
1238
-  #define X_MAX_CURRENT     1000 // in mA
1239
-  #define X_SENSE_RESISTOR    91 // in mOhms
1240
-  #define X_MICROSTEPS        16 // number of microsteps
1238
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1239
+    #define X_MAX_CURRENT     1000  // (mA)
1240
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1241
+    #define X_MICROSTEPS        16  // Number of microsteps
1242
+  #endif
1241 1243
 
1242
-  #define X2_MAX_CURRENT    1000
1243
-  #define X2_SENSE_RESISTOR   91
1244
-  #define X2_MICROSTEPS       16
1244
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1245
+    #define X2_MAX_CURRENT    1000
1246
+    #define X2_SENSE_RESISTOR   91
1247
+    #define X2_MICROSTEPS       16
1248
+  #endif
1245 1249
 
1246
-  #define Y_MAX_CURRENT     1000
1247
-  #define Y_SENSE_RESISTOR    91
1248
-  #define Y_MICROSTEPS        16
1250
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1251
+    #define Y_MAX_CURRENT     1000
1252
+    #define Y_SENSE_RESISTOR    91
1253
+    #define Y_MICROSTEPS        16
1254
+  #endif
1249 1255
 
1250
-  #define Y2_MAX_CURRENT    1000
1251
-  #define Y2_SENSE_RESISTOR   91
1252
-  #define Y2_MICROSTEPS       16
1256
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1257
+    #define Y2_MAX_CURRENT    1000
1258
+    #define Y2_SENSE_RESISTOR   91
1259
+    #define Y2_MICROSTEPS       16
1260
+  #endif
1253 1261
 
1254
-  #define Z_MAX_CURRENT     1000
1255
-  #define Z_SENSE_RESISTOR    91
1256
-  #define Z_MICROSTEPS        16
1262
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1263
+    #define Z_MAX_CURRENT     1000
1264
+    #define Z_SENSE_RESISTOR    91
1265
+    #define Z_MICROSTEPS        16
1266
+  #endif
1257 1267
 
1258
-  #define Z2_MAX_CURRENT    1000
1259
-  #define Z2_SENSE_RESISTOR   91
1260
-  #define Z2_MICROSTEPS       16
1268
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1269
+    #define Z2_MAX_CURRENT    1000
1270
+    #define Z2_SENSE_RESISTOR   91
1271
+    #define Z2_MICROSTEPS       16
1272
+  #endif
1261 1273
 
1262
-  #define Z3_MAX_CURRENT    1000
1263
-  #define Z3_SENSE_RESISTOR   91
1264
-  #define Z3_MICROSTEPS       16
1274
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1275
+    #define Z3_MAX_CURRENT    1000
1276
+    #define Z3_SENSE_RESISTOR   91
1277
+    #define Z3_MICROSTEPS       16
1278
+  #endif
1265 1279
 
1266
-  #define E0_MAX_CURRENT    1000
1267
-  #define E0_SENSE_RESISTOR   91
1268
-  #define E0_MICROSTEPS       16
1280
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1281
+    #define E0_MAX_CURRENT    1000
1282
+    #define E0_SENSE_RESISTOR   91
1283
+    #define E0_MICROSTEPS       16
1284
+  #endif
1269 1285
 
1270
-  #define E1_MAX_CURRENT    1000
1271
-  #define E1_SENSE_RESISTOR   91
1272
-  #define E1_MICROSTEPS       16
1286
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1287
+    #define E1_MAX_CURRENT    1000
1288
+    #define E1_SENSE_RESISTOR   91
1289
+    #define E1_MICROSTEPS       16
1290
+  #endif
1273 1291
 
1274
-  #define E2_MAX_CURRENT    1000
1275
-  #define E2_SENSE_RESISTOR   91
1276
-  #define E2_MICROSTEPS       16
1292
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1293
+    #define E2_MAX_CURRENT    1000
1294
+    #define E2_SENSE_RESISTOR   91
1295
+    #define E2_MICROSTEPS       16
1296
+  #endif
1277 1297
 
1278
-  #define E3_MAX_CURRENT    1000
1279
-  #define E3_SENSE_RESISTOR   91
1280
-  #define E3_MICROSTEPS       16
1298
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1299
+    #define E3_MAX_CURRENT    1000
1300
+    #define E3_SENSE_RESISTOR   91
1301
+    #define E3_MICROSTEPS       16
1302
+  #endif
1281 1303
 
1282
-  #define E4_MAX_CURRENT    1000
1283
-  #define E4_SENSE_RESISTOR   91
1284
-  #define E4_MICROSTEPS       16
1304
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1305
+    #define E4_MAX_CURRENT    1000
1306
+    #define E4_SENSE_RESISTOR   91
1307
+    #define E4_MICROSTEPS       16
1308
+  #endif
1285 1309
 
1286
-  #define E5_MAX_CURRENT    1000
1287
-  #define E5_SENSE_RESISTOR   91
1288
-  #define E5_MICROSTEPS       16
1310
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1311
+    #define E5_MAX_CURRENT    1000
1312
+    #define E5_SENSE_RESISTOR   91
1313
+    #define E5_MICROSTEPS       16
1314
+  #endif
1289 1315
 
1290 1316
 #endif // TMC26X
1291 1317
 
@@ -1312,44 +1338,70 @@
1312 1338
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1313 1339
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1314 1340
 
1315
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1316
-  #define X_MICROSTEPS        16  // 0..256
1341
+  #if AXIS_IS_TMC(X)
1342
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1343
+    #define X_MICROSTEPS   16  // 0..256
1344
+  #endif
1317 1345
 
1318
-  #define Y_CURRENT          800
1319
-  #define Y_MICROSTEPS        16
1346
+  #if AXIS_IS_TMC(X2)
1347
+    #define X2_CURRENT    800
1348
+    #define X2_MICROSTEPS  16
1349
+  #endif
1320 1350
 
1321
-  #define Z_CURRENT          800
1322
-  #define Z_MICROSTEPS        16
1351
+  #if AXIS_IS_TMC(Y)
1352
+    #define Y_CURRENT     800
1353
+    #define Y_MICROSTEPS   16
1354
+  #endif
1323 1355
 
1324
-  #define X2_CURRENT         800
1325
-  #define X2_MICROSTEPS       16
1356
+  #if AXIS_IS_TMC(Y2)
1357
+    #define Y2_CURRENT    800
1358
+    #define Y2_MICROSTEPS  16
1359
+  #endif
1326 1360
 
1327
-  #define Y2_CURRENT         800
1328
-  #define Y2_MICROSTEPS       16
1361
+  #if AXIS_IS_TMC(Z)
1362
+    #define Z_CURRENT     800
1363
+    #define Z_MICROSTEPS   16
1364
+  #endif
1329 1365
 
1330
-  #define Z2_CURRENT         800
1331
-  #define Z2_MICROSTEPS       16
1366
+  #if AXIS_IS_TMC(Z2)
1367
+    #define Z2_CURRENT    800
1368
+    #define Z2_MICROSTEPS  16
1369
+  #endif
1332 1370
 
1333
-  #define Z3_CURRENT         800
1334
-  #define Z3_MICROSTEPS       16
1371
+  #if AXIS_IS_TMC(Z3)
1372
+    #define Z3_CURRENT    800
1373
+    #define Z3_MICROSTEPS  16
1374
+  #endif
1335 1375
 
1336
-  #define E0_CURRENT         800
1337
-  #define E0_MICROSTEPS       16
1376
+  #if AXIS_IS_TMC(E0)
1377
+    #define E0_CURRENT    800
1378
+    #define E0_MICROSTEPS  16
1379
+  #endif
1338 1380
 
1339
-  #define E1_CURRENT         800
1340
-  #define E1_MICROSTEPS       16
1381
+  #if AXIS_IS_TMC(E1)
1382
+    #define E1_CURRENT    800
1383
+    #define E1_MICROSTEPS  16
1384
+  #endif
1341 1385
 
1342
-  #define E2_CURRENT         800
1343
-  #define E2_MICROSTEPS       16
1386
+  #if AXIS_IS_TMC(E2)
1387
+    #define E2_CURRENT    800
1388
+    #define E2_MICROSTEPS  16
1389
+  #endif
1344 1390
 
1345
-  #define E3_CURRENT         800
1346
-  #define E3_MICROSTEPS       16
1391
+  #if AXIS_IS_TMC(E3)
1392
+    #define E3_CURRENT    800
1393
+    #define E3_MICROSTEPS  16
1394
+  #endif
1347 1395
 
1348
-  #define E4_CURRENT         800
1349
-  #define E4_MICROSTEPS       16
1396
+  #if AXIS_IS_TMC(E4)
1397
+    #define E4_CURRENT    800
1398
+    #define E4_MICROSTEPS  16
1399
+  #endif
1350 1400
 
1351
-  #define E5_CURRENT         800
1352
-  #define E5_MICROSTEPS       16
1401
+  #if AXIS_IS_TMC(E5)
1402
+    #define E5_CURRENT    800
1403
+    #define E5_MICROSTEPS  16
1404
+  #endif
1353 1405
 
1354 1406
   /**
1355 1407
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1519,84 +1571,111 @@
1519 1571
  */
1520 1572
 #if HAS_DRIVER(L6470)
1521 1573
 
1522
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1523
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1524
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1525
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1526
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1527
-
1528
-  #define X2_MICROSTEPS      128
1529
-  #define X2_OVERCURRENT    2000
1530
-  #define X2_STALLCURRENT   1500
1531
-  #define X2_MAX_VOLTAGE     127
1532
-  #define X2_CHAIN_POS         0
1533
-
1534
-  #define Y_MICROSTEPS       128
1535
-  #define Y_OVERCURRENT     2000
1536
-  #define Y_STALLCURRENT    1500
1537
-  #define Y_MAX_VOLTAGE      127
1538
-  #define Y_CHAIN_POS          0
1539
-
1540
-  #define Y2_MICROSTEPS      128
1541
-  #define Y2_OVERCURRENT    2000
1542
-  #define Y2_STALLCURRENT   1500
1543
-  #define Y2_MAX_VOLTAGE     127
1544
-  #define Y2_CHAIN_POS         0
1545
-
1546
-  #define Z_MICROSTEPS       128
1547
-  #define Z_OVERCURRENT     2000
1548
-  #define Z_STALLCURRENT    1500
1549
-  #define Z_MAX_VOLTAGE      127
1550
-  #define Z_CHAIN_POS          0
1551
-
1552
-  #define Z2_MICROSTEPS      128
1553
-  #define Z2_OVERCURRENT    2000
1554
-  #define Z2_STALLCURRENT   1500
1555
-  #define Z2_MAX_VOLTAGE     127
1556
-  #define Z2_CHAIN_POS         0
1557
-
1558
-  #define Z3_MICROSTEPS      128
1559
-  #define Z3_OVERCURRENT    2000
1560
-  #define Z3_STALLCURRENT   1500
1561
-  #define Z3_MAX_VOLTAGE     127
1562
-  #define Z3_CHAIN_POS         0
1563
-
1564
-  #define E0_MICROSTEPS      128
1565
-  #define E0_OVERCURRENT    2000
1566
-  #define E0_STALLCURRENT   1500
1567
-  #define E0_MAX_VOLTAGE     127
1568
-  #define E0_CHAIN_POS         0
1569
-
1570
-  #define E1_MICROSTEPS      128
1571
-  #define E1_OVERCURRENT    2000
1572
-  #define E1_STALLCURRENT   1500
1573
-  #define E1_MAX_VOLTAGE     127
1574
-  #define E1_CHAIN_POS         0
1575
-
1576
-  #define E2_MICROSTEPS      128
1577
-  #define E2_OVERCURRENT    2000
1578
-  #define E2_STALLCURRENT   1500
1579
-  #define E2_MAX_VOLTAGE     127
1580
-  #define E2_CHAIN_POS         0
1581
-
1582
-  #define E3_MICROSTEPS      128
1583
-  #define E3_OVERCURRENT    2000
1584
-  #define E3_STALLCURRENT   1500
1585
-  #define E3_MAX_VOLTAGE     127
1586
-  #define E3_CHAIN_POS         0
1587
-
1588
-  #define E4_MICROSTEPS      128
1589
-  #define E4_OVERCURRENT    2000
1590
-  #define E4_STALLCURRENT   1500
1591
-  #define E4_MAX_VOLTAGE     127
1592
-  #define E4_CHAIN_POS         0
1593
-
1594
-  #define E5_MICROSTEPS      128
1595
-  #define E5_OVERCURRENT    2000
1596
-  #define E5_STALLCURRENT   1500
1597
-  #define E5_MAX_VOLTAGE     127
1598
-  #define E5_CHAIN_POS         0
1574
+  //#define L6470_CHITCHAT        // Display additional status info
1599 1575
 
1576
+  #if AXIS_DRIVER_TYPE_X(L6470)
1577
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1578
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1579
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1580
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1581
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1582
+  #endif
1583
+
1584
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1585
+    #define X2_MICROSTEPS      128
1586
+    #define X2_OVERCURRENT    2000
1587
+    #define X2_STALLCURRENT   1500
1588
+    #define X2_MAX_VOLTAGE     127
1589
+    #define X2_CHAIN_POS         0
1590
+  #endif
1591
+
1592
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1593
+    #define Y_MICROSTEPS       128
1594
+    #define Y_OVERCURRENT     2000
1595
+    #define Y_STALLCURRENT    1500
1596
+    #define Y_MAX_VOLTAGE      127
1597
+    #define Y_CHAIN_POS          0
1598
+  #endif
1599
+
1600
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1601
+    #define Y2_MICROSTEPS      128
1602
+    #define Y2_OVERCURRENT    2000
1603
+    #define Y2_STALLCURRENT   1500
1604
+    #define Y2_MAX_VOLTAGE     127
1605
+    #define Y2_CHAIN_POS         0
1606
+  #endif
1607
+
1608
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1609
+    #define Z_MICROSTEPS       128
1610
+    #define Z_OVERCURRENT     2000
1611
+    #define Z_STALLCURRENT    1500
1612
+    #define Z_MAX_VOLTAGE      127
1613
+    #define Z_CHAIN_POS          0
1614
+  #endif
1615
+
1616
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1617
+    #define Z2_MICROSTEPS      128
1618
+    #define Z2_OVERCURRENT    2000
1619
+    #define Z2_STALLCURRENT   1500
1620
+    #define Z2_MAX_VOLTAGE     127
1621
+    #define Z2_CHAIN_POS         0
1622
+  #endif
1623
+
1624
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1625
+    #define Z3_MICROSTEPS      128
1626
+    #define Z3_OVERCURRENT    2000
1627
+    #define Z3_STALLCURRENT   1500
1628
+    #define Z3_MAX_VOLTAGE     127
1629
+    #define Z3_CHAIN_POS         0
1630
+  #endif
1631
+
1632
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1633
+    #define E0_MICROSTEPS      128
1634
+    #define E0_OVERCURRENT    2000
1635
+    #define E0_STALLCURRENT   1500
1636
+    #define E0_MAX_VOLTAGE     127
1637
+    #define E0_CHAIN_POS         0
1638
+  #endif
1639
+
1640
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1641
+    #define E1_MICROSTEPS      128
1642
+    #define E1_OVERCURRENT    2000
1643
+    #define E1_STALLCURRENT   1500
1644
+    #define E1_MAX_VOLTAGE     127
1645
+    #define E1_CHAIN_POS         0
1646
+  #endif
1647
+
1648
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1649
+    #define E2_MICROSTEPS      128
1650
+    #define E2_OVERCURRENT    2000
1651
+    #define E2_STALLCURRENT   1500
1652
+    #define E2_MAX_VOLTAGE     127
1653
+    #define E2_CHAIN_POS         0
1654
+  #endif
1655
+
1656
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1657
+    #define E3_MICROSTEPS      128
1658
+    #define E3_OVERCURRENT    2000
1659
+    #define E3_STALLCURRENT   1500
1660
+    #define E3_MAX_VOLTAGE     127
1661
+    #define E3_CHAIN_POS         0
1662
+  #endif
1663
+
1664
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1665
+    #define E4_MICROSTEPS      128
1666
+    #define E4_OVERCURRENT    2000
1667
+    #define E4_STALLCURRENT   1500
1668
+    #define E4_MAX_VOLTAGE     127
1669
+    #define E4_CHAIN_POS         0
1670
+  #endif
1671
+
1672
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1673
+    #define E5_MICROSTEPS      128
1674
+    #define E5_OVERCURRENT    2000
1675
+    #define E5_STALLCURRENT   1500
1676
+    #define E5_MAX_VOLTAGE     127
1677
+    #define E5_CHAIN_POS         0
1678
+  #endif
1600 1679
 
1601 1680
   /**
1602 1681
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1621,8 +1700,6 @@
1621 1700
     //#define L6470_STOP_ON_ERROR
1622 1701
   #endif
1623 1702
 
1624
-  #define L6470_CHITCHAT     // enable display of additional status info
1625
-
1626 1703
 #endif // L6470
1627 1704
 
1628 1705
 /**

+ 221
- 144
Marlin/src/config/examples/FolgerTech/i3-2020/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/Formbot/Raptor/Configuration_adv.h View File

@@ -1238,57 +1238,83 @@
1238 1238
  */
1239 1239
 #if HAS_DRIVER(TMC26X)
1240 1240
 
1241
-  #define X_MAX_CURRENT     1000 // in mA
1242
-  #define X_SENSE_RESISTOR    91 // in mOhms
1243
-  #define X_MICROSTEPS        16 // number of microsteps
1241
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1242
+    #define X_MAX_CURRENT     1000  // (mA)
1243
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1244
+    #define X_MICROSTEPS        16  // Number of microsteps
1245
+  #endif
1244 1246
 
1245
-  #define X2_MAX_CURRENT    1000
1246
-  #define X2_SENSE_RESISTOR   91
1247
-  #define X2_MICROSTEPS       16
1247
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1248
+    #define X2_MAX_CURRENT    1000
1249
+    #define X2_SENSE_RESISTOR   91
1250
+    #define X2_MICROSTEPS       16
1251
+  #endif
1248 1252
 
1249
-  #define Y_MAX_CURRENT     1000
1250
-  #define Y_SENSE_RESISTOR    91
1251
-  #define Y_MICROSTEPS        16
1253
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1254
+    #define Y_MAX_CURRENT     1000
1255
+    #define Y_SENSE_RESISTOR    91
1256
+    #define Y_MICROSTEPS        16
1257
+  #endif
1252 1258
 
1253
-  #define Y2_MAX_CURRENT    1000
1254
-  #define Y2_SENSE_RESISTOR   91
1255
-  #define Y2_MICROSTEPS       16
1259
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1260
+    #define Y2_MAX_CURRENT    1000
1261
+    #define Y2_SENSE_RESISTOR   91
1262
+    #define Y2_MICROSTEPS       16
1263
+  #endif
1256 1264
 
1257
-  #define Z_MAX_CURRENT     1000
1258
-  #define Z_SENSE_RESISTOR    91
1259
-  #define Z_MICROSTEPS        16
1265
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1266
+    #define Z_MAX_CURRENT     1000
1267
+    #define Z_SENSE_RESISTOR    91
1268
+    #define Z_MICROSTEPS        16
1269
+  #endif
1260 1270
 
1261
-  #define Z2_MAX_CURRENT    1000
1262
-  #define Z2_SENSE_RESISTOR   91
1263
-  #define Z2_MICROSTEPS       16
1271
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1272
+    #define Z2_MAX_CURRENT    1000
1273
+    #define Z2_SENSE_RESISTOR   91
1274
+    #define Z2_MICROSTEPS       16
1275
+  #endif
1264 1276
 
1265
-  #define Z3_MAX_CURRENT    1000
1266
-  #define Z3_SENSE_RESISTOR   91
1267
-  #define Z3_MICROSTEPS       16
1277
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1278
+    #define Z3_MAX_CURRENT    1000
1279
+    #define Z3_SENSE_RESISTOR   91
1280
+    #define Z3_MICROSTEPS       16
1281
+  #endif
1268 1282
 
1269
-  #define E0_MAX_CURRENT    1000
1270
-  #define E0_SENSE_RESISTOR   91
1271
-  #define E0_MICROSTEPS       16
1283
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1284
+    #define E0_MAX_CURRENT    1000
1285
+    #define E0_SENSE_RESISTOR   91
1286
+    #define E0_MICROSTEPS       16
1287
+  #endif
1272 1288
 
1273
-  #define E1_MAX_CURRENT    1000
1274
-  #define E1_SENSE_RESISTOR   91
1275
-  #define E1_MICROSTEPS       16
1289
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1290
+    #define E1_MAX_CURRENT    1000
1291
+    #define E1_SENSE_RESISTOR   91
1292
+    #define E1_MICROSTEPS       16
1293
+  #endif
1276 1294
 
1277
-  #define E2_MAX_CURRENT    1000
1278
-  #define E2_SENSE_RESISTOR   91
1279
-  #define E2_MICROSTEPS       16
1295
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1296
+    #define E2_MAX_CURRENT    1000
1297
+    #define E2_SENSE_RESISTOR   91
1298
+    #define E2_MICROSTEPS       16
1299
+  #endif
1280 1300
 
1281
-  #define E3_MAX_CURRENT    1000
1282
-  #define E3_SENSE_RESISTOR   91
1283
-  #define E3_MICROSTEPS       16
1301
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1302
+    #define E3_MAX_CURRENT    1000
1303
+    #define E3_SENSE_RESISTOR   91
1304
+    #define E3_MICROSTEPS       16
1305
+  #endif
1284 1306
 
1285
-  #define E4_MAX_CURRENT    1000
1286
-  #define E4_SENSE_RESISTOR   91
1287
-  #define E4_MICROSTEPS       16
1307
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1308
+    #define E4_MAX_CURRENT    1000
1309
+    #define E4_SENSE_RESISTOR   91
1310
+    #define E4_MICROSTEPS       16
1311
+  #endif
1288 1312
 
1289
-  #define E5_MAX_CURRENT    1000
1290
-  #define E5_SENSE_RESISTOR   91
1291
-  #define E5_MICROSTEPS       16
1313
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1314
+    #define E5_MAX_CURRENT    1000
1315
+    #define E5_SENSE_RESISTOR   91
1316
+    #define E5_MICROSTEPS       16
1317
+  #endif
1292 1318
 
1293 1319
 #endif // TMC26X
1294 1320
 
@@ -1315,44 +1341,70 @@
1315 1341
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1316 1342
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1317 1343
 
1318
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1319
-  #define X_MICROSTEPS        16  // 0..256
1344
+  #if AXIS_IS_TMC(X)
1345
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1346
+    #define X_MICROSTEPS   16  // 0..256
1347
+  #endif
1320 1348
 
1321
-  #define Y_CURRENT          800
1322
-  #define Y_MICROSTEPS        16
1349
+  #if AXIS_IS_TMC(X2)
1350
+    #define X2_CURRENT    800
1351
+    #define X2_MICROSTEPS  16
1352
+  #endif
1323 1353
 
1324
-  #define Z_CURRENT          800
1325
-  #define Z_MICROSTEPS        16
1354
+  #if AXIS_IS_TMC(Y)
1355
+    #define Y_CURRENT     800
1356
+    #define Y_MICROSTEPS   16
1357
+  #endif
1326 1358
 
1327
-  #define X2_CURRENT         800
1328
-  #define X2_MICROSTEPS       16
1359
+  #if AXIS_IS_TMC(Y2)
1360
+    #define Y2_CURRENT    800
1361
+    #define Y2_MICROSTEPS  16
1362
+  #endif
1329 1363
 
1330
-  #define Y2_CURRENT         800
1331
-  #define Y2_MICROSTEPS       16
1364
+  #if AXIS_IS_TMC(Z)
1365
+    #define Z_CURRENT     800
1366
+    #define Z_MICROSTEPS   16
1367
+  #endif
1332 1368
 
1333
-  #define Z2_CURRENT         800
1334
-  #define Z2_MICROSTEPS       16
1369
+  #if AXIS_IS_TMC(Z2)
1370
+    #define Z2_CURRENT    800
1371
+    #define Z2_MICROSTEPS  16
1372
+  #endif
1335 1373
 
1336
-  #define Z3_CURRENT         800
1337
-  #define Z3_MICROSTEPS       16
1374
+  #if AXIS_IS_TMC(Z3)
1375
+    #define Z3_CURRENT    800
1376
+    #define Z3_MICROSTEPS  16
1377
+  #endif
1338 1378
 
1339
-  #define E0_CURRENT         800
1340
-  #define E0_MICROSTEPS       16
1379
+  #if AXIS_IS_TMC(E0)
1380
+    #define E0_CURRENT    800
1381
+    #define E0_MICROSTEPS  16
1382
+  #endif
1341 1383
 
1342
-  #define E1_CURRENT         800
1343
-  #define E1_MICROSTEPS       16
1384
+  #if AXIS_IS_TMC(E1)
1385
+    #define E1_CURRENT    800
1386
+    #define E1_MICROSTEPS  16
1387
+  #endif
1344 1388
 
1345
-  #define E2_CURRENT         800
1346
-  #define E2_MICROSTEPS       16
1389
+  #if AXIS_IS_TMC(E2)
1390
+    #define E2_CURRENT    800
1391
+    #define E2_MICROSTEPS  16
1392
+  #endif
1347 1393
 
1348
-  #define E3_CURRENT         800
1349
-  #define E3_MICROSTEPS       16
1394
+  #if AXIS_IS_TMC(E3)
1395
+    #define E3_CURRENT    800
1396
+    #define E3_MICROSTEPS  16
1397
+  #endif
1350 1398
 
1351
-  #define E4_CURRENT         800
1352
-  #define E4_MICROSTEPS       16
1399
+  #if AXIS_IS_TMC(E4)
1400
+    #define E4_CURRENT    800
1401
+    #define E4_MICROSTEPS  16
1402
+  #endif
1353 1403
 
1354
-  #define E5_CURRENT         800
1355
-  #define E5_MICROSTEPS       16
1404
+  #if AXIS_IS_TMC(E5)
1405
+    #define E5_CURRENT    800
1406
+    #define E5_MICROSTEPS  16
1407
+  #endif
1356 1408
 
1357 1409
   /**
1358 1410
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1522,84 +1574,111 @@
1522 1574
  */
1523 1575
 #if HAS_DRIVER(L6470)
1524 1576
 
1525
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1526
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1527
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1528
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1529
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1530
-
1531
-  #define X2_MICROSTEPS      128
1532
-  #define X2_OVERCURRENT    2000
1533
-  #define X2_STALLCURRENT   1500
1534
-  #define X2_MAX_VOLTAGE     127
1535
-  #define X2_CHAIN_POS         0
1536
-
1537
-  #define Y_MICROSTEPS       128
1538
-  #define Y_OVERCURRENT     2000
1539
-  #define Y_STALLCURRENT    1500
1540
-  #define Y_MAX_VOLTAGE      127
1541
-  #define Y_CHAIN_POS          0
1542
-
1543
-  #define Y2_MICROSTEPS      128
1544
-  #define Y2_OVERCURRENT    2000
1545
-  #define Y2_STALLCURRENT   1500
1546
-  #define Y2_MAX_VOLTAGE     127
1547
-  #define Y2_CHAIN_POS         0
1548
-
1549
-  #define Z_MICROSTEPS       128
1550
-  #define Z_OVERCURRENT     2000
1551
-  #define Z_STALLCURRENT    1500
1552
-  #define Z_MAX_VOLTAGE      127
1553
-  #define Z_CHAIN_POS          0
1554
-
1555
-  #define Z2_MICROSTEPS      128
1556
-  #define Z2_OVERCURRENT    2000
1557
-  #define Z2_STALLCURRENT   1500
1558
-  #define Z2_MAX_VOLTAGE     127
1559
-  #define Z2_CHAIN_POS         0
1560
-
1561
-  #define Z3_MICROSTEPS      128
1562
-  #define Z3_OVERCURRENT    2000
1563
-  #define Z3_STALLCURRENT   1500
1564
-  #define Z3_MAX_VOLTAGE     127
1565
-  #define Z3_CHAIN_POS         0
1566
-
1567
-  #define E0_MICROSTEPS      128
1568
-  #define E0_OVERCURRENT    2000
1569
-  #define E0_STALLCURRENT   1500
1570
-  #define E0_MAX_VOLTAGE     127
1571
-  #define E0_CHAIN_POS         0
1572
-
1573
-  #define E1_MICROSTEPS      128
1574
-  #define E1_OVERCURRENT    2000
1575
-  #define E1_STALLCURRENT   1500
1576
-  #define E1_MAX_VOLTAGE     127
1577
-  #define E1_CHAIN_POS         0
1578
-
1579
-  #define E2_MICROSTEPS      128
1580
-  #define E2_OVERCURRENT    2000
1581
-  #define E2_STALLCURRENT   1500
1582
-  #define E2_MAX_VOLTAGE     127
1583
-  #define E2_CHAIN_POS         0
1584
-
1585
-  #define E3_MICROSTEPS      128
1586
-  #define E3_OVERCURRENT    2000
1587
-  #define E3_STALLCURRENT   1500
1588
-  #define E3_MAX_VOLTAGE     127
1589
-  #define E3_CHAIN_POS         0
1590
-
1591
-  #define E4_MICROSTEPS      128
1592
-  #define E4_OVERCURRENT    2000
1593
-  #define E4_STALLCURRENT   1500
1594
-  #define E4_MAX_VOLTAGE     127
1595
-  #define E4_CHAIN_POS         0
1596
-
1597
-  #define E5_MICROSTEPS      128
1598
-  #define E5_OVERCURRENT    2000
1599
-  #define E5_STALLCURRENT   1500
1600
-  #define E5_MAX_VOLTAGE     127
1601
-  #define E5_CHAIN_POS         0
1577
+  //#define L6470_CHITCHAT        // Display additional status info
1602 1578
 
1579
+  #if AXIS_DRIVER_TYPE_X(L6470)
1580
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1581
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1582
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1583
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1584
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1585
+  #endif
1586
+
1587
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1588
+    #define X2_MICROSTEPS      128
1589
+    #define X2_OVERCURRENT    2000
1590
+    #define X2_STALLCURRENT   1500
1591
+    #define X2_MAX_VOLTAGE     127
1592
+    #define X2_CHAIN_POS         0
1593
+  #endif
1594
+
1595
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1596
+    #define Y_MICROSTEPS       128
1597
+    #define Y_OVERCURRENT     2000
1598
+    #define Y_STALLCURRENT    1500
1599
+    #define Y_MAX_VOLTAGE      127
1600
+    #define Y_CHAIN_POS          0
1601
+  #endif
1602
+
1603
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1604
+    #define Y2_MICROSTEPS      128
1605
+    #define Y2_OVERCURRENT    2000
1606
+    #define Y2_STALLCURRENT   1500
1607
+    #define Y2_MAX_VOLTAGE     127
1608
+    #define Y2_CHAIN_POS         0
1609
+  #endif
1610
+
1611
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1612
+    #define Z_MICROSTEPS       128
1613
+    #define Z_OVERCURRENT     2000
1614
+    #define Z_STALLCURRENT    1500
1615
+    #define Z_MAX_VOLTAGE      127
1616
+    #define Z_CHAIN_POS          0
1617
+  #endif
1618
+
1619
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1620
+    #define Z2_MICROSTEPS      128
1621
+    #define Z2_OVERCURRENT    2000
1622
+    #define Z2_STALLCURRENT   1500
1623
+    #define Z2_MAX_VOLTAGE     127
1624
+    #define Z2_CHAIN_POS         0
1625
+  #endif
1626
+
1627
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1628
+    #define Z3_MICROSTEPS      128
1629
+    #define Z3_OVERCURRENT    2000
1630
+    #define Z3_STALLCURRENT   1500
1631
+    #define Z3_MAX_VOLTAGE     127
1632
+    #define Z3_CHAIN_POS         0
1633
+  #endif
1634
+
1635
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1636
+    #define E0_MICROSTEPS      128
1637
+    #define E0_OVERCURRENT    2000
1638
+    #define E0_STALLCURRENT   1500
1639
+    #define E0_MAX_VOLTAGE     127
1640
+    #define E0_CHAIN_POS         0
1641
+  #endif
1642
+
1643
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1644
+    #define E1_MICROSTEPS      128
1645
+    #define E1_OVERCURRENT    2000
1646
+    #define E1_STALLCURRENT   1500
1647
+    #define E1_MAX_VOLTAGE     127
1648
+    #define E1_CHAIN_POS         0
1649
+  #endif
1650
+
1651
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1652
+    #define E2_MICROSTEPS      128
1653
+    #define E2_OVERCURRENT    2000
1654
+    #define E2_STALLCURRENT   1500
1655
+    #define E2_MAX_VOLTAGE     127
1656
+    #define E2_CHAIN_POS         0
1657
+  #endif
1658
+
1659
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1660
+    #define E3_MICROSTEPS      128
1661
+    #define E3_OVERCURRENT    2000
1662
+    #define E3_STALLCURRENT   1500
1663
+    #define E3_MAX_VOLTAGE     127
1664
+    #define E3_CHAIN_POS         0
1665
+  #endif
1666
+
1667
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1668
+    #define E4_MICROSTEPS      128
1669
+    #define E4_OVERCURRENT    2000
1670
+    #define E4_STALLCURRENT   1500
1671
+    #define E4_MAX_VOLTAGE     127
1672
+    #define E4_CHAIN_POS         0
1673
+  #endif
1674
+
1675
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1676
+    #define E5_MICROSTEPS      128
1677
+    #define E5_OVERCURRENT    2000
1678
+    #define E5_STALLCURRENT   1500
1679
+    #define E5_MAX_VOLTAGE     127
1680
+    #define E5_CHAIN_POS         0
1681
+  #endif
1603 1682
 
1604 1683
   /**
1605 1684
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1624,8 +1703,6 @@
1624 1703
     //#define L6470_STOP_ON_ERROR
1625 1704
   #endif
1626 1705
 
1627
-  #define L6470_CHITCHAT     // enable display of additional status info
1628
-
1629 1706
 #endif // L6470
1630 1707
 
1631 1708
 /**

+ 221
- 144
Marlin/src/config/examples/Formbot/T_Rex_2+/Configuration_adv.h View File

@@ -1241,57 +1241,83 @@
1241 1241
  */
1242 1242
 #if HAS_DRIVER(TMC26X)
1243 1243
 
1244
-  #define X_MAX_CURRENT     1000 // in mA
1245
-  #define X_SENSE_RESISTOR    91 // in mOhms
1246
-  #define X_MICROSTEPS        16 // number of microsteps
1244
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1245
+    #define X_MAX_CURRENT     1000  // (mA)
1246
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1247
+    #define X_MICROSTEPS        16  // Number of microsteps
1248
+  #endif
1247 1249
 
1248
-  #define X2_MAX_CURRENT    1000
1249
-  #define X2_SENSE_RESISTOR   91
1250
-  #define X2_MICROSTEPS       16
1250
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1251
+    #define X2_MAX_CURRENT    1000
1252
+    #define X2_SENSE_RESISTOR   91
1253
+    #define X2_MICROSTEPS       16
1254
+  #endif
1251 1255
 
1252
-  #define Y_MAX_CURRENT     1000
1253
-  #define Y_SENSE_RESISTOR    91
1254
-  #define Y_MICROSTEPS        16
1256
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1257
+    #define Y_MAX_CURRENT     1000
1258
+    #define Y_SENSE_RESISTOR    91
1259
+    #define Y_MICROSTEPS        16
1260
+  #endif
1255 1261
 
1256
-  #define Y2_MAX_CURRENT    1000
1257
-  #define Y2_SENSE_RESISTOR   91
1258
-  #define Y2_MICROSTEPS       16
1262
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1263
+    #define Y2_MAX_CURRENT    1000
1264
+    #define Y2_SENSE_RESISTOR   91
1265
+    #define Y2_MICROSTEPS       16
1266
+  #endif
1259 1267
 
1260
-  #define Z_MAX_CURRENT     1000
1261
-  #define Z_SENSE_RESISTOR    91
1262
-  #define Z_MICROSTEPS        16
1268
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1269
+    #define Z_MAX_CURRENT     1000
1270
+    #define Z_SENSE_RESISTOR    91
1271
+    #define Z_MICROSTEPS        16
1272
+  #endif
1263 1273
 
1264
-  #define Z2_MAX_CURRENT    1000
1265
-  #define Z2_SENSE_RESISTOR   91
1266
-  #define Z2_MICROSTEPS       16
1274
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1275
+    #define Z2_MAX_CURRENT    1000
1276
+    #define Z2_SENSE_RESISTOR   91
1277
+    #define Z2_MICROSTEPS       16
1278
+  #endif
1267 1279
 
1268
-  #define Z3_MAX_CURRENT    1000
1269
-  #define Z3_SENSE_RESISTOR   91
1270
-  #define Z3_MICROSTEPS       16
1280
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1281
+    #define Z3_MAX_CURRENT    1000
1282
+    #define Z3_SENSE_RESISTOR   91
1283
+    #define Z3_MICROSTEPS       16
1284
+  #endif
1271 1285
 
1272
-  #define E0_MAX_CURRENT    1000
1273
-  #define E0_SENSE_RESISTOR   91
1274
-  #define E0_MICROSTEPS       16
1286
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1287
+    #define E0_MAX_CURRENT    1000
1288
+    #define E0_SENSE_RESISTOR   91
1289
+    #define E0_MICROSTEPS       16
1290
+  #endif
1275 1291
 
1276
-  #define E1_MAX_CURRENT    1000
1277
-  #define E1_SENSE_RESISTOR   91
1278
-  #define E1_MICROSTEPS       16
1292
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1293
+    #define E1_MAX_CURRENT    1000
1294
+    #define E1_SENSE_RESISTOR   91
1295
+    #define E1_MICROSTEPS       16
1296
+  #endif
1279 1297
 
1280
-  #define E2_MAX_CURRENT    1000
1281
-  #define E2_SENSE_RESISTOR   91
1282
-  #define E2_MICROSTEPS       16
1298
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1299
+    #define E2_MAX_CURRENT    1000
1300
+    #define E2_SENSE_RESISTOR   91
1301
+    #define E2_MICROSTEPS       16
1302
+  #endif
1283 1303
 
1284
-  #define E3_MAX_CURRENT    1000
1285
-  #define E3_SENSE_RESISTOR   91
1286
-  #define E3_MICROSTEPS       16
1304
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1305
+    #define E3_MAX_CURRENT    1000
1306
+    #define E3_SENSE_RESISTOR   91
1307
+    #define E3_MICROSTEPS       16
1308
+  #endif
1287 1309
 
1288
-  #define E4_MAX_CURRENT    1000
1289
-  #define E4_SENSE_RESISTOR   91
1290
-  #define E4_MICROSTEPS       16
1310
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1311
+    #define E4_MAX_CURRENT    1000
1312
+    #define E4_SENSE_RESISTOR   91
1313
+    #define E4_MICROSTEPS       16
1314
+  #endif
1291 1315
 
1292
-  #define E5_MAX_CURRENT    1000
1293
-  #define E5_SENSE_RESISTOR   91
1294
-  #define E5_MICROSTEPS       16
1316
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1317
+    #define E5_MAX_CURRENT    1000
1318
+    #define E5_SENSE_RESISTOR   91
1319
+    #define E5_MICROSTEPS       16
1320
+  #endif
1295 1321
 
1296 1322
 #endif // TMC26X
1297 1323
 
@@ -1318,44 +1344,70 @@
1318 1344
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1319 1345
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1320 1346
 
1321
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1322
-  #define X_MICROSTEPS        16  // 0..256
1347
+  #if AXIS_IS_TMC(X)
1348
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1349
+    #define X_MICROSTEPS   16  // 0..256
1350
+  #endif
1323 1351
 
1324
-  #define Y_CURRENT          800
1325
-  #define Y_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(X2)
1353
+    #define X2_CURRENT    800
1354
+    #define X2_MICROSTEPS  16
1355
+  #endif
1326 1356
 
1327
-  #define Z_CURRENT          800
1328
-  #define Z_MICROSTEPS        16
1357
+  #if AXIS_IS_TMC(Y)
1358
+    #define Y_CURRENT     800
1359
+    #define Y_MICROSTEPS   16
1360
+  #endif
1329 1361
 
1330
-  #define X2_CURRENT         800
1331
-  #define X2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Y2)
1363
+    #define Y2_CURRENT    800
1364
+    #define Y2_MICROSTEPS  16
1365
+  #endif
1332 1366
 
1333
-  #define Y2_CURRENT         800
1334
-  #define Y2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z)
1368
+    #define Z_CURRENT     800
1369
+    #define Z_MICROSTEPS   16
1370
+  #endif
1335 1371
 
1336
-  #define Z2_CURRENT         800
1337
-  #define Z2_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z2)
1373
+    #define Z2_CURRENT    800
1374
+    #define Z2_MICROSTEPS  16
1375
+  #endif
1338 1376
 
1339
-  #define Z3_CURRENT         800
1340
-  #define Z3_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(Z3)
1378
+    #define Z3_CURRENT    800
1379
+    #define Z3_MICROSTEPS  16
1380
+  #endif
1341 1381
 
1342
-  #define E0_CURRENT         800
1343
-  #define E0_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E0)
1383
+    #define E0_CURRENT    800
1384
+    #define E0_MICROSTEPS  16
1385
+  #endif
1344 1386
 
1345
-  #define E1_CURRENT         800
1346
-  #define E1_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E1)
1388
+    #define E1_CURRENT    800
1389
+    #define E1_MICROSTEPS  16
1390
+  #endif
1347 1391
 
1348
-  #define E2_CURRENT         800
1349
-  #define E2_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E2)
1393
+    #define E2_CURRENT    800
1394
+    #define E2_MICROSTEPS  16
1395
+  #endif
1350 1396
 
1351
-  #define E3_CURRENT         800
1352
-  #define E3_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E3)
1398
+    #define E3_CURRENT    800
1399
+    #define E3_MICROSTEPS  16
1400
+  #endif
1353 1401
 
1354
-  #define E4_CURRENT         800
1355
-  #define E4_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E4)
1403
+    #define E4_CURRENT    800
1404
+    #define E4_MICROSTEPS  16
1405
+  #endif
1356 1406
 
1357
-  #define E5_CURRENT         800
1358
-  #define E5_MICROSTEPS       16
1407
+  #if AXIS_IS_TMC(E5)
1408
+    #define E5_CURRENT    800
1409
+    #define E5_MICROSTEPS  16
1410
+  #endif
1359 1411
 
1360 1412
   /**
1361 1413
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1525,84 +1577,111 @@
1525 1577
  */
1526 1578
 #if HAS_DRIVER(L6470)
1527 1579
 
1528
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1529
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1530
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1531
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1532
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1533
-
1534
-  #define X2_MICROSTEPS      128
1535
-  #define X2_OVERCURRENT    2000
1536
-  #define X2_STALLCURRENT   1500
1537
-  #define X2_MAX_VOLTAGE     127
1538
-  #define X2_CHAIN_POS         0
1539
-
1540
-  #define Y_MICROSTEPS       128
1541
-  #define Y_OVERCURRENT     2000
1542
-  #define Y_STALLCURRENT    1500
1543
-  #define Y_MAX_VOLTAGE      127
1544
-  #define Y_CHAIN_POS          0
1545
-
1546
-  #define Y2_MICROSTEPS      128
1547
-  #define Y2_OVERCURRENT    2000
1548
-  #define Y2_STALLCURRENT   1500
1549
-  #define Y2_MAX_VOLTAGE     127
1550
-  #define Y2_CHAIN_POS         0
1551
-
1552
-  #define Z_MICROSTEPS       128
1553
-  #define Z_OVERCURRENT     2000
1554
-  #define Z_STALLCURRENT    1500
1555
-  #define Z_MAX_VOLTAGE      127
1556
-  #define Z_CHAIN_POS          0
1557
-
1558
-  #define Z2_MICROSTEPS      128
1559
-  #define Z2_OVERCURRENT    2000
1560
-  #define Z2_STALLCURRENT   1500
1561
-  #define Z2_MAX_VOLTAGE     127
1562
-  #define Z2_CHAIN_POS         0
1563
-
1564
-  #define Z3_MICROSTEPS      128
1565
-  #define Z3_OVERCURRENT    2000
1566
-  #define Z3_STALLCURRENT   1500
1567
-  #define Z3_MAX_VOLTAGE     127
1568
-  #define Z3_CHAIN_POS         0
1569
-
1570
-  #define E0_MICROSTEPS      128
1571
-  #define E0_OVERCURRENT    2000
1572
-  #define E0_STALLCURRENT   1500
1573
-  #define E0_MAX_VOLTAGE     127
1574
-  #define E0_CHAIN_POS         0
1575
-
1576
-  #define E1_MICROSTEPS      128
1577
-  #define E1_OVERCURRENT    2000
1578
-  #define E1_STALLCURRENT   1500
1579
-  #define E1_MAX_VOLTAGE     127
1580
-  #define E1_CHAIN_POS         0
1581
-
1582
-  #define E2_MICROSTEPS      128
1583
-  #define E2_OVERCURRENT    2000
1584
-  #define E2_STALLCURRENT   1500
1585
-  #define E2_MAX_VOLTAGE     127
1586
-  #define E2_CHAIN_POS         0
1587
-
1588
-  #define E3_MICROSTEPS      128
1589
-  #define E3_OVERCURRENT    2000
1590
-  #define E3_STALLCURRENT   1500
1591
-  #define E3_MAX_VOLTAGE     127
1592
-  #define E3_CHAIN_POS         0
1593
-
1594
-  #define E4_MICROSTEPS      128
1595
-  #define E4_OVERCURRENT    2000
1596
-  #define E4_STALLCURRENT   1500
1597
-  #define E4_MAX_VOLTAGE     127
1598
-  #define E4_CHAIN_POS         0
1599
-
1600
-  #define E5_MICROSTEPS      128
1601
-  #define E5_OVERCURRENT    2000
1602
-  #define E5_STALLCURRENT   1500
1603
-  #define E5_MAX_VOLTAGE     127
1604
-  #define E5_CHAIN_POS         0
1580
+  //#define L6470_CHITCHAT        // Display additional status info
1605 1581
 
1582
+  #if AXIS_DRIVER_TYPE_X(L6470)
1583
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1584
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1585
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1586
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1587
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1588
+  #endif
1589
+
1590
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1591
+    #define X2_MICROSTEPS      128
1592
+    #define X2_OVERCURRENT    2000
1593
+    #define X2_STALLCURRENT   1500
1594
+    #define X2_MAX_VOLTAGE     127
1595
+    #define X2_CHAIN_POS         0
1596
+  #endif
1597
+
1598
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1599
+    #define Y_MICROSTEPS       128
1600
+    #define Y_OVERCURRENT     2000
1601
+    #define Y_STALLCURRENT    1500
1602
+    #define Y_MAX_VOLTAGE      127
1603
+    #define Y_CHAIN_POS          0
1604
+  #endif
1605
+
1606
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1607
+    #define Y2_MICROSTEPS      128
1608
+    #define Y2_OVERCURRENT    2000
1609
+    #define Y2_STALLCURRENT   1500
1610
+    #define Y2_MAX_VOLTAGE     127
1611
+    #define Y2_CHAIN_POS         0
1612
+  #endif
1613
+
1614
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1615
+    #define Z_MICROSTEPS       128
1616
+    #define Z_OVERCURRENT     2000
1617
+    #define Z_STALLCURRENT    1500
1618
+    #define Z_MAX_VOLTAGE      127
1619
+    #define Z_CHAIN_POS          0
1620
+  #endif
1621
+
1622
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1623
+    #define Z2_MICROSTEPS      128
1624
+    #define Z2_OVERCURRENT    2000
1625
+    #define Z2_STALLCURRENT   1500
1626
+    #define Z2_MAX_VOLTAGE     127
1627
+    #define Z2_CHAIN_POS         0
1628
+  #endif
1629
+
1630
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1631
+    #define Z3_MICROSTEPS      128
1632
+    #define Z3_OVERCURRENT    2000
1633
+    #define Z3_STALLCURRENT   1500
1634
+    #define Z3_MAX_VOLTAGE     127
1635
+    #define Z3_CHAIN_POS         0
1636
+  #endif
1637
+
1638
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1639
+    #define E0_MICROSTEPS      128
1640
+    #define E0_OVERCURRENT    2000
1641
+    #define E0_STALLCURRENT   1500
1642
+    #define E0_MAX_VOLTAGE     127
1643
+    #define E0_CHAIN_POS         0
1644
+  #endif
1645
+
1646
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1647
+    #define E1_MICROSTEPS      128
1648
+    #define E1_OVERCURRENT    2000
1649
+    #define E1_STALLCURRENT   1500
1650
+    #define E1_MAX_VOLTAGE     127
1651
+    #define E1_CHAIN_POS         0
1652
+  #endif
1653
+
1654
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1655
+    #define E2_MICROSTEPS      128
1656
+    #define E2_OVERCURRENT    2000
1657
+    #define E2_STALLCURRENT   1500
1658
+    #define E2_MAX_VOLTAGE     127
1659
+    #define E2_CHAIN_POS         0
1660
+  #endif
1661
+
1662
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1663
+    #define E3_MICROSTEPS      128
1664
+    #define E3_OVERCURRENT    2000
1665
+    #define E3_STALLCURRENT   1500
1666
+    #define E3_MAX_VOLTAGE     127
1667
+    #define E3_CHAIN_POS         0
1668
+  #endif
1669
+
1670
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1671
+    #define E4_MICROSTEPS      128
1672
+    #define E4_OVERCURRENT    2000
1673
+    #define E4_STALLCURRENT   1500
1674
+    #define E4_MAX_VOLTAGE     127
1675
+    #define E4_CHAIN_POS         0
1676
+  #endif
1677
+
1678
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1679
+    #define E5_MICROSTEPS      128
1680
+    #define E5_OVERCURRENT    2000
1681
+    #define E5_STALLCURRENT   1500
1682
+    #define E5_MAX_VOLTAGE     127
1683
+    #define E5_CHAIN_POS         0
1684
+  #endif
1606 1685
 
1607 1686
   /**
1608 1687
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1627,8 +1706,6 @@
1627 1706
     //#define L6470_STOP_ON_ERROR
1628 1707
   #endif
1629 1708
 
1630
-  #define L6470_CHITCHAT     // enable display of additional status info
1631
-
1632 1709
 #endif // L6470
1633 1710
 
1634 1711
 /**

+ 221
- 144
Marlin/src/config/examples/Formbot/T_Rex_3/Configuration_adv.h View File

@@ -1241,57 +1241,83 @@
1241 1241
  */
1242 1242
 #if HAS_DRIVER(TMC26X)
1243 1243
 
1244
-  #define X_MAX_CURRENT     1000 // in mA
1245
-  #define X_SENSE_RESISTOR    91 // in mOhms
1246
-  #define X_MICROSTEPS        16 // number of microsteps
1244
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1245
+    #define X_MAX_CURRENT     1000  // (mA)
1246
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1247
+    #define X_MICROSTEPS        16  // Number of microsteps
1248
+  #endif
1247 1249
 
1248
-  #define X2_MAX_CURRENT    1000
1249
-  #define X2_SENSE_RESISTOR   91
1250
-  #define X2_MICROSTEPS       16
1250
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1251
+    #define X2_MAX_CURRENT    1000
1252
+    #define X2_SENSE_RESISTOR   91
1253
+    #define X2_MICROSTEPS       16
1254
+  #endif
1251 1255
 
1252
-  #define Y_MAX_CURRENT     1000
1253
-  #define Y_SENSE_RESISTOR    91
1254
-  #define Y_MICROSTEPS        16
1256
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1257
+    #define Y_MAX_CURRENT     1000
1258
+    #define Y_SENSE_RESISTOR    91
1259
+    #define Y_MICROSTEPS        16
1260
+  #endif
1255 1261
 
1256
-  #define Y2_MAX_CURRENT    1000
1257
-  #define Y2_SENSE_RESISTOR   91
1258
-  #define Y2_MICROSTEPS       16
1262
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1263
+    #define Y2_MAX_CURRENT    1000
1264
+    #define Y2_SENSE_RESISTOR   91
1265
+    #define Y2_MICROSTEPS       16
1266
+  #endif
1259 1267
 
1260
-  #define Z_MAX_CURRENT     1000
1261
-  #define Z_SENSE_RESISTOR    91
1262
-  #define Z_MICROSTEPS        16
1268
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1269
+    #define Z_MAX_CURRENT     1000
1270
+    #define Z_SENSE_RESISTOR    91
1271
+    #define Z_MICROSTEPS        16
1272
+  #endif
1263 1273
 
1264
-  #define Z2_MAX_CURRENT    1000
1265
-  #define Z2_SENSE_RESISTOR   91
1266
-  #define Z2_MICROSTEPS       16
1274
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1275
+    #define Z2_MAX_CURRENT    1000
1276
+    #define Z2_SENSE_RESISTOR   91
1277
+    #define Z2_MICROSTEPS       16
1278
+  #endif
1267 1279
 
1268
-  #define Z3_MAX_CURRENT    1000
1269
-  #define Z3_SENSE_RESISTOR   91
1270
-  #define Z3_MICROSTEPS       16
1280
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1281
+    #define Z3_MAX_CURRENT    1000
1282
+    #define Z3_SENSE_RESISTOR   91
1283
+    #define Z3_MICROSTEPS       16
1284
+  #endif
1271 1285
 
1272
-  #define E0_MAX_CURRENT    1000
1273
-  #define E0_SENSE_RESISTOR   91
1274
-  #define E0_MICROSTEPS       16
1286
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1287
+    #define E0_MAX_CURRENT    1000
1288
+    #define E0_SENSE_RESISTOR   91
1289
+    #define E0_MICROSTEPS       16
1290
+  #endif
1275 1291
 
1276
-  #define E1_MAX_CURRENT    1000
1277
-  #define E1_SENSE_RESISTOR   91
1278
-  #define E1_MICROSTEPS       16
1292
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1293
+    #define E1_MAX_CURRENT    1000
1294
+    #define E1_SENSE_RESISTOR   91
1295
+    #define E1_MICROSTEPS       16
1296
+  #endif
1279 1297
 
1280
-  #define E2_MAX_CURRENT    1000
1281
-  #define E2_SENSE_RESISTOR   91
1282
-  #define E2_MICROSTEPS       16
1298
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1299
+    #define E2_MAX_CURRENT    1000
1300
+    #define E2_SENSE_RESISTOR   91
1301
+    #define E2_MICROSTEPS       16
1302
+  #endif
1283 1303
 
1284
-  #define E3_MAX_CURRENT    1000
1285
-  #define E3_SENSE_RESISTOR   91
1286
-  #define E3_MICROSTEPS       16
1304
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1305
+    #define E3_MAX_CURRENT    1000
1306
+    #define E3_SENSE_RESISTOR   91
1307
+    #define E3_MICROSTEPS       16
1308
+  #endif
1287 1309
 
1288
-  #define E4_MAX_CURRENT    1000
1289
-  #define E4_SENSE_RESISTOR   91
1290
-  #define E4_MICROSTEPS       16
1310
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1311
+    #define E4_MAX_CURRENT    1000
1312
+    #define E4_SENSE_RESISTOR   91
1313
+    #define E4_MICROSTEPS       16
1314
+  #endif
1291 1315
 
1292
-  #define E5_MAX_CURRENT    1000
1293
-  #define E5_SENSE_RESISTOR   91
1294
-  #define E5_MICROSTEPS       16
1316
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1317
+    #define E5_MAX_CURRENT    1000
1318
+    #define E5_SENSE_RESISTOR   91
1319
+    #define E5_MICROSTEPS       16
1320
+  #endif
1295 1321
 
1296 1322
 #endif // TMC26X
1297 1323
 
@@ -1318,44 +1344,70 @@
1318 1344
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1319 1345
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1320 1346
 
1321
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1322
-  #define X_MICROSTEPS        16  // 0..256
1347
+  #if AXIS_IS_TMC(X)
1348
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1349
+    #define X_MICROSTEPS   16  // 0..256
1350
+  #endif
1323 1351
 
1324
-  #define Y_CURRENT          800
1325
-  #define Y_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(X2)
1353
+    #define X2_CURRENT    800
1354
+    #define X2_MICROSTEPS  16
1355
+  #endif
1326 1356
 
1327
-  #define Z_CURRENT          800
1328
-  #define Z_MICROSTEPS        16
1357
+  #if AXIS_IS_TMC(Y)
1358
+    #define Y_CURRENT     800
1359
+    #define Y_MICROSTEPS   16
1360
+  #endif
1329 1361
 
1330
-  #define X2_CURRENT         800
1331
-  #define X2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Y2)
1363
+    #define Y2_CURRENT    800
1364
+    #define Y2_MICROSTEPS  16
1365
+  #endif
1332 1366
 
1333
-  #define Y2_CURRENT         800
1334
-  #define Y2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z)
1368
+    #define Z_CURRENT     800
1369
+    #define Z_MICROSTEPS   16
1370
+  #endif
1335 1371
 
1336
-  #define Z2_CURRENT         800
1337
-  #define Z2_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z2)
1373
+    #define Z2_CURRENT    800
1374
+    #define Z2_MICROSTEPS  16
1375
+  #endif
1338 1376
 
1339
-  #define Z3_CURRENT         800
1340
-  #define Z3_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(Z3)
1378
+    #define Z3_CURRENT    800
1379
+    #define Z3_MICROSTEPS  16
1380
+  #endif
1341 1381
 
1342
-  #define E0_CURRENT         800
1343
-  #define E0_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E0)
1383
+    #define E0_CURRENT    800
1384
+    #define E0_MICROSTEPS  16
1385
+  #endif
1344 1386
 
1345
-  #define E1_CURRENT         800
1346
-  #define E1_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E1)
1388
+    #define E1_CURRENT    800
1389
+    #define E1_MICROSTEPS  16
1390
+  #endif
1347 1391
 
1348
-  #define E2_CURRENT         800
1349
-  #define E2_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E2)
1393
+    #define E2_CURRENT    800
1394
+    #define E2_MICROSTEPS  16
1395
+  #endif
1350 1396
 
1351
-  #define E3_CURRENT         800
1352
-  #define E3_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E3)
1398
+    #define E3_CURRENT    800
1399
+    #define E3_MICROSTEPS  16
1400
+  #endif
1353 1401
 
1354
-  #define E4_CURRENT         800
1355
-  #define E4_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E4)
1403
+    #define E4_CURRENT    800
1404
+    #define E4_MICROSTEPS  16
1405
+  #endif
1356 1406
 
1357
-  #define E5_CURRENT         800
1358
-  #define E5_MICROSTEPS       16
1407
+  #if AXIS_IS_TMC(E5)
1408
+    #define E5_CURRENT    800
1409
+    #define E5_MICROSTEPS  16
1410
+  #endif
1359 1411
 
1360 1412
   /**
1361 1413
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1525,84 +1577,111 @@
1525 1577
  */
1526 1578
 #if HAS_DRIVER(L6470)
1527 1579
 
1528
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1529
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1530
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1531
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1532
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1533
-
1534
-  #define X2_MICROSTEPS      128
1535
-  #define X2_OVERCURRENT    2000
1536
-  #define X2_STALLCURRENT   1500
1537
-  #define X2_MAX_VOLTAGE     127
1538
-  #define X2_CHAIN_POS         0
1539
-
1540
-  #define Y_MICROSTEPS       128
1541
-  #define Y_OVERCURRENT     2000
1542
-  #define Y_STALLCURRENT    1500
1543
-  #define Y_MAX_VOLTAGE      127
1544
-  #define Y_CHAIN_POS          0
1545
-
1546
-  #define Y2_MICROSTEPS      128
1547
-  #define Y2_OVERCURRENT    2000
1548
-  #define Y2_STALLCURRENT   1500
1549
-  #define Y2_MAX_VOLTAGE     127
1550
-  #define Y2_CHAIN_POS         0
1551
-
1552
-  #define Z_MICROSTEPS       128
1553
-  #define Z_OVERCURRENT     2000
1554
-  #define Z_STALLCURRENT    1500
1555
-  #define Z_MAX_VOLTAGE      127
1556
-  #define Z_CHAIN_POS          0
1557
-
1558
-  #define Z2_MICROSTEPS      128
1559
-  #define Z2_OVERCURRENT    2000
1560
-  #define Z2_STALLCURRENT   1500
1561
-  #define Z2_MAX_VOLTAGE     127
1562
-  #define Z2_CHAIN_POS         0
1563
-
1564
-  #define Z3_MICROSTEPS      128
1565
-  #define Z3_OVERCURRENT    2000
1566
-  #define Z3_STALLCURRENT   1500
1567
-  #define Z3_MAX_VOLTAGE     127
1568
-  #define Z3_CHAIN_POS         0
1569
-
1570
-  #define E0_MICROSTEPS      128
1571
-  #define E0_OVERCURRENT    2000
1572
-  #define E0_STALLCURRENT   1500
1573
-  #define E0_MAX_VOLTAGE     127
1574
-  #define E0_CHAIN_POS         0
1575
-
1576
-  #define E1_MICROSTEPS      128
1577
-  #define E1_OVERCURRENT    2000
1578
-  #define E1_STALLCURRENT   1500
1579
-  #define E1_MAX_VOLTAGE     127
1580
-  #define E1_CHAIN_POS         0
1581
-
1582
-  #define E2_MICROSTEPS      128
1583
-  #define E2_OVERCURRENT    2000
1584
-  #define E2_STALLCURRENT   1500
1585
-  #define E2_MAX_VOLTAGE     127
1586
-  #define E2_CHAIN_POS         0
1587
-
1588
-  #define E3_MICROSTEPS      128
1589
-  #define E3_OVERCURRENT    2000
1590
-  #define E3_STALLCURRENT   1500
1591
-  #define E3_MAX_VOLTAGE     127
1592
-  #define E3_CHAIN_POS         0
1593
-
1594
-  #define E4_MICROSTEPS      128
1595
-  #define E4_OVERCURRENT    2000
1596
-  #define E4_STALLCURRENT   1500
1597
-  #define E4_MAX_VOLTAGE     127
1598
-  #define E4_CHAIN_POS         0
1599
-
1600
-  #define E5_MICROSTEPS      128
1601
-  #define E5_OVERCURRENT    2000
1602
-  #define E5_STALLCURRENT   1500
1603
-  #define E5_MAX_VOLTAGE     127
1604
-  #define E5_CHAIN_POS         0
1580
+  //#define L6470_CHITCHAT        // Display additional status info
1605 1581
 
1582
+  #if AXIS_DRIVER_TYPE_X(L6470)
1583
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1584
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1585
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1586
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1587
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1588
+  #endif
1589
+
1590
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1591
+    #define X2_MICROSTEPS      128
1592
+    #define X2_OVERCURRENT    2000
1593
+    #define X2_STALLCURRENT   1500
1594
+    #define X2_MAX_VOLTAGE     127
1595
+    #define X2_CHAIN_POS         0
1596
+  #endif
1597
+
1598
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1599
+    #define Y_MICROSTEPS       128
1600
+    #define Y_OVERCURRENT     2000
1601
+    #define Y_STALLCURRENT    1500
1602
+    #define Y_MAX_VOLTAGE      127
1603
+    #define Y_CHAIN_POS          0
1604
+  #endif
1605
+
1606
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1607
+    #define Y2_MICROSTEPS      128
1608
+    #define Y2_OVERCURRENT    2000
1609
+    #define Y2_STALLCURRENT   1500
1610
+    #define Y2_MAX_VOLTAGE     127
1611
+    #define Y2_CHAIN_POS         0
1612
+  #endif
1613
+
1614
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1615
+    #define Z_MICROSTEPS       128
1616
+    #define Z_OVERCURRENT     2000
1617
+    #define Z_STALLCURRENT    1500
1618
+    #define Z_MAX_VOLTAGE      127
1619
+    #define Z_CHAIN_POS          0
1620
+  #endif
1621
+
1622
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1623
+    #define Z2_MICROSTEPS      128
1624
+    #define Z2_OVERCURRENT    2000
1625
+    #define Z2_STALLCURRENT   1500
1626
+    #define Z2_MAX_VOLTAGE     127
1627
+    #define Z2_CHAIN_POS         0
1628
+  #endif
1629
+
1630
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1631
+    #define Z3_MICROSTEPS      128
1632
+    #define Z3_OVERCURRENT    2000
1633
+    #define Z3_STALLCURRENT   1500
1634
+    #define Z3_MAX_VOLTAGE     127
1635
+    #define Z3_CHAIN_POS         0
1636
+  #endif
1637
+
1638
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1639
+    #define E0_MICROSTEPS      128
1640
+    #define E0_OVERCURRENT    2000
1641
+    #define E0_STALLCURRENT   1500
1642
+    #define E0_MAX_VOLTAGE     127
1643
+    #define E0_CHAIN_POS         0
1644
+  #endif
1645
+
1646
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1647
+    #define E1_MICROSTEPS      128
1648
+    #define E1_OVERCURRENT    2000
1649
+    #define E1_STALLCURRENT   1500
1650
+    #define E1_MAX_VOLTAGE     127
1651
+    #define E1_CHAIN_POS         0
1652
+  #endif
1653
+
1654
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1655
+    #define E2_MICROSTEPS      128
1656
+    #define E2_OVERCURRENT    2000
1657
+    #define E2_STALLCURRENT   1500
1658
+    #define E2_MAX_VOLTAGE     127
1659
+    #define E2_CHAIN_POS         0
1660
+  #endif
1661
+
1662
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1663
+    #define E3_MICROSTEPS      128
1664
+    #define E3_OVERCURRENT    2000
1665
+    #define E3_STALLCURRENT   1500
1666
+    #define E3_MAX_VOLTAGE     127
1667
+    #define E3_CHAIN_POS         0
1668
+  #endif
1669
+
1670
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1671
+    #define E4_MICROSTEPS      128
1672
+    #define E4_OVERCURRENT    2000
1673
+    #define E4_STALLCURRENT   1500
1674
+    #define E4_MAX_VOLTAGE     127
1675
+    #define E4_CHAIN_POS         0
1676
+  #endif
1677
+
1678
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1679
+    #define E5_MICROSTEPS      128
1680
+    #define E5_OVERCURRENT    2000
1681
+    #define E5_STALLCURRENT   1500
1682
+    #define E5_MAX_VOLTAGE     127
1683
+    #define E5_CHAIN_POS         0
1684
+  #endif
1606 1685
 
1607 1686
   /**
1608 1687
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1627,8 +1706,6 @@
1627 1706
     //#define L6470_STOP_ON_ERROR
1628 1707
   #endif
1629 1708
 
1630
-  #define L6470_CHITCHAT     // enable display of additional status info
1631
-
1632 1709
 #endif // L6470
1633 1710
 
1634 1711
 /**

+ 221
- 144
Marlin/src/config/examples/Geeetech/MeCreator2/Configuration_adv.h View File

@@ -1237,57 +1237,83 @@
1237 1237
  */
1238 1238
 #if HAS_DRIVER(TMC26X)
1239 1239
 
1240
-  #define X_MAX_CURRENT     1000 // in mA
1241
-  #define X_SENSE_RESISTOR    91 // in mOhms
1242
-  #define X_MICROSTEPS        16 // number of microsteps
1240
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1241
+    #define X_MAX_CURRENT     1000  // (mA)
1242
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1243
+    #define X_MICROSTEPS        16  // Number of microsteps
1244
+  #endif
1243 1245
 
1244
-  #define X2_MAX_CURRENT    1000
1245
-  #define X2_SENSE_RESISTOR   91
1246
-  #define X2_MICROSTEPS       16
1246
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1247
+    #define X2_MAX_CURRENT    1000
1248
+    #define X2_SENSE_RESISTOR   91
1249
+    #define X2_MICROSTEPS       16
1250
+  #endif
1247 1251
 
1248
-  #define Y_MAX_CURRENT     1000
1249
-  #define Y_SENSE_RESISTOR    91
1250
-  #define Y_MICROSTEPS        16
1252
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1253
+    #define Y_MAX_CURRENT     1000
1254
+    #define Y_SENSE_RESISTOR    91
1255
+    #define Y_MICROSTEPS        16
1256
+  #endif
1251 1257
 
1252
-  #define Y2_MAX_CURRENT    1000
1253
-  #define Y2_SENSE_RESISTOR   91
1254
-  #define Y2_MICROSTEPS       16
1258
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1259
+    #define Y2_MAX_CURRENT    1000
1260
+    #define Y2_SENSE_RESISTOR   91
1261
+    #define Y2_MICROSTEPS       16
1262
+  #endif
1255 1263
 
1256
-  #define Z_MAX_CURRENT     1000
1257
-  #define Z_SENSE_RESISTOR    91
1258
-  #define Z_MICROSTEPS        16
1264
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1265
+    #define Z_MAX_CURRENT     1000
1266
+    #define Z_SENSE_RESISTOR    91
1267
+    #define Z_MICROSTEPS        16
1268
+  #endif
1259 1269
 
1260
-  #define Z2_MAX_CURRENT    1000
1261
-  #define Z2_SENSE_RESISTOR   91
1262
-  #define Z2_MICROSTEPS       16
1270
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1271
+    #define Z2_MAX_CURRENT    1000
1272
+    #define Z2_SENSE_RESISTOR   91
1273
+    #define Z2_MICROSTEPS       16
1274
+  #endif
1263 1275
 
1264
-  #define Z3_MAX_CURRENT    1000
1265
-  #define Z3_SENSE_RESISTOR   91
1266
-  #define Z3_MICROSTEPS       16
1276
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1277
+    #define Z3_MAX_CURRENT    1000
1278
+    #define Z3_SENSE_RESISTOR   91
1279
+    #define Z3_MICROSTEPS       16
1280
+  #endif
1267 1281
 
1268
-  #define E0_MAX_CURRENT    1000
1269
-  #define E0_SENSE_RESISTOR   91
1270
-  #define E0_MICROSTEPS       16
1282
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1283
+    #define E0_MAX_CURRENT    1000
1284
+    #define E0_SENSE_RESISTOR   91
1285
+    #define E0_MICROSTEPS       16
1286
+  #endif
1271 1287
 
1272
-  #define E1_MAX_CURRENT    1000
1273
-  #define E1_SENSE_RESISTOR   91
1274
-  #define E1_MICROSTEPS       16
1288
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1289
+    #define E1_MAX_CURRENT    1000
1290
+    #define E1_SENSE_RESISTOR   91
1291
+    #define E1_MICROSTEPS       16
1292
+  #endif
1275 1293
 
1276
-  #define E2_MAX_CURRENT    1000
1277
-  #define E2_SENSE_RESISTOR   91
1278
-  #define E2_MICROSTEPS       16
1294
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1295
+    #define E2_MAX_CURRENT    1000
1296
+    #define E2_SENSE_RESISTOR   91
1297
+    #define E2_MICROSTEPS       16
1298
+  #endif
1279 1299
 
1280
-  #define E3_MAX_CURRENT    1000
1281
-  #define E3_SENSE_RESISTOR   91
1282
-  #define E3_MICROSTEPS       16
1300
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1301
+    #define E3_MAX_CURRENT    1000
1302
+    #define E3_SENSE_RESISTOR   91
1303
+    #define E3_MICROSTEPS       16
1304
+  #endif
1283 1305
 
1284
-  #define E4_MAX_CURRENT    1000
1285
-  #define E4_SENSE_RESISTOR   91
1286
-  #define E4_MICROSTEPS       16
1306
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1307
+    #define E4_MAX_CURRENT    1000
1308
+    #define E4_SENSE_RESISTOR   91
1309
+    #define E4_MICROSTEPS       16
1310
+  #endif
1287 1311
 
1288
-  #define E5_MAX_CURRENT    1000
1289
-  #define E5_SENSE_RESISTOR   91
1290
-  #define E5_MICROSTEPS       16
1312
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1313
+    #define E5_MAX_CURRENT    1000
1314
+    #define E5_SENSE_RESISTOR   91
1315
+    #define E5_MICROSTEPS       16
1316
+  #endif
1291 1317
 
1292 1318
 #endif // TMC26X
1293 1319
 
@@ -1314,44 +1340,70 @@
1314 1340
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1315 1341
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1316 1342
 
1317
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1318
-  #define X_MICROSTEPS        16  // 0..256
1343
+  #if AXIS_IS_TMC(X)
1344
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1345
+    #define X_MICROSTEPS   16  // 0..256
1346
+  #endif
1319 1347
 
1320
-  #define Y_CURRENT          800
1321
-  #define Y_MICROSTEPS        16
1348
+  #if AXIS_IS_TMC(X2)
1349
+    #define X2_CURRENT    800
1350
+    #define X2_MICROSTEPS  16
1351
+  #endif
1322 1352
 
1323
-  #define Z_CURRENT          800
1324
-  #define Z_MICROSTEPS        16
1353
+  #if AXIS_IS_TMC(Y)
1354
+    #define Y_CURRENT     800
1355
+    #define Y_MICROSTEPS   16
1356
+  #endif
1325 1357
 
1326
-  #define X2_CURRENT         800
1327
-  #define X2_MICROSTEPS       16
1358
+  #if AXIS_IS_TMC(Y2)
1359
+    #define Y2_CURRENT    800
1360
+    #define Y2_MICROSTEPS  16
1361
+  #endif
1328 1362
 
1329
-  #define Y2_CURRENT         800
1330
-  #define Y2_MICROSTEPS       16
1363
+  #if AXIS_IS_TMC(Z)
1364
+    #define Z_CURRENT     800
1365
+    #define Z_MICROSTEPS   16
1366
+  #endif
1331 1367
 
1332
-  #define Z2_CURRENT         800
1333
-  #define Z2_MICROSTEPS       16
1368
+  #if AXIS_IS_TMC(Z2)
1369
+    #define Z2_CURRENT    800
1370
+    #define Z2_MICROSTEPS  16
1371
+  #endif
1334 1372
 
1335
-  #define Z3_CURRENT         800
1336
-  #define Z3_MICROSTEPS       16
1373
+  #if AXIS_IS_TMC(Z3)
1374
+    #define Z3_CURRENT    800
1375
+    #define Z3_MICROSTEPS  16
1376
+  #endif
1337 1377
 
1338
-  #define E0_CURRENT         800
1339
-  #define E0_MICROSTEPS       16
1378
+  #if AXIS_IS_TMC(E0)
1379
+    #define E0_CURRENT    800
1380
+    #define E0_MICROSTEPS  16
1381
+  #endif
1340 1382
 
1341
-  #define E1_CURRENT         800
1342
-  #define E1_MICROSTEPS       16
1383
+  #if AXIS_IS_TMC(E1)
1384
+    #define E1_CURRENT    800
1385
+    #define E1_MICROSTEPS  16
1386
+  #endif
1343 1387
 
1344
-  #define E2_CURRENT         800
1345
-  #define E2_MICROSTEPS       16
1388
+  #if AXIS_IS_TMC(E2)
1389
+    #define E2_CURRENT    800
1390
+    #define E2_MICROSTEPS  16
1391
+  #endif
1346 1392
 
1347
-  #define E3_CURRENT         800
1348
-  #define E3_MICROSTEPS       16
1393
+  #if AXIS_IS_TMC(E3)
1394
+    #define E3_CURRENT    800
1395
+    #define E3_MICROSTEPS  16
1396
+  #endif
1349 1397
 
1350
-  #define E4_CURRENT         800
1351
-  #define E4_MICROSTEPS       16
1398
+  #if AXIS_IS_TMC(E4)
1399
+    #define E4_CURRENT    800
1400
+    #define E4_MICROSTEPS  16
1401
+  #endif
1352 1402
 
1353
-  #define E5_CURRENT         800
1354
-  #define E5_MICROSTEPS       16
1403
+  #if AXIS_IS_TMC(E5)
1404
+    #define E5_CURRENT    800
1405
+    #define E5_MICROSTEPS  16
1406
+  #endif
1355 1407
 
1356 1408
   /**
1357 1409
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1521,84 +1573,111 @@
1521 1573
  */
1522 1574
 #if HAS_DRIVER(L6470)
1523 1575
 
1524
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1525
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1526
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1527
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1528
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1529
-
1530
-  #define X2_MICROSTEPS      128
1531
-  #define X2_OVERCURRENT    2000
1532
-  #define X2_STALLCURRENT   1500
1533
-  #define X2_MAX_VOLTAGE     127
1534
-  #define X2_CHAIN_POS         0
1535
-
1536
-  #define Y_MICROSTEPS       128
1537
-  #define Y_OVERCURRENT     2000
1538
-  #define Y_STALLCURRENT    1500
1539
-  #define Y_MAX_VOLTAGE      127
1540
-  #define Y_CHAIN_POS          0
1541
-
1542
-  #define Y2_MICROSTEPS      128
1543
-  #define Y2_OVERCURRENT    2000
1544
-  #define Y2_STALLCURRENT   1500
1545
-  #define Y2_MAX_VOLTAGE     127
1546
-  #define Y2_CHAIN_POS         0
1547
-
1548
-  #define Z_MICROSTEPS       128
1549
-  #define Z_OVERCURRENT     2000
1550
-  #define Z_STALLCURRENT    1500
1551
-  #define Z_MAX_VOLTAGE      127
1552
-  #define Z_CHAIN_POS          0
1553
-
1554
-  #define Z2_MICROSTEPS      128
1555
-  #define Z2_OVERCURRENT    2000
1556
-  #define Z2_STALLCURRENT   1500
1557
-  #define Z2_MAX_VOLTAGE     127
1558
-  #define Z2_CHAIN_POS         0
1559
-
1560
-  #define Z3_MICROSTEPS      128
1561
-  #define Z3_OVERCURRENT    2000
1562
-  #define Z3_STALLCURRENT   1500
1563
-  #define Z3_MAX_VOLTAGE     127
1564
-  #define Z3_CHAIN_POS         0
1565
-
1566
-  #define E0_MICROSTEPS      128
1567
-  #define E0_OVERCURRENT    2000
1568
-  #define E0_STALLCURRENT   1500
1569
-  #define E0_MAX_VOLTAGE     127
1570
-  #define E0_CHAIN_POS         0
1571
-
1572
-  #define E1_MICROSTEPS      128
1573
-  #define E1_OVERCURRENT    2000
1574
-  #define E1_STALLCURRENT   1500
1575
-  #define E1_MAX_VOLTAGE     127
1576
-  #define E1_CHAIN_POS         0
1577
-
1578
-  #define E2_MICROSTEPS      128
1579
-  #define E2_OVERCURRENT    2000
1580
-  #define E2_STALLCURRENT   1500
1581
-  #define E2_MAX_VOLTAGE     127
1582
-  #define E2_CHAIN_POS         0
1583
-
1584
-  #define E3_MICROSTEPS      128
1585
-  #define E3_OVERCURRENT    2000
1586
-  #define E3_STALLCURRENT   1500
1587
-  #define E3_MAX_VOLTAGE     127
1588
-  #define E3_CHAIN_POS         0
1589
-
1590
-  #define E4_MICROSTEPS      128
1591
-  #define E4_OVERCURRENT    2000
1592
-  #define E4_STALLCURRENT   1500
1593
-  #define E4_MAX_VOLTAGE     127
1594
-  #define E4_CHAIN_POS         0
1595
-
1596
-  #define E5_MICROSTEPS      128
1597
-  #define E5_OVERCURRENT    2000
1598
-  #define E5_STALLCURRENT   1500
1599
-  #define E5_MAX_VOLTAGE     127
1600
-  #define E5_CHAIN_POS         0
1576
+  //#define L6470_CHITCHAT        // Display additional status info
1601 1577
 
1578
+  #if AXIS_DRIVER_TYPE_X(L6470)
1579
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1580
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1581
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1582
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1583
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1584
+  #endif
1585
+
1586
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1587
+    #define X2_MICROSTEPS      128
1588
+    #define X2_OVERCURRENT    2000
1589
+    #define X2_STALLCURRENT   1500
1590
+    #define X2_MAX_VOLTAGE     127
1591
+    #define X2_CHAIN_POS         0
1592
+  #endif
1593
+
1594
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1595
+    #define Y_MICROSTEPS       128
1596
+    #define Y_OVERCURRENT     2000
1597
+    #define Y_STALLCURRENT    1500
1598
+    #define Y_MAX_VOLTAGE      127
1599
+    #define Y_CHAIN_POS          0
1600
+  #endif
1601
+
1602
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1603
+    #define Y2_MICROSTEPS      128
1604
+    #define Y2_OVERCURRENT    2000
1605
+    #define Y2_STALLCURRENT   1500
1606
+    #define Y2_MAX_VOLTAGE     127
1607
+    #define Y2_CHAIN_POS         0
1608
+  #endif
1609
+
1610
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1611
+    #define Z_MICROSTEPS       128
1612
+    #define Z_OVERCURRENT     2000
1613
+    #define Z_STALLCURRENT    1500
1614
+    #define Z_MAX_VOLTAGE      127
1615
+    #define Z_CHAIN_POS          0
1616
+  #endif
1617
+
1618
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1619
+    #define Z2_MICROSTEPS      128
1620
+    #define Z2_OVERCURRENT    2000
1621
+    #define Z2_STALLCURRENT   1500
1622
+    #define Z2_MAX_VOLTAGE     127
1623
+    #define Z2_CHAIN_POS         0
1624
+  #endif
1625
+
1626
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1627
+    #define Z3_MICROSTEPS      128
1628
+    #define Z3_OVERCURRENT    2000
1629
+    #define Z3_STALLCURRENT   1500
1630
+    #define Z3_MAX_VOLTAGE     127
1631
+    #define Z3_CHAIN_POS         0
1632
+  #endif
1633
+
1634
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1635
+    #define E0_MICROSTEPS      128
1636
+    #define E0_OVERCURRENT    2000
1637
+    #define E0_STALLCURRENT   1500
1638
+    #define E0_MAX_VOLTAGE     127
1639
+    #define E0_CHAIN_POS         0
1640
+  #endif
1641
+
1642
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1643
+    #define E1_MICROSTEPS      128
1644
+    #define E1_OVERCURRENT    2000
1645
+    #define E1_STALLCURRENT   1500
1646
+    #define E1_MAX_VOLTAGE     127
1647
+    #define E1_CHAIN_POS         0
1648
+  #endif
1649
+
1650
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1651
+    #define E2_MICROSTEPS      128
1652
+    #define E2_OVERCURRENT    2000
1653
+    #define E2_STALLCURRENT   1500
1654
+    #define E2_MAX_VOLTAGE     127
1655
+    #define E2_CHAIN_POS         0
1656
+  #endif
1657
+
1658
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1659
+    #define E3_MICROSTEPS      128
1660
+    #define E3_OVERCURRENT    2000
1661
+    #define E3_STALLCURRENT   1500
1662
+    #define E3_MAX_VOLTAGE     127
1663
+    #define E3_CHAIN_POS         0
1664
+  #endif
1665
+
1666
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1667
+    #define E4_MICROSTEPS      128
1668
+    #define E4_OVERCURRENT    2000
1669
+    #define E4_STALLCURRENT   1500
1670
+    #define E4_MAX_VOLTAGE     127
1671
+    #define E4_CHAIN_POS         0
1672
+  #endif
1673
+
1674
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1675
+    #define E5_MICROSTEPS      128
1676
+    #define E5_OVERCURRENT    2000
1677
+    #define E5_STALLCURRENT   1500
1678
+    #define E5_MAX_VOLTAGE     127
1679
+    #define E5_CHAIN_POS         0
1680
+  #endif
1602 1681
 
1603 1682
   /**
1604 1683
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1623,8 +1702,6 @@
1623 1702
     //#define L6470_STOP_ON_ERROR
1624 1703
   #endif
1625 1704
 
1626
-  #define L6470_CHITCHAT     // enable display of additional status info
1627
-
1628 1705
 #endif // L6470
1629 1706
 
1630 1707
 /**

+ 221
- 144
Marlin/src/config/examples/Geeetech/Prusa i3 Pro C/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/Geeetech/Prusa i3 Pro W/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/Infitary/i3-M508/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/JGAurora/A5/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/MakerParts/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/Malyan/M150/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/Malyan/M200/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/Micromake/C1/enhanced/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/Mks/Robin/Configuration_adv.h View File

@@ -1237,57 +1237,83 @@
1237 1237
  */
1238 1238
 #if HAS_DRIVER(TMC26X)
1239 1239
 
1240
-  #define X_MAX_CURRENT     1000 // in mA
1241
-  #define X_SENSE_RESISTOR    91 // in mOhms
1242
-  #define X_MICROSTEPS        16 // number of microsteps
1240
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1241
+    #define X_MAX_CURRENT     1000  // (mA)
1242
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1243
+    #define X_MICROSTEPS        16  // Number of microsteps
1244
+  #endif
1243 1245
 
1244
-  #define X2_MAX_CURRENT    1000
1245
-  #define X2_SENSE_RESISTOR   91
1246
-  #define X2_MICROSTEPS       16
1246
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1247
+    #define X2_MAX_CURRENT    1000
1248
+    #define X2_SENSE_RESISTOR   91
1249
+    #define X2_MICROSTEPS       16
1250
+  #endif
1247 1251
 
1248
-  #define Y_MAX_CURRENT     1000
1249
-  #define Y_SENSE_RESISTOR    91
1250
-  #define Y_MICROSTEPS        16
1252
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1253
+    #define Y_MAX_CURRENT     1000
1254
+    #define Y_SENSE_RESISTOR    91
1255
+    #define Y_MICROSTEPS        16
1256
+  #endif
1251 1257
 
1252
-  #define Y2_MAX_CURRENT    1000
1253
-  #define Y2_SENSE_RESISTOR   91
1254
-  #define Y2_MICROSTEPS       16
1258
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1259
+    #define Y2_MAX_CURRENT    1000
1260
+    #define Y2_SENSE_RESISTOR   91
1261
+    #define Y2_MICROSTEPS       16
1262
+  #endif
1255 1263
 
1256
-  #define Z_MAX_CURRENT     1000
1257
-  #define Z_SENSE_RESISTOR    91
1258
-  #define Z_MICROSTEPS        16
1264
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1265
+    #define Z_MAX_CURRENT     1000
1266
+    #define Z_SENSE_RESISTOR    91
1267
+    #define Z_MICROSTEPS        16
1268
+  #endif
1259 1269
 
1260
-  #define Z2_MAX_CURRENT    1000
1261
-  #define Z2_SENSE_RESISTOR   91
1262
-  #define Z2_MICROSTEPS       16
1270
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1271
+    #define Z2_MAX_CURRENT    1000
1272
+    #define Z2_SENSE_RESISTOR   91
1273
+    #define Z2_MICROSTEPS       16
1274
+  #endif
1263 1275
 
1264
-  #define Z3_MAX_CURRENT    1000
1265
-  #define Z3_SENSE_RESISTOR   91
1266
-  #define Z3_MICROSTEPS       16
1276
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1277
+    #define Z3_MAX_CURRENT    1000
1278
+    #define Z3_SENSE_RESISTOR   91
1279
+    #define Z3_MICROSTEPS       16
1280
+  #endif
1267 1281
 
1268
-  #define E0_MAX_CURRENT    1000
1269
-  #define E0_SENSE_RESISTOR   91
1270
-  #define E0_MICROSTEPS       16
1282
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1283
+    #define E0_MAX_CURRENT    1000
1284
+    #define E0_SENSE_RESISTOR   91
1285
+    #define E0_MICROSTEPS       16
1286
+  #endif
1271 1287
 
1272
-  #define E1_MAX_CURRENT    1000
1273
-  #define E1_SENSE_RESISTOR   91
1274
-  #define E1_MICROSTEPS       16
1288
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1289
+    #define E1_MAX_CURRENT    1000
1290
+    #define E1_SENSE_RESISTOR   91
1291
+    #define E1_MICROSTEPS       16
1292
+  #endif
1275 1293
 
1276
-  #define E2_MAX_CURRENT    1000
1277
-  #define E2_SENSE_RESISTOR   91
1278
-  #define E2_MICROSTEPS       16
1294
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1295
+    #define E2_MAX_CURRENT    1000
1296
+    #define E2_SENSE_RESISTOR   91
1297
+    #define E2_MICROSTEPS       16
1298
+  #endif
1279 1299
 
1280
-  #define E3_MAX_CURRENT    1000
1281
-  #define E3_SENSE_RESISTOR   91
1282
-  #define E3_MICROSTEPS       16
1300
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1301
+    #define E3_MAX_CURRENT    1000
1302
+    #define E3_SENSE_RESISTOR   91
1303
+    #define E3_MICROSTEPS       16
1304
+  #endif
1283 1305
 
1284
-  #define E4_MAX_CURRENT    1000
1285
-  #define E4_SENSE_RESISTOR   91
1286
-  #define E4_MICROSTEPS       16
1306
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1307
+    #define E4_MAX_CURRENT    1000
1308
+    #define E4_SENSE_RESISTOR   91
1309
+    #define E4_MICROSTEPS       16
1310
+  #endif
1287 1311
 
1288
-  #define E5_MAX_CURRENT    1000
1289
-  #define E5_SENSE_RESISTOR   91
1290
-  #define E5_MICROSTEPS       16
1312
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1313
+    #define E5_MAX_CURRENT    1000
1314
+    #define E5_SENSE_RESISTOR   91
1315
+    #define E5_MICROSTEPS       16
1316
+  #endif
1291 1317
 
1292 1318
 #endif // TMC26X
1293 1319
 
@@ -1314,44 +1340,70 @@
1314 1340
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1315 1341
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1316 1342
 
1317
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1318
-  #define X_MICROSTEPS        16  // 0..256
1343
+  #if AXIS_IS_TMC(X)
1344
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1345
+    #define X_MICROSTEPS   16  // 0..256
1346
+  #endif
1319 1347
 
1320
-  #define Y_CURRENT          800
1321
-  #define Y_MICROSTEPS        16
1348
+  #if AXIS_IS_TMC(X2)
1349
+    #define X2_CURRENT    800
1350
+    #define X2_MICROSTEPS  16
1351
+  #endif
1322 1352
 
1323
-  #define Z_CURRENT          800
1324
-  #define Z_MICROSTEPS        16
1353
+  #if AXIS_IS_TMC(Y)
1354
+    #define Y_CURRENT     800
1355
+    #define Y_MICROSTEPS   16
1356
+  #endif
1325 1357
 
1326
-  #define X2_CURRENT         800
1327
-  #define X2_MICROSTEPS       16
1358
+  #if AXIS_IS_TMC(Y2)
1359
+    #define Y2_CURRENT    800
1360
+    #define Y2_MICROSTEPS  16
1361
+  #endif
1328 1362
 
1329
-  #define Y2_CURRENT         800
1330
-  #define Y2_MICROSTEPS       16
1363
+  #if AXIS_IS_TMC(Z)
1364
+    #define Z_CURRENT     800
1365
+    #define Z_MICROSTEPS   16
1366
+  #endif
1331 1367
 
1332
-  #define Z2_CURRENT         800
1333
-  #define Z2_MICROSTEPS       16
1368
+  #if AXIS_IS_TMC(Z2)
1369
+    #define Z2_CURRENT    800
1370
+    #define Z2_MICROSTEPS  16
1371
+  #endif
1334 1372
 
1335
-  #define Z3_CURRENT         800
1336
-  #define Z3_MICROSTEPS       16
1373
+  #if AXIS_IS_TMC(Z3)
1374
+    #define Z3_CURRENT    800
1375
+    #define Z3_MICROSTEPS  16
1376
+  #endif
1337 1377
 
1338
-  #define E0_CURRENT         800
1339
-  #define E0_MICROSTEPS       16
1378
+  #if AXIS_IS_TMC(E0)
1379
+    #define E0_CURRENT    800
1380
+    #define E0_MICROSTEPS  16
1381
+  #endif
1340 1382
 
1341
-  #define E1_CURRENT         800
1342
-  #define E1_MICROSTEPS       16
1383
+  #if AXIS_IS_TMC(E1)
1384
+    #define E1_CURRENT    800
1385
+    #define E1_MICROSTEPS  16
1386
+  #endif
1343 1387
 
1344
-  #define E2_CURRENT         800
1345
-  #define E2_MICROSTEPS       16
1388
+  #if AXIS_IS_TMC(E2)
1389
+    #define E2_CURRENT    800
1390
+    #define E2_MICROSTEPS  16
1391
+  #endif
1346 1392
 
1347
-  #define E3_CURRENT         800
1348
-  #define E3_MICROSTEPS       16
1393
+  #if AXIS_IS_TMC(E3)
1394
+    #define E3_CURRENT    800
1395
+    #define E3_MICROSTEPS  16
1396
+  #endif
1349 1397
 
1350
-  #define E4_CURRENT         800
1351
-  #define E4_MICROSTEPS       16
1398
+  #if AXIS_IS_TMC(E4)
1399
+    #define E4_CURRENT    800
1400
+    #define E4_MICROSTEPS  16
1401
+  #endif
1352 1402
 
1353
-  #define E5_CURRENT         800
1354
-  #define E5_MICROSTEPS       16
1403
+  #if AXIS_IS_TMC(E5)
1404
+    #define E5_CURRENT    800
1405
+    #define E5_MICROSTEPS  16
1406
+  #endif
1355 1407
 
1356 1408
   /**
1357 1409
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1521,84 +1573,111 @@
1521 1573
  */
1522 1574
 #if HAS_DRIVER(L6470)
1523 1575
 
1524
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1525
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1526
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1527
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1528
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1529
-
1530
-  #define X2_MICROSTEPS      128
1531
-  #define X2_OVERCURRENT    2000
1532
-  #define X2_STALLCURRENT   1500
1533
-  #define X2_MAX_VOLTAGE     127
1534
-  #define X2_CHAIN_POS         0
1535
-
1536
-  #define Y_MICROSTEPS       128
1537
-  #define Y_OVERCURRENT     2000
1538
-  #define Y_STALLCURRENT    1500
1539
-  #define Y_MAX_VOLTAGE      127
1540
-  #define Y_CHAIN_POS          0
1541
-
1542
-  #define Y2_MICROSTEPS      128
1543
-  #define Y2_OVERCURRENT    2000
1544
-  #define Y2_STALLCURRENT   1500
1545
-  #define Y2_MAX_VOLTAGE     127
1546
-  #define Y2_CHAIN_POS         0
1547
-
1548
-  #define Z_MICROSTEPS       128
1549
-  #define Z_OVERCURRENT     2000
1550
-  #define Z_STALLCURRENT    1500
1551
-  #define Z_MAX_VOLTAGE      127
1552
-  #define Z_CHAIN_POS          0
1553
-
1554
-  #define Z2_MICROSTEPS      128
1555
-  #define Z2_OVERCURRENT    2000
1556
-  #define Z2_STALLCURRENT   1500
1557
-  #define Z2_MAX_VOLTAGE     127
1558
-  #define Z2_CHAIN_POS         0
1559
-
1560
-  #define Z3_MICROSTEPS      128
1561
-  #define Z3_OVERCURRENT    2000
1562
-  #define Z3_STALLCURRENT   1500
1563
-  #define Z3_MAX_VOLTAGE     127
1564
-  #define Z3_CHAIN_POS         0
1565
-
1566
-  #define E0_MICROSTEPS      128
1567
-  #define E0_OVERCURRENT    2000
1568
-  #define E0_STALLCURRENT   1500
1569
-  #define E0_MAX_VOLTAGE     127
1570
-  #define E0_CHAIN_POS         0
1571
-
1572
-  #define E1_MICROSTEPS      128
1573
-  #define E1_OVERCURRENT    2000
1574
-  #define E1_STALLCURRENT   1500
1575
-  #define E1_MAX_VOLTAGE     127
1576
-  #define E1_CHAIN_POS         0
1577
-
1578
-  #define E2_MICROSTEPS      128
1579
-  #define E2_OVERCURRENT    2000
1580
-  #define E2_STALLCURRENT   1500
1581
-  #define E2_MAX_VOLTAGE     127
1582
-  #define E2_CHAIN_POS         0
1583
-
1584
-  #define E3_MICROSTEPS      128
1585
-  #define E3_OVERCURRENT    2000
1586
-  #define E3_STALLCURRENT   1500
1587
-  #define E3_MAX_VOLTAGE     127
1588
-  #define E3_CHAIN_POS         0
1589
-
1590
-  #define E4_MICROSTEPS      128
1591
-  #define E4_OVERCURRENT    2000
1592
-  #define E4_STALLCURRENT   1500
1593
-  #define E4_MAX_VOLTAGE     127
1594
-  #define E4_CHAIN_POS         0
1595
-
1596
-  #define E5_MICROSTEPS      128
1597
-  #define E5_OVERCURRENT    2000
1598
-  #define E5_STALLCURRENT   1500
1599
-  #define E5_MAX_VOLTAGE     127
1600
-  #define E5_CHAIN_POS         0
1576
+  //#define L6470_CHITCHAT        // Display additional status info
1601 1577
 
1578
+  #if AXIS_DRIVER_TYPE_X(L6470)
1579
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1580
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1581
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1582
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1583
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1584
+  #endif
1585
+
1586
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1587
+    #define X2_MICROSTEPS      128
1588
+    #define X2_OVERCURRENT    2000
1589
+    #define X2_STALLCURRENT   1500
1590
+    #define X2_MAX_VOLTAGE     127
1591
+    #define X2_CHAIN_POS         0
1592
+  #endif
1593
+
1594
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1595
+    #define Y_MICROSTEPS       128
1596
+    #define Y_OVERCURRENT     2000
1597
+    #define Y_STALLCURRENT    1500
1598
+    #define Y_MAX_VOLTAGE      127
1599
+    #define Y_CHAIN_POS          0
1600
+  #endif
1601
+
1602
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1603
+    #define Y2_MICROSTEPS      128
1604
+    #define Y2_OVERCURRENT    2000
1605
+    #define Y2_STALLCURRENT   1500
1606
+    #define Y2_MAX_VOLTAGE     127
1607
+    #define Y2_CHAIN_POS         0
1608
+  #endif
1609
+
1610
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1611
+    #define Z_MICROSTEPS       128
1612
+    #define Z_OVERCURRENT     2000
1613
+    #define Z_STALLCURRENT    1500
1614
+    #define Z_MAX_VOLTAGE      127
1615
+    #define Z_CHAIN_POS          0
1616
+  #endif
1617
+
1618
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1619
+    #define Z2_MICROSTEPS      128
1620
+    #define Z2_OVERCURRENT    2000
1621
+    #define Z2_STALLCURRENT   1500
1622
+    #define Z2_MAX_VOLTAGE     127
1623
+    #define Z2_CHAIN_POS         0
1624
+  #endif
1625
+
1626
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1627
+    #define Z3_MICROSTEPS      128
1628
+    #define Z3_OVERCURRENT    2000
1629
+    #define Z3_STALLCURRENT   1500
1630
+    #define Z3_MAX_VOLTAGE     127
1631
+    #define Z3_CHAIN_POS         0
1632
+  #endif
1633
+
1634
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1635
+    #define E0_MICROSTEPS      128
1636
+    #define E0_OVERCURRENT    2000
1637
+    #define E0_STALLCURRENT   1500
1638
+    #define E0_MAX_VOLTAGE     127
1639
+    #define E0_CHAIN_POS         0
1640
+  #endif
1641
+
1642
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1643
+    #define E1_MICROSTEPS      128
1644
+    #define E1_OVERCURRENT    2000
1645
+    #define E1_STALLCURRENT   1500
1646
+    #define E1_MAX_VOLTAGE     127
1647
+    #define E1_CHAIN_POS         0
1648
+  #endif
1649
+
1650
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1651
+    #define E2_MICROSTEPS      128
1652
+    #define E2_OVERCURRENT    2000
1653
+    #define E2_STALLCURRENT   1500
1654
+    #define E2_MAX_VOLTAGE     127
1655
+    #define E2_CHAIN_POS         0
1656
+  #endif
1657
+
1658
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1659
+    #define E3_MICROSTEPS      128
1660
+    #define E3_OVERCURRENT    2000
1661
+    #define E3_STALLCURRENT   1500
1662
+    #define E3_MAX_VOLTAGE     127
1663
+    #define E3_CHAIN_POS         0
1664
+  #endif
1665
+
1666
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1667
+    #define E4_MICROSTEPS      128
1668
+    #define E4_OVERCURRENT    2000
1669
+    #define E4_STALLCURRENT   1500
1670
+    #define E4_MAX_VOLTAGE     127
1671
+    #define E4_CHAIN_POS         0
1672
+  #endif
1673
+
1674
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1675
+    #define E5_MICROSTEPS      128
1676
+    #define E5_OVERCURRENT    2000
1677
+    #define E5_STALLCURRENT   1500
1678
+    #define E5_MAX_VOLTAGE     127
1679
+    #define E5_CHAIN_POS         0
1680
+  #endif
1602 1681
 
1603 1682
   /**
1604 1683
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1623,8 +1702,6 @@
1623 1702
     //#define L6470_STOP_ON_ERROR
1624 1703
   #endif
1625 1704
 
1626
-  #define L6470_CHITCHAT     // enable display of additional status info
1627
-
1628 1705
 #endif // L6470
1629 1706
 
1630 1707
 /**

+ 221
- 144
Marlin/src/config/examples/Mks/Sbase/Configuration_adv.h View File

@@ -1244,57 +1244,83 @@
1244 1244
  */
1245 1245
 #if HAS_DRIVER(TMC26X)
1246 1246
 
1247
-  #define X_MAX_CURRENT     1000 // in mA
1248
-  #define X_SENSE_RESISTOR    91 // in mOhms
1249
-  #define X_MICROSTEPS        16 // number of microsteps
1247
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1248
+    #define X_MAX_CURRENT     1000  // (mA)
1249
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1250
+    #define X_MICROSTEPS        16  // Number of microsteps
1251
+  #endif
1250 1252
 
1251
-  #define X2_MAX_CURRENT    1000
1252
-  #define X2_SENSE_RESISTOR   91
1253
-  #define X2_MICROSTEPS       16
1253
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1254
+    #define X2_MAX_CURRENT    1000
1255
+    #define X2_SENSE_RESISTOR   91
1256
+    #define X2_MICROSTEPS       16
1257
+  #endif
1254 1258
 
1255
-  #define Y_MAX_CURRENT     1000
1256
-  #define Y_SENSE_RESISTOR    91
1257
-  #define Y_MICROSTEPS        16
1259
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1260
+    #define Y_MAX_CURRENT     1000
1261
+    #define Y_SENSE_RESISTOR    91
1262
+    #define Y_MICROSTEPS        16
1263
+  #endif
1258 1264
 
1259
-  #define Y2_MAX_CURRENT    1000
1260
-  #define Y2_SENSE_RESISTOR   91
1261
-  #define Y2_MICROSTEPS       16
1265
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1266
+    #define Y2_MAX_CURRENT    1000
1267
+    #define Y2_SENSE_RESISTOR   91
1268
+    #define Y2_MICROSTEPS       16
1269
+  #endif
1262 1270
 
1263
-  #define Z_MAX_CURRENT     1000
1264
-  #define Z_SENSE_RESISTOR    91
1265
-  #define Z_MICROSTEPS        16
1271
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1272
+    #define Z_MAX_CURRENT     1000
1273
+    #define Z_SENSE_RESISTOR    91
1274
+    #define Z_MICROSTEPS        16
1275
+  #endif
1266 1276
 
1267
-  #define Z2_MAX_CURRENT    1000
1268
-  #define Z2_SENSE_RESISTOR   91
1269
-  #define Z2_MICROSTEPS       16
1277
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1278
+    #define Z2_MAX_CURRENT    1000
1279
+    #define Z2_SENSE_RESISTOR   91
1280
+    #define Z2_MICROSTEPS       16
1281
+  #endif
1270 1282
 
1271
-  #define Z3_MAX_CURRENT    1000
1272
-  #define Z3_SENSE_RESISTOR   91
1273
-  #define Z3_MICROSTEPS       16
1283
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1284
+    #define Z3_MAX_CURRENT    1000
1285
+    #define Z3_SENSE_RESISTOR   91
1286
+    #define Z3_MICROSTEPS       16
1287
+  #endif
1274 1288
 
1275
-  #define E0_MAX_CURRENT    1000
1276
-  #define E0_SENSE_RESISTOR   91
1277
-  #define E0_MICROSTEPS       16
1289
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1290
+    #define E0_MAX_CURRENT    1000
1291
+    #define E0_SENSE_RESISTOR   91
1292
+    #define E0_MICROSTEPS       16
1293
+  #endif
1278 1294
 
1279
-  #define E1_MAX_CURRENT    1000
1280
-  #define E1_SENSE_RESISTOR   91
1281
-  #define E1_MICROSTEPS       16
1295
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1296
+    #define E1_MAX_CURRENT    1000
1297
+    #define E1_SENSE_RESISTOR   91
1298
+    #define E1_MICROSTEPS       16
1299
+  #endif
1282 1300
 
1283
-  #define E2_MAX_CURRENT    1000
1284
-  #define E2_SENSE_RESISTOR   91
1285
-  #define E2_MICROSTEPS       16
1301
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1302
+    #define E2_MAX_CURRENT    1000
1303
+    #define E2_SENSE_RESISTOR   91
1304
+    #define E2_MICROSTEPS       16
1305
+  #endif
1286 1306
 
1287
-  #define E3_MAX_CURRENT    1000
1288
-  #define E3_SENSE_RESISTOR   91
1289
-  #define E3_MICROSTEPS       16
1307
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1308
+    #define E3_MAX_CURRENT    1000
1309
+    #define E3_SENSE_RESISTOR   91
1310
+    #define E3_MICROSTEPS       16
1311
+  #endif
1290 1312
 
1291
-  #define E4_MAX_CURRENT    1000
1292
-  #define E4_SENSE_RESISTOR   91
1293
-  #define E4_MICROSTEPS       16
1313
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1314
+    #define E4_MAX_CURRENT    1000
1315
+    #define E4_SENSE_RESISTOR   91
1316
+    #define E4_MICROSTEPS       16
1317
+  #endif
1294 1318
 
1295
-  #define E5_MAX_CURRENT    1000
1296
-  #define E5_SENSE_RESISTOR   91
1297
-  #define E5_MICROSTEPS       16
1319
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1320
+    #define E5_MAX_CURRENT    1000
1321
+    #define E5_SENSE_RESISTOR   91
1322
+    #define E5_MICROSTEPS       16
1323
+  #endif
1298 1324
 
1299 1325
 #endif // TMC26X
1300 1326
 
@@ -1321,44 +1347,70 @@
1321 1347
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1322 1348
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1323 1349
 
1324
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1325
-  #define X_MICROSTEPS        16  // 0..256
1350
+  #if AXIS_IS_TMC(X)
1351
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1352
+    #define X_MICROSTEPS   16  // 0..256
1353
+  #endif
1326 1354
 
1327
-  #define Y_CURRENT          800
1328
-  #define Y_MICROSTEPS        16
1355
+  #if AXIS_IS_TMC(X2)
1356
+    #define X2_CURRENT    800
1357
+    #define X2_MICROSTEPS  16
1358
+  #endif
1329 1359
 
1330
-  #define Z_CURRENT          800
1331
-  #define Z_MICROSTEPS        16
1360
+  #if AXIS_IS_TMC(Y)
1361
+    #define Y_CURRENT     800
1362
+    #define Y_MICROSTEPS   16
1363
+  #endif
1332 1364
 
1333
-  #define X2_CURRENT         800
1334
-  #define X2_MICROSTEPS       16
1365
+  #if AXIS_IS_TMC(Y2)
1366
+    #define Y2_CURRENT    800
1367
+    #define Y2_MICROSTEPS  16
1368
+  #endif
1335 1369
 
1336
-  #define Y2_CURRENT         800
1337
-  #define Y2_MICROSTEPS       16
1370
+  #if AXIS_IS_TMC(Z)
1371
+    #define Z_CURRENT     800
1372
+    #define Z_MICROSTEPS   16
1373
+  #endif
1338 1374
 
1339
-  #define Z2_CURRENT         800
1340
-  #define Z2_MICROSTEPS       16
1375
+  #if AXIS_IS_TMC(Z2)
1376
+    #define Z2_CURRENT    800
1377
+    #define Z2_MICROSTEPS  16
1378
+  #endif
1341 1379
 
1342
-  #define Z3_CURRENT         800
1343
-  #define Z3_MICROSTEPS       16
1380
+  #if AXIS_IS_TMC(Z3)
1381
+    #define Z3_CURRENT    800
1382
+    #define Z3_MICROSTEPS  16
1383
+  #endif
1344 1384
 
1345
-  #define E0_CURRENT         800
1346
-  #define E0_MICROSTEPS       16
1385
+  #if AXIS_IS_TMC(E0)
1386
+    #define E0_CURRENT    800
1387
+    #define E0_MICROSTEPS  16
1388
+  #endif
1347 1389
 
1348
-  #define E1_CURRENT         800
1349
-  #define E1_MICROSTEPS       16
1390
+  #if AXIS_IS_TMC(E1)
1391
+    #define E1_CURRENT    800
1392
+    #define E1_MICROSTEPS  16
1393
+  #endif
1350 1394
 
1351
-  #define E2_CURRENT         800
1352
-  #define E2_MICROSTEPS       16
1395
+  #if AXIS_IS_TMC(E2)
1396
+    #define E2_CURRENT    800
1397
+    #define E2_MICROSTEPS  16
1398
+  #endif
1353 1399
 
1354
-  #define E3_CURRENT         800
1355
-  #define E3_MICROSTEPS       16
1400
+  #if AXIS_IS_TMC(E3)
1401
+    #define E3_CURRENT    800
1402
+    #define E3_MICROSTEPS  16
1403
+  #endif
1356 1404
 
1357
-  #define E4_CURRENT         800
1358
-  #define E4_MICROSTEPS       16
1405
+  #if AXIS_IS_TMC(E4)
1406
+    #define E4_CURRENT    800
1407
+    #define E4_MICROSTEPS  16
1408
+  #endif
1359 1409
 
1360
-  #define E5_CURRENT         800
1361
-  #define E5_MICROSTEPS       16
1410
+  #if AXIS_IS_TMC(E5)
1411
+    #define E5_CURRENT    800
1412
+    #define E5_MICROSTEPS  16
1413
+  #endif
1362 1414
 
1363 1415
   /**
1364 1416
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1528,84 +1580,111 @@
1528 1580
  */
1529 1581
 #if HAS_DRIVER(L6470)
1530 1582
 
1531
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1532
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1533
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1534
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1535
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1536
-
1537
-  #define X2_MICROSTEPS      128
1538
-  #define X2_OVERCURRENT    2000
1539
-  #define X2_STALLCURRENT   1500
1540
-  #define X2_MAX_VOLTAGE     127
1541
-  #define X2_CHAIN_POS         0
1542
-
1543
-  #define Y_MICROSTEPS       128
1544
-  #define Y_OVERCURRENT     2000
1545
-  #define Y_STALLCURRENT    1500
1546
-  #define Y_MAX_VOLTAGE      127
1547
-  #define Y_CHAIN_POS          0
1548
-
1549
-  #define Y2_MICROSTEPS      128
1550
-  #define Y2_OVERCURRENT    2000
1551
-  #define Y2_STALLCURRENT   1500
1552
-  #define Y2_MAX_VOLTAGE     127
1553
-  #define Y2_CHAIN_POS         0
1554
-
1555
-  #define Z_MICROSTEPS       128
1556
-  #define Z_OVERCURRENT     2000
1557
-  #define Z_STALLCURRENT    1500
1558
-  #define Z_MAX_VOLTAGE      127
1559
-  #define Z_CHAIN_POS          0
1560
-
1561
-  #define Z2_MICROSTEPS      128
1562
-  #define Z2_OVERCURRENT    2000
1563
-  #define Z2_STALLCURRENT   1500
1564
-  #define Z2_MAX_VOLTAGE     127
1565
-  #define Z2_CHAIN_POS         0
1566
-
1567
-  #define Z3_MICROSTEPS      128
1568
-  #define Z3_OVERCURRENT    2000
1569
-  #define Z3_STALLCURRENT   1500
1570
-  #define Z3_MAX_VOLTAGE     127
1571
-  #define Z3_CHAIN_POS         0
1572
-
1573
-  #define E0_MICROSTEPS      128
1574
-  #define E0_OVERCURRENT    2000
1575
-  #define E0_STALLCURRENT   1500
1576
-  #define E0_MAX_VOLTAGE     127
1577
-  #define E0_CHAIN_POS         0
1578
-
1579
-  #define E1_MICROSTEPS      128
1580
-  #define E1_OVERCURRENT    2000
1581
-  #define E1_STALLCURRENT   1500
1582
-  #define E1_MAX_VOLTAGE     127
1583
-  #define E1_CHAIN_POS         0
1584
-
1585
-  #define E2_MICROSTEPS      128
1586
-  #define E2_OVERCURRENT    2000
1587
-  #define E2_STALLCURRENT   1500
1588
-  #define E2_MAX_VOLTAGE     127
1589
-  #define E2_CHAIN_POS         0
1590
-
1591
-  #define E3_MICROSTEPS      128
1592
-  #define E3_OVERCURRENT    2000
1593
-  #define E3_STALLCURRENT   1500
1594
-  #define E3_MAX_VOLTAGE     127
1595
-  #define E3_CHAIN_POS         0
1596
-
1597
-  #define E4_MICROSTEPS      128
1598
-  #define E4_OVERCURRENT    2000
1599
-  #define E4_STALLCURRENT   1500
1600
-  #define E4_MAX_VOLTAGE     127
1601
-  #define E4_CHAIN_POS         0
1602
-
1603
-  #define E5_MICROSTEPS      128
1604
-  #define E5_OVERCURRENT    2000
1605
-  #define E5_STALLCURRENT   1500
1606
-  #define E5_MAX_VOLTAGE     127
1607
-  #define E5_CHAIN_POS         0
1583
+  //#define L6470_CHITCHAT        // Display additional status info
1608 1584
 
1585
+  #if AXIS_DRIVER_TYPE_X(L6470)
1586
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1587
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1588
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1589
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1590
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1594
+    #define X2_MICROSTEPS      128
1595
+    #define X2_OVERCURRENT    2000
1596
+    #define X2_STALLCURRENT   1500
1597
+    #define X2_MAX_VOLTAGE     127
1598
+    #define X2_CHAIN_POS         0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1602
+    #define Y_MICROSTEPS       128
1603
+    #define Y_OVERCURRENT     2000
1604
+    #define Y_STALLCURRENT    1500
1605
+    #define Y_MAX_VOLTAGE      127
1606
+    #define Y_CHAIN_POS          0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1610
+    #define Y2_MICROSTEPS      128
1611
+    #define Y2_OVERCURRENT    2000
1612
+    #define Y2_STALLCURRENT   1500
1613
+    #define Y2_MAX_VOLTAGE     127
1614
+    #define Y2_CHAIN_POS         0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1618
+    #define Z_MICROSTEPS       128
1619
+    #define Z_OVERCURRENT     2000
1620
+    #define Z_STALLCURRENT    1500
1621
+    #define Z_MAX_VOLTAGE      127
1622
+    #define Z_CHAIN_POS          0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1626
+    #define Z2_MICROSTEPS      128
1627
+    #define Z2_OVERCURRENT    2000
1628
+    #define Z2_STALLCURRENT   1500
1629
+    #define Z2_MAX_VOLTAGE     127
1630
+    #define Z2_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1634
+    #define Z3_MICROSTEPS      128
1635
+    #define Z3_OVERCURRENT    2000
1636
+    #define Z3_STALLCURRENT   1500
1637
+    #define Z3_MAX_VOLTAGE     127
1638
+    #define Z3_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1642
+    #define E0_MICROSTEPS      128
1643
+    #define E0_OVERCURRENT    2000
1644
+    #define E0_STALLCURRENT   1500
1645
+    #define E0_MAX_VOLTAGE     127
1646
+    #define E0_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1650
+    #define E1_MICROSTEPS      128
1651
+    #define E1_OVERCURRENT    2000
1652
+    #define E1_STALLCURRENT   1500
1653
+    #define E1_MAX_VOLTAGE     127
1654
+    #define E1_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1658
+    #define E2_MICROSTEPS      128
1659
+    #define E2_OVERCURRENT    2000
1660
+    #define E2_STALLCURRENT   1500
1661
+    #define E2_MAX_VOLTAGE     127
1662
+    #define E2_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1666
+    #define E3_MICROSTEPS      128
1667
+    #define E3_OVERCURRENT    2000
1668
+    #define E3_STALLCURRENT   1500
1669
+    #define E3_MAX_VOLTAGE     127
1670
+    #define E3_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1674
+    #define E4_MICROSTEPS      128
1675
+    #define E4_OVERCURRENT    2000
1676
+    #define E4_STALLCURRENT   1500
1677
+    #define E4_MAX_VOLTAGE     127
1678
+    #define E4_CHAIN_POS         0
1679
+  #endif
1680
+
1681
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1682
+    #define E5_MICROSTEPS      128
1683
+    #define E5_OVERCURRENT    2000
1684
+    #define E5_STALLCURRENT   1500
1685
+    #define E5_MAX_VOLTAGE     127
1686
+    #define E5_CHAIN_POS         0
1687
+  #endif
1609 1688
 
1610 1689
   /**
1611 1690
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1630,8 +1709,6 @@
1630 1709
     //#define L6470_STOP_ON_ERROR
1631 1710
   #endif
1632 1711
 
1633
-  #define L6470_CHITCHAT     // enable display of additional status info
1634
-
1635 1712
 #endif // L6470
1636 1713
 
1637 1714
 /**

+ 221
- 144
Marlin/src/config/examples/RapideLite/RL200/Configuration_adv.h View File

@@ -1237,57 +1237,83 @@
1237 1237
  */
1238 1238
 #if HAS_DRIVER(TMC26X)
1239 1239
 
1240
-  #define X_MAX_CURRENT     1000 // in mA
1241
-  #define X_SENSE_RESISTOR    91 // in mOhms
1242
-  #define X_MICROSTEPS        16 // number of microsteps
1240
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1241
+    #define X_MAX_CURRENT     1000  // (mA)
1242
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1243
+    #define X_MICROSTEPS        16  // Number of microsteps
1244
+  #endif
1243 1245
 
1244
-  #define X2_MAX_CURRENT    1000
1245
-  #define X2_SENSE_RESISTOR   91
1246
-  #define X2_MICROSTEPS       16
1246
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1247
+    #define X2_MAX_CURRENT    1000
1248
+    #define X2_SENSE_RESISTOR   91
1249
+    #define X2_MICROSTEPS       16
1250
+  #endif
1247 1251
 
1248
-  #define Y_MAX_CURRENT     1000
1249
-  #define Y_SENSE_RESISTOR    91
1250
-  #define Y_MICROSTEPS        16
1252
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1253
+    #define Y_MAX_CURRENT     1000
1254
+    #define Y_SENSE_RESISTOR    91
1255
+    #define Y_MICROSTEPS        16
1256
+  #endif
1251 1257
 
1252
-  #define Y2_MAX_CURRENT    1000
1253
-  #define Y2_SENSE_RESISTOR   91
1254
-  #define Y2_MICROSTEPS       16
1258
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1259
+    #define Y2_MAX_CURRENT    1000
1260
+    #define Y2_SENSE_RESISTOR   91
1261
+    #define Y2_MICROSTEPS       16
1262
+  #endif
1255 1263
 
1256
-  #define Z_MAX_CURRENT     1000
1257
-  #define Z_SENSE_RESISTOR    91
1258
-  #define Z_MICROSTEPS        16
1264
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1265
+    #define Z_MAX_CURRENT     1000
1266
+    #define Z_SENSE_RESISTOR    91
1267
+    #define Z_MICROSTEPS        16
1268
+  #endif
1259 1269
 
1260
-  #define Z2_MAX_CURRENT    1000
1261
-  #define Z2_SENSE_RESISTOR   91
1262
-  #define Z2_MICROSTEPS       16
1270
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1271
+    #define Z2_MAX_CURRENT    1000
1272
+    #define Z2_SENSE_RESISTOR   91
1273
+    #define Z2_MICROSTEPS       16
1274
+  #endif
1263 1275
 
1264
-  #define Z3_MAX_CURRENT    1000
1265
-  #define Z3_SENSE_RESISTOR   91
1266
-  #define Z3_MICROSTEPS       16
1276
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1277
+    #define Z3_MAX_CURRENT    1000
1278
+    #define Z3_SENSE_RESISTOR   91
1279
+    #define Z3_MICROSTEPS       16
1280
+  #endif
1267 1281
 
1268
-  #define E0_MAX_CURRENT    1000
1269
-  #define E0_SENSE_RESISTOR   91
1270
-  #define E0_MICROSTEPS       16
1282
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1283
+    #define E0_MAX_CURRENT    1000
1284
+    #define E0_SENSE_RESISTOR   91
1285
+    #define E0_MICROSTEPS       16
1286
+  #endif
1271 1287
 
1272
-  #define E1_MAX_CURRENT    1000
1273
-  #define E1_SENSE_RESISTOR   91
1274
-  #define E1_MICROSTEPS       16
1288
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1289
+    #define E1_MAX_CURRENT    1000
1290
+    #define E1_SENSE_RESISTOR   91
1291
+    #define E1_MICROSTEPS       16
1292
+  #endif
1275 1293
 
1276
-  #define E2_MAX_CURRENT    1000
1277
-  #define E2_SENSE_RESISTOR   91
1278
-  #define E2_MICROSTEPS       16
1294
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1295
+    #define E2_MAX_CURRENT    1000
1296
+    #define E2_SENSE_RESISTOR   91
1297
+    #define E2_MICROSTEPS       16
1298
+  #endif
1279 1299
 
1280
-  #define E3_MAX_CURRENT    1000
1281
-  #define E3_SENSE_RESISTOR   91
1282
-  #define E3_MICROSTEPS       16
1300
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1301
+    #define E3_MAX_CURRENT    1000
1302
+    #define E3_SENSE_RESISTOR   91
1303
+    #define E3_MICROSTEPS       16
1304
+  #endif
1283 1305
 
1284
-  #define E4_MAX_CURRENT    1000
1285
-  #define E4_SENSE_RESISTOR   91
1286
-  #define E4_MICROSTEPS       16
1306
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1307
+    #define E4_MAX_CURRENT    1000
1308
+    #define E4_SENSE_RESISTOR   91
1309
+    #define E4_MICROSTEPS       16
1310
+  #endif
1287 1311
 
1288
-  #define E5_MAX_CURRENT    1000
1289
-  #define E5_SENSE_RESISTOR   91
1290
-  #define E5_MICROSTEPS       16
1312
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1313
+    #define E5_MAX_CURRENT    1000
1314
+    #define E5_SENSE_RESISTOR   91
1315
+    #define E5_MICROSTEPS       16
1316
+  #endif
1291 1317
 
1292 1318
 #endif // TMC26X
1293 1319
 
@@ -1314,44 +1340,70 @@
1314 1340
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1315 1341
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1316 1342
 
1317
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1318
-  #define X_MICROSTEPS        16  // 0..256
1343
+  #if AXIS_IS_TMC(X)
1344
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1345
+    #define X_MICROSTEPS   16  // 0..256
1346
+  #endif
1319 1347
 
1320
-  #define Y_CURRENT          800
1321
-  #define Y_MICROSTEPS        16
1348
+  #if AXIS_IS_TMC(X2)
1349
+    #define X2_CURRENT    800
1350
+    #define X2_MICROSTEPS  16
1351
+  #endif
1322 1352
 
1323
-  #define Z_CURRENT          800
1324
-  #define Z_MICROSTEPS        16
1353
+  #if AXIS_IS_TMC(Y)
1354
+    #define Y_CURRENT     800
1355
+    #define Y_MICROSTEPS   16
1356
+  #endif
1325 1357
 
1326
-  #define X2_CURRENT         800
1327
-  #define X2_MICROSTEPS       16
1358
+  #if AXIS_IS_TMC(Y2)
1359
+    #define Y2_CURRENT    800
1360
+    #define Y2_MICROSTEPS  16
1361
+  #endif
1328 1362
 
1329
-  #define Y2_CURRENT         800
1330
-  #define Y2_MICROSTEPS       16
1363
+  #if AXIS_IS_TMC(Z)
1364
+    #define Z_CURRENT     800
1365
+    #define Z_MICROSTEPS   16
1366
+  #endif
1331 1367
 
1332
-  #define Z2_CURRENT         800
1333
-  #define Z2_MICROSTEPS       16
1368
+  #if AXIS_IS_TMC(Z2)
1369
+    #define Z2_CURRENT    800
1370
+    #define Z2_MICROSTEPS  16
1371
+  #endif
1334 1372
 
1335
-  #define Z3_CURRENT         800
1336
-  #define Z3_MICROSTEPS       16
1373
+  #if AXIS_IS_TMC(Z3)
1374
+    #define Z3_CURRENT    800
1375
+    #define Z3_MICROSTEPS  16
1376
+  #endif
1337 1377
 
1338
-  #define E0_CURRENT         800
1339
-  #define E0_MICROSTEPS       16
1378
+  #if AXIS_IS_TMC(E0)
1379
+    #define E0_CURRENT    800
1380
+    #define E0_MICROSTEPS  16
1381
+  #endif
1340 1382
 
1341
-  #define E1_CURRENT         800
1342
-  #define E1_MICROSTEPS       16
1383
+  #if AXIS_IS_TMC(E1)
1384
+    #define E1_CURRENT    800
1385
+    #define E1_MICROSTEPS  16
1386
+  #endif
1343 1387
 
1344
-  #define E2_CURRENT         800
1345
-  #define E2_MICROSTEPS       16
1388
+  #if AXIS_IS_TMC(E2)
1389
+    #define E2_CURRENT    800
1390
+    #define E2_MICROSTEPS  16
1391
+  #endif
1346 1392
 
1347
-  #define E3_CURRENT         800
1348
-  #define E3_MICROSTEPS       16
1393
+  #if AXIS_IS_TMC(E3)
1394
+    #define E3_CURRENT    800
1395
+    #define E3_MICROSTEPS  16
1396
+  #endif
1349 1397
 
1350
-  #define E4_CURRENT         800
1351
-  #define E4_MICROSTEPS       16
1398
+  #if AXIS_IS_TMC(E4)
1399
+    #define E4_CURRENT    800
1400
+    #define E4_MICROSTEPS  16
1401
+  #endif
1352 1402
 
1353
-  #define E5_CURRENT         800
1354
-  #define E5_MICROSTEPS       16
1403
+  #if AXIS_IS_TMC(E5)
1404
+    #define E5_CURRENT    800
1405
+    #define E5_MICROSTEPS  16
1406
+  #endif
1355 1407
 
1356 1408
   /**
1357 1409
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1521,84 +1573,111 @@
1521 1573
  */
1522 1574
 #if HAS_DRIVER(L6470)
1523 1575
 
1524
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1525
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1526
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1527
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1528
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1529
-
1530
-  #define X2_MICROSTEPS      128
1531
-  #define X2_OVERCURRENT    2000
1532
-  #define X2_STALLCURRENT   1500
1533
-  #define X2_MAX_VOLTAGE     127
1534
-  #define X2_CHAIN_POS         0
1535
-
1536
-  #define Y_MICROSTEPS       128
1537
-  #define Y_OVERCURRENT     2000
1538
-  #define Y_STALLCURRENT    1500
1539
-  #define Y_MAX_VOLTAGE      127
1540
-  #define Y_CHAIN_POS          0
1541
-
1542
-  #define Y2_MICROSTEPS      128
1543
-  #define Y2_OVERCURRENT    2000
1544
-  #define Y2_STALLCURRENT   1500
1545
-  #define Y2_MAX_VOLTAGE     127
1546
-  #define Y2_CHAIN_POS         0
1547
-
1548
-  #define Z_MICROSTEPS       128
1549
-  #define Z_OVERCURRENT     2000
1550
-  #define Z_STALLCURRENT    1500
1551
-  #define Z_MAX_VOLTAGE      127
1552
-  #define Z_CHAIN_POS          0
1553
-
1554
-  #define Z2_MICROSTEPS      128
1555
-  #define Z2_OVERCURRENT    2000
1556
-  #define Z2_STALLCURRENT   1500
1557
-  #define Z2_MAX_VOLTAGE     127
1558
-  #define Z2_CHAIN_POS         0
1559
-
1560
-  #define Z3_MICROSTEPS      128
1561
-  #define Z3_OVERCURRENT    2000
1562
-  #define Z3_STALLCURRENT   1500
1563
-  #define Z3_MAX_VOLTAGE     127
1564
-  #define Z3_CHAIN_POS         0
1565
-
1566
-  #define E0_MICROSTEPS      128
1567
-  #define E0_OVERCURRENT    2000
1568
-  #define E0_STALLCURRENT   1500
1569
-  #define E0_MAX_VOLTAGE     127
1570
-  #define E0_CHAIN_POS         0
1571
-
1572
-  #define E1_MICROSTEPS      128
1573
-  #define E1_OVERCURRENT    2000
1574
-  #define E1_STALLCURRENT   1500
1575
-  #define E1_MAX_VOLTAGE     127
1576
-  #define E1_CHAIN_POS         0
1577
-
1578
-  #define E2_MICROSTEPS      128
1579
-  #define E2_OVERCURRENT    2000
1580
-  #define E2_STALLCURRENT   1500
1581
-  #define E2_MAX_VOLTAGE     127
1582
-  #define E2_CHAIN_POS         0
1583
-
1584
-  #define E3_MICROSTEPS      128
1585
-  #define E3_OVERCURRENT    2000
1586
-  #define E3_STALLCURRENT   1500
1587
-  #define E3_MAX_VOLTAGE     127
1588
-  #define E3_CHAIN_POS         0
1589
-
1590
-  #define E4_MICROSTEPS      128
1591
-  #define E4_OVERCURRENT    2000
1592
-  #define E4_STALLCURRENT   1500
1593
-  #define E4_MAX_VOLTAGE     127
1594
-  #define E4_CHAIN_POS         0
1595
-
1596
-  #define E5_MICROSTEPS      128
1597
-  #define E5_OVERCURRENT    2000
1598
-  #define E5_STALLCURRENT   1500
1599
-  #define E5_MAX_VOLTAGE     127
1600
-  #define E5_CHAIN_POS         0
1576
+  //#define L6470_CHITCHAT        // Display additional status info
1601 1577
 
1578
+  #if AXIS_DRIVER_TYPE_X(L6470)
1579
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1580
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1581
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1582
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1583
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1584
+  #endif
1585
+
1586
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1587
+    #define X2_MICROSTEPS      128
1588
+    #define X2_OVERCURRENT    2000
1589
+    #define X2_STALLCURRENT   1500
1590
+    #define X2_MAX_VOLTAGE     127
1591
+    #define X2_CHAIN_POS         0
1592
+  #endif
1593
+
1594
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1595
+    #define Y_MICROSTEPS       128
1596
+    #define Y_OVERCURRENT     2000
1597
+    #define Y_STALLCURRENT    1500
1598
+    #define Y_MAX_VOLTAGE      127
1599
+    #define Y_CHAIN_POS          0
1600
+  #endif
1601
+
1602
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1603
+    #define Y2_MICROSTEPS      128
1604
+    #define Y2_OVERCURRENT    2000
1605
+    #define Y2_STALLCURRENT   1500
1606
+    #define Y2_MAX_VOLTAGE     127
1607
+    #define Y2_CHAIN_POS         0
1608
+  #endif
1609
+
1610
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1611
+    #define Z_MICROSTEPS       128
1612
+    #define Z_OVERCURRENT     2000
1613
+    #define Z_STALLCURRENT    1500
1614
+    #define Z_MAX_VOLTAGE      127
1615
+    #define Z_CHAIN_POS          0
1616
+  #endif
1617
+
1618
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1619
+    #define Z2_MICROSTEPS      128
1620
+    #define Z2_OVERCURRENT    2000
1621
+    #define Z2_STALLCURRENT   1500
1622
+    #define Z2_MAX_VOLTAGE     127
1623
+    #define Z2_CHAIN_POS         0
1624
+  #endif
1625
+
1626
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1627
+    #define Z3_MICROSTEPS      128
1628
+    #define Z3_OVERCURRENT    2000
1629
+    #define Z3_STALLCURRENT   1500
1630
+    #define Z3_MAX_VOLTAGE     127
1631
+    #define Z3_CHAIN_POS         0
1632
+  #endif
1633
+
1634
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1635
+    #define E0_MICROSTEPS      128
1636
+    #define E0_OVERCURRENT    2000
1637
+    #define E0_STALLCURRENT   1500
1638
+    #define E0_MAX_VOLTAGE     127
1639
+    #define E0_CHAIN_POS         0
1640
+  #endif
1641
+
1642
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1643
+    #define E1_MICROSTEPS      128
1644
+    #define E1_OVERCURRENT    2000
1645
+    #define E1_STALLCURRENT   1500
1646
+    #define E1_MAX_VOLTAGE     127
1647
+    #define E1_CHAIN_POS         0
1648
+  #endif
1649
+
1650
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1651
+    #define E2_MICROSTEPS      128
1652
+    #define E2_OVERCURRENT    2000
1653
+    #define E2_STALLCURRENT   1500
1654
+    #define E2_MAX_VOLTAGE     127
1655
+    #define E2_CHAIN_POS         0
1656
+  #endif
1657
+
1658
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1659
+    #define E3_MICROSTEPS      128
1660
+    #define E3_OVERCURRENT    2000
1661
+    #define E3_STALLCURRENT   1500
1662
+    #define E3_MAX_VOLTAGE     127
1663
+    #define E3_CHAIN_POS         0
1664
+  #endif
1665
+
1666
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1667
+    #define E4_MICROSTEPS      128
1668
+    #define E4_OVERCURRENT    2000
1669
+    #define E4_STALLCURRENT   1500
1670
+    #define E4_MAX_VOLTAGE     127
1671
+    #define E4_CHAIN_POS         0
1672
+  #endif
1673
+
1674
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1675
+    #define E5_MICROSTEPS      128
1676
+    #define E5_OVERCURRENT    2000
1677
+    #define E5_STALLCURRENT   1500
1678
+    #define E5_MAX_VOLTAGE     127
1679
+    #define E5_CHAIN_POS         0
1680
+  #endif
1602 1681
 
1603 1682
   /**
1604 1683
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1623,8 +1702,6 @@
1623 1702
     //#define L6470_STOP_ON_ERROR
1624 1703
   #endif
1625 1704
 
1626
-  #define L6470_CHITCHAT     // enable display of additional status info
1627
-
1628 1705
 #endif // L6470
1629 1706
 
1630 1707
 /**

+ 221
- 144
Marlin/src/config/examples/RigidBot/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/SCARA/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/Sanguinololu/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/TheBorg/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/TinyBoy2/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/Tronxy/X3A/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/UltiMachine/Archim1/Configuration_adv.h View File

@@ -1237,57 +1237,83 @@
1237 1237
  */
1238 1238
 #if HAS_DRIVER(TMC26X)
1239 1239
 
1240
-  #define X_MAX_CURRENT     1000 // in mA
1241
-  #define X_SENSE_RESISTOR    91 // in mOhms
1242
-  #define X_MICROSTEPS        16 // number of microsteps
1240
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1241
+    #define X_MAX_CURRENT     1000  // (mA)
1242
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1243
+    #define X_MICROSTEPS        16  // Number of microsteps
1244
+  #endif
1243 1245
 
1244
-  #define X2_MAX_CURRENT    1000
1245
-  #define X2_SENSE_RESISTOR   91
1246
-  #define X2_MICROSTEPS       16
1246
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1247
+    #define X2_MAX_CURRENT    1000
1248
+    #define X2_SENSE_RESISTOR   91
1249
+    #define X2_MICROSTEPS       16
1250
+  #endif
1247 1251
 
1248
-  #define Y_MAX_CURRENT     1000
1249
-  #define Y_SENSE_RESISTOR    91
1250
-  #define Y_MICROSTEPS        16
1252
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1253
+    #define Y_MAX_CURRENT     1000
1254
+    #define Y_SENSE_RESISTOR    91
1255
+    #define Y_MICROSTEPS        16
1256
+  #endif
1251 1257
 
1252
-  #define Y2_MAX_CURRENT    1000
1253
-  #define Y2_SENSE_RESISTOR   91
1254
-  #define Y2_MICROSTEPS       16
1258
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1259
+    #define Y2_MAX_CURRENT    1000
1260
+    #define Y2_SENSE_RESISTOR   91
1261
+    #define Y2_MICROSTEPS       16
1262
+  #endif
1255 1263
 
1256
-  #define Z_MAX_CURRENT     1000
1257
-  #define Z_SENSE_RESISTOR    91
1258
-  #define Z_MICROSTEPS        16
1264
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1265
+    #define Z_MAX_CURRENT     1000
1266
+    #define Z_SENSE_RESISTOR    91
1267
+    #define Z_MICROSTEPS        16
1268
+  #endif
1259 1269
 
1260
-  #define Z2_MAX_CURRENT    1000
1261
-  #define Z2_SENSE_RESISTOR   91
1262
-  #define Z2_MICROSTEPS       16
1270
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1271
+    #define Z2_MAX_CURRENT    1000
1272
+    #define Z2_SENSE_RESISTOR   91
1273
+    #define Z2_MICROSTEPS       16
1274
+  #endif
1263 1275
 
1264
-  #define Z3_MAX_CURRENT    1000
1265
-  #define Z3_SENSE_RESISTOR   91
1266
-  #define Z3_MICROSTEPS       16
1276
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1277
+    #define Z3_MAX_CURRENT    1000
1278
+    #define Z3_SENSE_RESISTOR   91
1279
+    #define Z3_MICROSTEPS       16
1280
+  #endif
1267 1281
 
1268
-  #define E0_MAX_CURRENT    1000
1269
-  #define E0_SENSE_RESISTOR   91
1270
-  #define E0_MICROSTEPS       16
1282
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1283
+    #define E0_MAX_CURRENT    1000
1284
+    #define E0_SENSE_RESISTOR   91
1285
+    #define E0_MICROSTEPS       16
1286
+  #endif
1271 1287
 
1272
-  #define E1_MAX_CURRENT    1000
1273
-  #define E1_SENSE_RESISTOR   91
1274
-  #define E1_MICROSTEPS       16
1288
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1289
+    #define E1_MAX_CURRENT    1000
1290
+    #define E1_SENSE_RESISTOR   91
1291
+    #define E1_MICROSTEPS       16
1292
+  #endif
1275 1293
 
1276
-  #define E2_MAX_CURRENT    1000
1277
-  #define E2_SENSE_RESISTOR   91
1278
-  #define E2_MICROSTEPS       16
1294
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1295
+    #define E2_MAX_CURRENT    1000
1296
+    #define E2_SENSE_RESISTOR   91
1297
+    #define E2_MICROSTEPS       16
1298
+  #endif
1279 1299
 
1280
-  #define E3_MAX_CURRENT    1000
1281
-  #define E3_SENSE_RESISTOR   91
1282
-  #define E3_MICROSTEPS       16
1300
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1301
+    #define E3_MAX_CURRENT    1000
1302
+    #define E3_SENSE_RESISTOR   91
1303
+    #define E3_MICROSTEPS       16
1304
+  #endif
1283 1305
 
1284
-  #define E4_MAX_CURRENT    1000
1285
-  #define E4_SENSE_RESISTOR   91
1286
-  #define E4_MICROSTEPS       16
1306
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1307
+    #define E4_MAX_CURRENT    1000
1308
+    #define E4_SENSE_RESISTOR   91
1309
+    #define E4_MICROSTEPS       16
1310
+  #endif
1287 1311
 
1288
-  #define E5_MAX_CURRENT    1000
1289
-  #define E5_SENSE_RESISTOR   91
1290
-  #define E5_MICROSTEPS       16
1312
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1313
+    #define E5_MAX_CURRENT    1000
1314
+    #define E5_SENSE_RESISTOR   91
1315
+    #define E5_MICROSTEPS       16
1316
+  #endif
1291 1317
 
1292 1318
 #endif // TMC26X
1293 1319
 
@@ -1314,44 +1340,70 @@
1314 1340
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1315 1341
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1316 1342
 
1317
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1318
-  #define X_MICROSTEPS        16  // 0..256
1343
+  #if AXIS_IS_TMC(X)
1344
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1345
+    #define X_MICROSTEPS   16  // 0..256
1346
+  #endif
1319 1347
 
1320
-  #define Y_CURRENT          800
1321
-  #define Y_MICROSTEPS        16
1348
+  #if AXIS_IS_TMC(X2)
1349
+    #define X2_CURRENT    800
1350
+    #define X2_MICROSTEPS  16
1351
+  #endif
1322 1352
 
1323
-  #define Z_CURRENT          800
1324
-  #define Z_MICROSTEPS        16
1353
+  #if AXIS_IS_TMC(Y)
1354
+    #define Y_CURRENT     800
1355
+    #define Y_MICROSTEPS   16
1356
+  #endif
1325 1357
 
1326
-  #define X2_CURRENT         800
1327
-  #define X2_MICROSTEPS       16
1358
+  #if AXIS_IS_TMC(Y2)
1359
+    #define Y2_CURRENT    800
1360
+    #define Y2_MICROSTEPS  16
1361
+  #endif
1328 1362
 
1329
-  #define Y2_CURRENT         800
1330
-  #define Y2_MICROSTEPS       16
1363
+  #if AXIS_IS_TMC(Z)
1364
+    #define Z_CURRENT     800
1365
+    #define Z_MICROSTEPS   16
1366
+  #endif
1331 1367
 
1332
-  #define Z2_CURRENT         800
1333
-  #define Z2_MICROSTEPS       16
1368
+  #if AXIS_IS_TMC(Z2)
1369
+    #define Z2_CURRENT    800
1370
+    #define Z2_MICROSTEPS  16
1371
+  #endif
1334 1372
 
1335
-  #define Z3_CURRENT         800
1336
-  #define Z3_MICROSTEPS       16
1373
+  #if AXIS_IS_TMC(Z3)
1374
+    #define Z3_CURRENT    800
1375
+    #define Z3_MICROSTEPS  16
1376
+  #endif
1337 1377
 
1338
-  #define E0_CURRENT         800
1339
-  #define E0_MICROSTEPS       16
1378
+  #if AXIS_IS_TMC(E0)
1379
+    #define E0_CURRENT    800
1380
+    #define E0_MICROSTEPS  16
1381
+  #endif
1340 1382
 
1341
-  #define E1_CURRENT         800
1342
-  #define E1_MICROSTEPS       16
1383
+  #if AXIS_IS_TMC(E1)
1384
+    #define E1_CURRENT    800
1385
+    #define E1_MICROSTEPS  16
1386
+  #endif
1343 1387
 
1344
-  #define E2_CURRENT         800
1345
-  #define E2_MICROSTEPS       16
1388
+  #if AXIS_IS_TMC(E2)
1389
+    #define E2_CURRENT    800
1390
+    #define E2_MICROSTEPS  16
1391
+  #endif
1346 1392
 
1347
-  #define E3_CURRENT         800
1348
-  #define E3_MICROSTEPS       16
1393
+  #if AXIS_IS_TMC(E3)
1394
+    #define E3_CURRENT    800
1395
+    #define E3_MICROSTEPS  16
1396
+  #endif
1349 1397
 
1350
-  #define E4_CURRENT         800
1351
-  #define E4_MICROSTEPS       16
1398
+  #if AXIS_IS_TMC(E4)
1399
+    #define E4_CURRENT    800
1400
+    #define E4_MICROSTEPS  16
1401
+  #endif
1352 1402
 
1353
-  #define E5_CURRENT         800
1354
-  #define E5_MICROSTEPS       16
1403
+  #if AXIS_IS_TMC(E5)
1404
+    #define E5_CURRENT    800
1405
+    #define E5_MICROSTEPS  16
1406
+  #endif
1355 1407
 
1356 1408
   /**
1357 1409
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1521,84 +1573,111 @@
1521 1573
  */
1522 1574
 #if HAS_DRIVER(L6470)
1523 1575
 
1524
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1525
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1526
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1527
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1528
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1529
-
1530
-  #define X2_MICROSTEPS      128
1531
-  #define X2_OVERCURRENT    2000
1532
-  #define X2_STALLCURRENT   1500
1533
-  #define X2_MAX_VOLTAGE     127
1534
-  #define X2_CHAIN_POS         0
1535
-
1536
-  #define Y_MICROSTEPS       128
1537
-  #define Y_OVERCURRENT     2000
1538
-  #define Y_STALLCURRENT    1500
1539
-  #define Y_MAX_VOLTAGE      127
1540
-  #define Y_CHAIN_POS          0
1541
-
1542
-  #define Y2_MICROSTEPS      128
1543
-  #define Y2_OVERCURRENT    2000
1544
-  #define Y2_STALLCURRENT   1500
1545
-  #define Y2_MAX_VOLTAGE     127
1546
-  #define Y2_CHAIN_POS         0
1547
-
1548
-  #define Z_MICROSTEPS       128
1549
-  #define Z_OVERCURRENT     2000
1550
-  #define Z_STALLCURRENT    1500
1551
-  #define Z_MAX_VOLTAGE      127
1552
-  #define Z_CHAIN_POS          0
1553
-
1554
-  #define Z2_MICROSTEPS      128
1555
-  #define Z2_OVERCURRENT    2000
1556
-  #define Z2_STALLCURRENT   1500
1557
-  #define Z2_MAX_VOLTAGE     127
1558
-  #define Z2_CHAIN_POS         0
1559
-
1560
-  #define Z3_MICROSTEPS      128
1561
-  #define Z3_OVERCURRENT    2000
1562
-  #define Z3_STALLCURRENT   1500
1563
-  #define Z3_MAX_VOLTAGE     127
1564
-  #define Z3_CHAIN_POS         0
1565
-
1566
-  #define E0_MICROSTEPS      128
1567
-  #define E0_OVERCURRENT    2000
1568
-  #define E0_STALLCURRENT   1500
1569
-  #define E0_MAX_VOLTAGE     127
1570
-  #define E0_CHAIN_POS         0
1571
-
1572
-  #define E1_MICROSTEPS      128
1573
-  #define E1_OVERCURRENT    2000
1574
-  #define E1_STALLCURRENT   1500
1575
-  #define E1_MAX_VOLTAGE     127
1576
-  #define E1_CHAIN_POS         0
1577
-
1578
-  #define E2_MICROSTEPS      128
1579
-  #define E2_OVERCURRENT    2000
1580
-  #define E2_STALLCURRENT   1500
1581
-  #define E2_MAX_VOLTAGE     127
1582
-  #define E2_CHAIN_POS         0
1583
-
1584
-  #define E3_MICROSTEPS      128
1585
-  #define E3_OVERCURRENT    2000
1586
-  #define E3_STALLCURRENT   1500
1587
-  #define E3_MAX_VOLTAGE     127
1588
-  #define E3_CHAIN_POS         0
1589
-
1590
-  #define E4_MICROSTEPS      128
1591
-  #define E4_OVERCURRENT    2000
1592
-  #define E4_STALLCURRENT   1500
1593
-  #define E4_MAX_VOLTAGE     127
1594
-  #define E4_CHAIN_POS         0
1595
-
1596
-  #define E5_MICROSTEPS      128
1597
-  #define E5_OVERCURRENT    2000
1598
-  #define E5_STALLCURRENT   1500
1599
-  #define E5_MAX_VOLTAGE     127
1600
-  #define E5_CHAIN_POS         0
1576
+  //#define L6470_CHITCHAT        // Display additional status info
1601 1577
 
1578
+  #if AXIS_DRIVER_TYPE_X(L6470)
1579
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1580
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1581
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1582
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1583
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1584
+  #endif
1585
+
1586
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1587
+    #define X2_MICROSTEPS      128
1588
+    #define X2_OVERCURRENT    2000
1589
+    #define X2_STALLCURRENT   1500
1590
+    #define X2_MAX_VOLTAGE     127
1591
+    #define X2_CHAIN_POS         0
1592
+  #endif
1593
+
1594
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1595
+    #define Y_MICROSTEPS       128
1596
+    #define Y_OVERCURRENT     2000
1597
+    #define Y_STALLCURRENT    1500
1598
+    #define Y_MAX_VOLTAGE      127
1599
+    #define Y_CHAIN_POS          0
1600
+  #endif
1601
+
1602
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1603
+    #define Y2_MICROSTEPS      128
1604
+    #define Y2_OVERCURRENT    2000
1605
+    #define Y2_STALLCURRENT   1500
1606
+    #define Y2_MAX_VOLTAGE     127
1607
+    #define Y2_CHAIN_POS         0
1608
+  #endif
1609
+
1610
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1611
+    #define Z_MICROSTEPS       128
1612
+    #define Z_OVERCURRENT     2000
1613
+    #define Z_STALLCURRENT    1500
1614
+    #define Z_MAX_VOLTAGE      127
1615
+    #define Z_CHAIN_POS          0
1616
+  #endif
1617
+
1618
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1619
+    #define Z2_MICROSTEPS      128
1620
+    #define Z2_OVERCURRENT    2000
1621
+    #define Z2_STALLCURRENT   1500
1622
+    #define Z2_MAX_VOLTAGE     127
1623
+    #define Z2_CHAIN_POS         0
1624
+  #endif
1625
+
1626
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1627
+    #define Z3_MICROSTEPS      128
1628
+    #define Z3_OVERCURRENT    2000
1629
+    #define Z3_STALLCURRENT   1500
1630
+    #define Z3_MAX_VOLTAGE     127
1631
+    #define Z3_CHAIN_POS         0
1632
+  #endif
1633
+
1634
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1635
+    #define E0_MICROSTEPS      128
1636
+    #define E0_OVERCURRENT    2000
1637
+    #define E0_STALLCURRENT   1500
1638
+    #define E0_MAX_VOLTAGE     127
1639
+    #define E0_CHAIN_POS         0
1640
+  #endif
1641
+
1642
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1643
+    #define E1_MICROSTEPS      128
1644
+    #define E1_OVERCURRENT    2000
1645
+    #define E1_STALLCURRENT   1500
1646
+    #define E1_MAX_VOLTAGE     127
1647
+    #define E1_CHAIN_POS         0
1648
+  #endif
1649
+
1650
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1651
+    #define E2_MICROSTEPS      128
1652
+    #define E2_OVERCURRENT    2000
1653
+    #define E2_STALLCURRENT   1500
1654
+    #define E2_MAX_VOLTAGE     127
1655
+    #define E2_CHAIN_POS         0
1656
+  #endif
1657
+
1658
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1659
+    #define E3_MICROSTEPS      128
1660
+    #define E3_OVERCURRENT    2000
1661
+    #define E3_STALLCURRENT   1500
1662
+    #define E3_MAX_VOLTAGE     127
1663
+    #define E3_CHAIN_POS         0
1664
+  #endif
1665
+
1666
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1667
+    #define E4_MICROSTEPS      128
1668
+    #define E4_OVERCURRENT    2000
1669
+    #define E4_STALLCURRENT   1500
1670
+    #define E4_MAX_VOLTAGE     127
1671
+    #define E4_CHAIN_POS         0
1672
+  #endif
1673
+
1674
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1675
+    #define E5_MICROSTEPS      128
1676
+    #define E5_OVERCURRENT    2000
1677
+    #define E5_STALLCURRENT   1500
1678
+    #define E5_MAX_VOLTAGE     127
1679
+    #define E5_CHAIN_POS         0
1680
+  #endif
1602 1681
 
1603 1682
   /**
1604 1683
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1623,8 +1702,6 @@
1623 1702
     //#define L6470_STOP_ON_ERROR
1624 1703
   #endif
1625 1704
 
1626
-  #define L6470_CHITCHAT     // enable display of additional status info
1627
-
1628 1705
 #endif // L6470
1629 1706
 
1630 1707
 /**

+ 221
- 144
Marlin/src/config/examples/UltiMachine/Archim2/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/VORONDesign/Configuration_adv.h View File

@@ -1237,57 +1237,83 @@
1237 1237
  */
1238 1238
 #if HAS_DRIVER(TMC26X)
1239 1239
 
1240
-  #define X_MAX_CURRENT     1000 // in mA
1241
-  #define X_SENSE_RESISTOR    91 // in mOhms
1242
-  #define X_MICROSTEPS        16 // number of microsteps
1240
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1241
+    #define X_MAX_CURRENT     1000  // (mA)
1242
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1243
+    #define X_MICROSTEPS        16  // Number of microsteps
1244
+  #endif
1243 1245
 
1244
-  #define X2_MAX_CURRENT    1000
1245
-  #define X2_SENSE_RESISTOR   91
1246
-  #define X2_MICROSTEPS       16
1246
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1247
+    #define X2_MAX_CURRENT    1000
1248
+    #define X2_SENSE_RESISTOR   91
1249
+    #define X2_MICROSTEPS       16
1250
+  #endif
1247 1251
 
1248
-  #define Y_MAX_CURRENT     1000
1249
-  #define Y_SENSE_RESISTOR    91
1250
-  #define Y_MICROSTEPS        16
1252
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1253
+    #define Y_MAX_CURRENT     1000
1254
+    #define Y_SENSE_RESISTOR    91
1255
+    #define Y_MICROSTEPS        16
1256
+  #endif
1251 1257
 
1252
-  #define Y2_MAX_CURRENT    1000
1253
-  #define Y2_SENSE_RESISTOR   91
1254
-  #define Y2_MICROSTEPS       16
1258
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1259
+    #define Y2_MAX_CURRENT    1000
1260
+    #define Y2_SENSE_RESISTOR   91
1261
+    #define Y2_MICROSTEPS       16
1262
+  #endif
1255 1263
 
1256
-  #define Z_MAX_CURRENT     1000
1257
-  #define Z_SENSE_RESISTOR    91
1258
-  #define Z_MICROSTEPS        16
1264
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1265
+    #define Z_MAX_CURRENT     1000
1266
+    #define Z_SENSE_RESISTOR    91
1267
+    #define Z_MICROSTEPS        16
1268
+  #endif
1259 1269
 
1260
-  #define Z2_MAX_CURRENT    1000
1261
-  #define Z2_SENSE_RESISTOR   91
1262
-  #define Z2_MICROSTEPS       16
1270
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1271
+    #define Z2_MAX_CURRENT    1000
1272
+    #define Z2_SENSE_RESISTOR   91
1273
+    #define Z2_MICROSTEPS       16
1274
+  #endif
1263 1275
 
1264
-  #define Z3_MAX_CURRENT    1000
1265
-  #define Z3_SENSE_RESISTOR   91
1266
-  #define Z3_MICROSTEPS       16
1276
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1277
+    #define Z3_MAX_CURRENT    1000
1278
+    #define Z3_SENSE_RESISTOR   91
1279
+    #define Z3_MICROSTEPS       16
1280
+  #endif
1267 1281
 
1268
-  #define E0_MAX_CURRENT    1000
1269
-  #define E0_SENSE_RESISTOR   91
1270
-  #define E0_MICROSTEPS       16
1282
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1283
+    #define E0_MAX_CURRENT    1000
1284
+    #define E0_SENSE_RESISTOR   91
1285
+    #define E0_MICROSTEPS       16
1286
+  #endif
1271 1287
 
1272
-  #define E1_MAX_CURRENT    1000
1273
-  #define E1_SENSE_RESISTOR   91
1274
-  #define E1_MICROSTEPS       16
1288
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1289
+    #define E1_MAX_CURRENT    1000
1290
+    #define E1_SENSE_RESISTOR   91
1291
+    #define E1_MICROSTEPS       16
1292
+  #endif
1275 1293
 
1276
-  #define E2_MAX_CURRENT    1000
1277
-  #define E2_SENSE_RESISTOR   91
1278
-  #define E2_MICROSTEPS       16
1294
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1295
+    #define E2_MAX_CURRENT    1000
1296
+    #define E2_SENSE_RESISTOR   91
1297
+    #define E2_MICROSTEPS       16
1298
+  #endif
1279 1299
 
1280
-  #define E3_MAX_CURRENT    1000
1281
-  #define E3_SENSE_RESISTOR   91
1282
-  #define E3_MICROSTEPS       16
1300
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1301
+    #define E3_MAX_CURRENT    1000
1302
+    #define E3_SENSE_RESISTOR   91
1303
+    #define E3_MICROSTEPS       16
1304
+  #endif
1283 1305
 
1284
-  #define E4_MAX_CURRENT    1000
1285
-  #define E4_SENSE_RESISTOR   91
1286
-  #define E4_MICROSTEPS       16
1306
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1307
+    #define E4_MAX_CURRENT    1000
1308
+    #define E4_SENSE_RESISTOR   91
1309
+    #define E4_MICROSTEPS       16
1310
+  #endif
1287 1311
 
1288
-  #define E5_MAX_CURRENT    1000
1289
-  #define E5_SENSE_RESISTOR   91
1290
-  #define E5_MICROSTEPS       16
1312
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1313
+    #define E5_MAX_CURRENT    1000
1314
+    #define E5_SENSE_RESISTOR   91
1315
+    #define E5_MICROSTEPS       16
1316
+  #endif
1291 1317
 
1292 1318
 #endif // TMC26X
1293 1319
 
@@ -1314,44 +1340,70 @@
1314 1340
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1315 1341
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1316 1342
 
1317
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1318
-  #define X_MICROSTEPS        16  // 0..256
1343
+  #if AXIS_IS_TMC(X)
1344
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1345
+    #define X_MICROSTEPS   16  // 0..256
1346
+  #endif
1319 1347
 
1320
-  #define Y_CURRENT          800
1321
-  #define Y_MICROSTEPS        16
1348
+  #if AXIS_IS_TMC(X2)
1349
+    #define X2_CURRENT    800
1350
+    #define X2_MICROSTEPS  16
1351
+  #endif
1322 1352
 
1323
-  #define Z_CURRENT          800
1324
-  #define Z_MICROSTEPS        16
1353
+  #if AXIS_IS_TMC(Y)
1354
+    #define Y_CURRENT     800
1355
+    #define Y_MICROSTEPS   16
1356
+  #endif
1325 1357
 
1326
-  #define X2_CURRENT         800
1327
-  #define X2_MICROSTEPS       16
1358
+  #if AXIS_IS_TMC(Y2)
1359
+    #define Y2_CURRENT    800
1360
+    #define Y2_MICROSTEPS  16
1361
+  #endif
1328 1362
 
1329
-  #define Y2_CURRENT         800
1330
-  #define Y2_MICROSTEPS       16
1363
+  #if AXIS_IS_TMC(Z)
1364
+    #define Z_CURRENT     800
1365
+    #define Z_MICROSTEPS   16
1366
+  #endif
1331 1367
 
1332
-  #define Z2_CURRENT         800
1333
-  #define Z2_MICROSTEPS       16
1368
+  #if AXIS_IS_TMC(Z2)
1369
+    #define Z2_CURRENT    800
1370
+    #define Z2_MICROSTEPS  16
1371
+  #endif
1334 1372
 
1335
-  #define Z3_CURRENT         800
1336
-  #define Z3_MICROSTEPS       16
1373
+  #if AXIS_IS_TMC(Z3)
1374
+    #define Z3_CURRENT    800
1375
+    #define Z3_MICROSTEPS  16
1376
+  #endif
1337 1377
 
1338
-  #define E0_CURRENT         800
1339
-  #define E0_MICROSTEPS       16
1378
+  #if AXIS_IS_TMC(E0)
1379
+    #define E0_CURRENT    800
1380
+    #define E0_MICROSTEPS  16
1381
+  #endif
1340 1382
 
1341
-  #define E1_CURRENT         800
1342
-  #define E1_MICROSTEPS       16
1383
+  #if AXIS_IS_TMC(E1)
1384
+    #define E1_CURRENT    800
1385
+    #define E1_MICROSTEPS  16
1386
+  #endif
1343 1387
 
1344
-  #define E2_CURRENT         800
1345
-  #define E2_MICROSTEPS       16
1388
+  #if AXIS_IS_TMC(E2)
1389
+    #define E2_CURRENT    800
1390
+    #define E2_MICROSTEPS  16
1391
+  #endif
1346 1392
 
1347
-  #define E3_CURRENT         800
1348
-  #define E3_MICROSTEPS       16
1393
+  #if AXIS_IS_TMC(E3)
1394
+    #define E3_CURRENT    800
1395
+    #define E3_MICROSTEPS  16
1396
+  #endif
1349 1397
 
1350
-  #define E4_CURRENT         800
1351
-  #define E4_MICROSTEPS       16
1398
+  #if AXIS_IS_TMC(E4)
1399
+    #define E4_CURRENT    800
1400
+    #define E4_MICROSTEPS  16
1401
+  #endif
1352 1402
 
1353
-  #define E5_CURRENT         800
1354
-  #define E5_MICROSTEPS       16
1403
+  #if AXIS_IS_TMC(E5)
1404
+    #define E5_CURRENT    800
1405
+    #define E5_MICROSTEPS  16
1406
+  #endif
1355 1407
 
1356 1408
   /**
1357 1409
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1521,84 +1573,111 @@
1521 1573
  */
1522 1574
 #if HAS_DRIVER(L6470)
1523 1575
 
1524
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1525
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1526
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1527
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1528
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1529
-
1530
-  #define X2_MICROSTEPS      128
1531
-  #define X2_OVERCURRENT    2000
1532
-  #define X2_STALLCURRENT   1500
1533
-  #define X2_MAX_VOLTAGE     127
1534
-  #define X2_CHAIN_POS         0
1535
-
1536
-  #define Y_MICROSTEPS       128
1537
-  #define Y_OVERCURRENT     2000
1538
-  #define Y_STALLCURRENT    1500
1539
-  #define Y_MAX_VOLTAGE      127
1540
-  #define Y_CHAIN_POS          0
1541
-
1542
-  #define Y2_MICROSTEPS      128
1543
-  #define Y2_OVERCURRENT    2000
1544
-  #define Y2_STALLCURRENT   1500
1545
-  #define Y2_MAX_VOLTAGE     127
1546
-  #define Y2_CHAIN_POS         0
1547
-
1548
-  #define Z_MICROSTEPS       128
1549
-  #define Z_OVERCURRENT     2000
1550
-  #define Z_STALLCURRENT    1500
1551
-  #define Z_MAX_VOLTAGE      127
1552
-  #define Z_CHAIN_POS          0
1553
-
1554
-  #define Z2_MICROSTEPS      128
1555
-  #define Z2_OVERCURRENT    2000
1556
-  #define Z2_STALLCURRENT   1500
1557
-  #define Z2_MAX_VOLTAGE     127
1558
-  #define Z2_CHAIN_POS         0
1559
-
1560
-  #define Z3_MICROSTEPS      128
1561
-  #define Z3_OVERCURRENT    2000
1562
-  #define Z3_STALLCURRENT   1500
1563
-  #define Z3_MAX_VOLTAGE     127
1564
-  #define Z3_CHAIN_POS         0
1565
-
1566
-  #define E0_MICROSTEPS      128
1567
-  #define E0_OVERCURRENT    2000
1568
-  #define E0_STALLCURRENT   1500
1569
-  #define E0_MAX_VOLTAGE     127
1570
-  #define E0_CHAIN_POS         0
1571
-
1572
-  #define E1_MICROSTEPS      128
1573
-  #define E1_OVERCURRENT    2000
1574
-  #define E1_STALLCURRENT   1500
1575
-  #define E1_MAX_VOLTAGE     127
1576
-  #define E1_CHAIN_POS         0
1577
-
1578
-  #define E2_MICROSTEPS      128
1579
-  #define E2_OVERCURRENT    2000
1580
-  #define E2_STALLCURRENT   1500
1581
-  #define E2_MAX_VOLTAGE     127
1582
-  #define E2_CHAIN_POS         0
1583
-
1584
-  #define E3_MICROSTEPS      128
1585
-  #define E3_OVERCURRENT    2000
1586
-  #define E3_STALLCURRENT   1500
1587
-  #define E3_MAX_VOLTAGE     127
1588
-  #define E3_CHAIN_POS         0
1589
-
1590
-  #define E4_MICROSTEPS      128
1591
-  #define E4_OVERCURRENT    2000
1592
-  #define E4_STALLCURRENT   1500
1593
-  #define E4_MAX_VOLTAGE     127
1594
-  #define E4_CHAIN_POS         0
1595
-
1596
-  #define E5_MICROSTEPS      128
1597
-  #define E5_OVERCURRENT    2000
1598
-  #define E5_STALLCURRENT   1500
1599
-  #define E5_MAX_VOLTAGE     127
1600
-  #define E5_CHAIN_POS         0
1576
+  //#define L6470_CHITCHAT        // Display additional status info
1601 1577
 
1578
+  #if AXIS_DRIVER_TYPE_X(L6470)
1579
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1580
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1581
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1582
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1583
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1584
+  #endif
1585
+
1586
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1587
+    #define X2_MICROSTEPS      128
1588
+    #define X2_OVERCURRENT    2000
1589
+    #define X2_STALLCURRENT   1500
1590
+    #define X2_MAX_VOLTAGE     127
1591
+    #define X2_CHAIN_POS         0
1592
+  #endif
1593
+
1594
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1595
+    #define Y_MICROSTEPS       128
1596
+    #define Y_OVERCURRENT     2000
1597
+    #define Y_STALLCURRENT    1500
1598
+    #define Y_MAX_VOLTAGE      127
1599
+    #define Y_CHAIN_POS          0
1600
+  #endif
1601
+
1602
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1603
+    #define Y2_MICROSTEPS      128
1604
+    #define Y2_OVERCURRENT    2000
1605
+    #define Y2_STALLCURRENT   1500
1606
+    #define Y2_MAX_VOLTAGE     127
1607
+    #define Y2_CHAIN_POS         0
1608
+  #endif
1609
+
1610
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1611
+    #define Z_MICROSTEPS       128
1612
+    #define Z_OVERCURRENT     2000
1613
+    #define Z_STALLCURRENT    1500
1614
+    #define Z_MAX_VOLTAGE      127
1615
+    #define Z_CHAIN_POS          0
1616
+  #endif
1617
+
1618
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1619
+    #define Z2_MICROSTEPS      128
1620
+    #define Z2_OVERCURRENT    2000
1621
+    #define Z2_STALLCURRENT   1500
1622
+    #define Z2_MAX_VOLTAGE     127
1623
+    #define Z2_CHAIN_POS         0
1624
+  #endif
1625
+
1626
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1627
+    #define Z3_MICROSTEPS      128
1628
+    #define Z3_OVERCURRENT    2000
1629
+    #define Z3_STALLCURRENT   1500
1630
+    #define Z3_MAX_VOLTAGE     127
1631
+    #define Z3_CHAIN_POS         0
1632
+  #endif
1633
+
1634
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1635
+    #define E0_MICROSTEPS      128
1636
+    #define E0_OVERCURRENT    2000
1637
+    #define E0_STALLCURRENT   1500
1638
+    #define E0_MAX_VOLTAGE     127
1639
+    #define E0_CHAIN_POS         0
1640
+  #endif
1641
+
1642
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1643
+    #define E1_MICROSTEPS      128
1644
+    #define E1_OVERCURRENT    2000
1645
+    #define E1_STALLCURRENT   1500
1646
+    #define E1_MAX_VOLTAGE     127
1647
+    #define E1_CHAIN_POS         0
1648
+  #endif
1649
+
1650
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1651
+    #define E2_MICROSTEPS      128
1652
+    #define E2_OVERCURRENT    2000
1653
+    #define E2_STALLCURRENT   1500
1654
+    #define E2_MAX_VOLTAGE     127
1655
+    #define E2_CHAIN_POS         0
1656
+  #endif
1657
+
1658
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1659
+    #define E3_MICROSTEPS      128
1660
+    #define E3_OVERCURRENT    2000
1661
+    #define E3_STALLCURRENT   1500
1662
+    #define E3_MAX_VOLTAGE     127
1663
+    #define E3_CHAIN_POS         0
1664
+  #endif
1665
+
1666
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1667
+    #define E4_MICROSTEPS      128
1668
+    #define E4_OVERCURRENT    2000
1669
+    #define E4_STALLCURRENT   1500
1670
+    #define E4_MAX_VOLTAGE     127
1671
+    #define E4_CHAIN_POS         0
1672
+  #endif
1673
+
1674
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1675
+    #define E5_MICROSTEPS      128
1676
+    #define E5_OVERCURRENT    2000
1677
+    #define E5_STALLCURRENT   1500
1678
+    #define E5_MAX_VOLTAGE     127
1679
+    #define E5_CHAIN_POS         0
1680
+  #endif
1602 1681
 
1603 1682
   /**
1604 1683
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1623,8 +1702,6 @@
1623 1702
     //#define L6470_STOP_ON_ERROR
1624 1703
   #endif
1625 1704
 
1626
-  #define L6470_CHITCHAT     // enable display of additional status info
1627
-
1628 1705
 #endif // L6470
1629 1706
 
1630 1707
 /**

+ 221
- 144
Marlin/src/config/examples/Velleman/K8200/Configuration_adv.h View File

@@ -1249,57 +1249,83 @@
1249 1249
  */
1250 1250
 #if HAS_DRIVER(TMC26X)
1251 1251
 
1252
-  #define X_MAX_CURRENT     1000 // in mA
1253
-  #define X_SENSE_RESISTOR    91 // in mOhms
1254
-  #define X_MICROSTEPS        16 // number of microsteps
1252
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1253
+    #define X_MAX_CURRENT     1000  // (mA)
1254
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1255
+    #define X_MICROSTEPS        16  // Number of microsteps
1256
+  #endif
1255 1257
 
1256
-  #define X2_MAX_CURRENT    1000
1257
-  #define X2_SENSE_RESISTOR   91
1258
-  #define X2_MICROSTEPS       16
1258
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1259
+    #define X2_MAX_CURRENT    1000
1260
+    #define X2_SENSE_RESISTOR   91
1261
+    #define X2_MICROSTEPS       16
1262
+  #endif
1259 1263
 
1260
-  #define Y_MAX_CURRENT     1000
1261
-  #define Y_SENSE_RESISTOR    91
1262
-  #define Y_MICROSTEPS        16
1264
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1265
+    #define Y_MAX_CURRENT     1000
1266
+    #define Y_SENSE_RESISTOR    91
1267
+    #define Y_MICROSTEPS        16
1268
+  #endif
1263 1269
 
1264
-  #define Y2_MAX_CURRENT    1000
1265
-  #define Y2_SENSE_RESISTOR   91
1266
-  #define Y2_MICROSTEPS       16
1270
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1271
+    #define Y2_MAX_CURRENT    1000
1272
+    #define Y2_SENSE_RESISTOR   91
1273
+    #define Y2_MICROSTEPS       16
1274
+  #endif
1267 1275
 
1268
-  #define Z_MAX_CURRENT     1000
1269
-  #define Z_SENSE_RESISTOR    91
1270
-  #define Z_MICROSTEPS        16
1276
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1277
+    #define Z_MAX_CURRENT     1000
1278
+    #define Z_SENSE_RESISTOR    91
1279
+    #define Z_MICROSTEPS        16
1280
+  #endif
1271 1281
 
1272
-  #define Z2_MAX_CURRENT    1000
1273
-  #define Z2_SENSE_RESISTOR   91
1274
-  #define Z2_MICROSTEPS       16
1282
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1283
+    #define Z2_MAX_CURRENT    1000
1284
+    #define Z2_SENSE_RESISTOR   91
1285
+    #define Z2_MICROSTEPS       16
1286
+  #endif
1275 1287
 
1276
-  #define Z3_MAX_CURRENT    1000
1277
-  #define Z3_SENSE_RESISTOR   91
1278
-  #define Z3_MICROSTEPS       16
1288
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1289
+    #define Z3_MAX_CURRENT    1000
1290
+    #define Z3_SENSE_RESISTOR   91
1291
+    #define Z3_MICROSTEPS       16
1292
+  #endif
1279 1293
 
1280
-  #define E0_MAX_CURRENT    1000
1281
-  #define E0_SENSE_RESISTOR   91
1282
-  #define E0_MICROSTEPS       16
1294
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1295
+    #define E0_MAX_CURRENT    1000
1296
+    #define E0_SENSE_RESISTOR   91
1297
+    #define E0_MICROSTEPS       16
1298
+  #endif
1283 1299
 
1284
-  #define E1_MAX_CURRENT    1000
1285
-  #define E1_SENSE_RESISTOR   91
1286
-  #define E1_MICROSTEPS       16
1300
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1301
+    #define E1_MAX_CURRENT    1000
1302
+    #define E1_SENSE_RESISTOR   91
1303
+    #define E1_MICROSTEPS       16
1304
+  #endif
1287 1305
 
1288
-  #define E2_MAX_CURRENT    1000
1289
-  #define E2_SENSE_RESISTOR   91
1290
-  #define E2_MICROSTEPS       16
1306
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1307
+    #define E2_MAX_CURRENT    1000
1308
+    #define E2_SENSE_RESISTOR   91
1309
+    #define E2_MICROSTEPS       16
1310
+  #endif
1291 1311
 
1292
-  #define E3_MAX_CURRENT    1000
1293
-  #define E3_SENSE_RESISTOR   91
1294
-  #define E3_MICROSTEPS       16
1312
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1313
+    #define E3_MAX_CURRENT    1000
1314
+    #define E3_SENSE_RESISTOR   91
1315
+    #define E3_MICROSTEPS       16
1316
+  #endif
1295 1317
 
1296
-  #define E4_MAX_CURRENT    1000
1297
-  #define E4_SENSE_RESISTOR   91
1298
-  #define E4_MICROSTEPS       16
1318
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1319
+    #define E4_MAX_CURRENT    1000
1320
+    #define E4_SENSE_RESISTOR   91
1321
+    #define E4_MICROSTEPS       16
1322
+  #endif
1299 1323
 
1300
-  #define E5_MAX_CURRENT    1000
1301
-  #define E5_SENSE_RESISTOR   91
1302
-  #define E5_MICROSTEPS       16
1324
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1325
+    #define E5_MAX_CURRENT    1000
1326
+    #define E5_SENSE_RESISTOR   91
1327
+    #define E5_MICROSTEPS       16
1328
+  #endif
1303 1329
 
1304 1330
 #endif // TMC26X
1305 1331
 
@@ -1326,44 +1352,70 @@
1326 1352
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1327 1353
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1328 1354
 
1329
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1330
-  #define X_MICROSTEPS        16  // 0..256
1355
+  #if AXIS_IS_TMC(X)
1356
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1357
+    #define X_MICROSTEPS   16  // 0..256
1358
+  #endif
1331 1359
 
1332
-  #define Y_CURRENT          800
1333
-  #define Y_MICROSTEPS        16
1360
+  #if AXIS_IS_TMC(X2)
1361
+    #define X2_CURRENT    800
1362
+    #define X2_MICROSTEPS  16
1363
+  #endif
1334 1364
 
1335
-  #define Z_CURRENT          800
1336
-  #define Z_MICROSTEPS        16
1365
+  #if AXIS_IS_TMC(Y)
1366
+    #define Y_CURRENT     800
1367
+    #define Y_MICROSTEPS   16
1368
+  #endif
1337 1369
 
1338
-  #define X2_CURRENT         800
1339
-  #define X2_MICROSTEPS       16
1370
+  #if AXIS_IS_TMC(Y2)
1371
+    #define Y2_CURRENT    800
1372
+    #define Y2_MICROSTEPS  16
1373
+  #endif
1340 1374
 
1341
-  #define Y2_CURRENT         800
1342
-  #define Y2_MICROSTEPS       16
1375
+  #if AXIS_IS_TMC(Z)
1376
+    #define Z_CURRENT     800
1377
+    #define Z_MICROSTEPS   16
1378
+  #endif
1343 1379
 
1344
-  #define Z2_CURRENT         800
1345
-  #define Z2_MICROSTEPS       16
1380
+  #if AXIS_IS_TMC(Z2)
1381
+    #define Z2_CURRENT    800
1382
+    #define Z2_MICROSTEPS  16
1383
+  #endif
1346 1384
 
1347
-  #define Z3_CURRENT         800
1348
-  #define Z3_MICROSTEPS       16
1385
+  #if AXIS_IS_TMC(Z3)
1386
+    #define Z3_CURRENT    800
1387
+    #define Z3_MICROSTEPS  16
1388
+  #endif
1349 1389
 
1350
-  #define E0_CURRENT         800
1351
-  #define E0_MICROSTEPS       16
1390
+  #if AXIS_IS_TMC(E0)
1391
+    #define E0_CURRENT    800
1392
+    #define E0_MICROSTEPS  16
1393
+  #endif
1352 1394
 
1353
-  #define E1_CURRENT         800
1354
-  #define E1_MICROSTEPS       16
1395
+  #if AXIS_IS_TMC(E1)
1396
+    #define E1_CURRENT    800
1397
+    #define E1_MICROSTEPS  16
1398
+  #endif
1355 1399
 
1356
-  #define E2_CURRENT         800
1357
-  #define E2_MICROSTEPS       16
1400
+  #if AXIS_IS_TMC(E2)
1401
+    #define E2_CURRENT    800
1402
+    #define E2_MICROSTEPS  16
1403
+  #endif
1358 1404
 
1359
-  #define E3_CURRENT         800
1360
-  #define E3_MICROSTEPS       16
1405
+  #if AXIS_IS_TMC(E3)
1406
+    #define E3_CURRENT    800
1407
+    #define E3_MICROSTEPS  16
1408
+  #endif
1361 1409
 
1362
-  #define E4_CURRENT         800
1363
-  #define E4_MICROSTEPS       16
1410
+  #if AXIS_IS_TMC(E4)
1411
+    #define E4_CURRENT    800
1412
+    #define E4_MICROSTEPS  16
1413
+  #endif
1364 1414
 
1365
-  #define E5_CURRENT         800
1366
-  #define E5_MICROSTEPS       16
1415
+  #if AXIS_IS_TMC(E5)
1416
+    #define E5_CURRENT    800
1417
+    #define E5_MICROSTEPS  16
1418
+  #endif
1367 1419
 
1368 1420
   /**
1369 1421
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1533,84 +1585,111 @@
1533 1585
  */
1534 1586
 #if HAS_DRIVER(L6470)
1535 1587
 
1536
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1537
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1538
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1539
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1540
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1541
-
1542
-  #define X2_MICROSTEPS      128
1543
-  #define X2_OVERCURRENT    2000
1544
-  #define X2_STALLCURRENT   1500
1545
-  #define X2_MAX_VOLTAGE     127
1546
-  #define X2_CHAIN_POS         0
1547
-
1548
-  #define Y_MICROSTEPS       128
1549
-  #define Y_OVERCURRENT     2000
1550
-  #define Y_STALLCURRENT    1500
1551
-  #define Y_MAX_VOLTAGE      127
1552
-  #define Y_CHAIN_POS          0
1553
-
1554
-  #define Y2_MICROSTEPS      128
1555
-  #define Y2_OVERCURRENT    2000
1556
-  #define Y2_STALLCURRENT   1500
1557
-  #define Y2_MAX_VOLTAGE     127
1558
-  #define Y2_CHAIN_POS         0
1559
-
1560
-  #define Z_MICROSTEPS       128
1561
-  #define Z_OVERCURRENT     2000
1562
-  #define Z_STALLCURRENT    1500
1563
-  #define Z_MAX_VOLTAGE      127
1564
-  #define Z_CHAIN_POS          0
1565
-
1566
-  #define Z2_MICROSTEPS      128
1567
-  #define Z2_OVERCURRENT    2000
1568
-  #define Z2_STALLCURRENT   1500
1569
-  #define Z2_MAX_VOLTAGE     127
1570
-  #define Z2_CHAIN_POS         0
1571
-
1572
-  #define Z3_MICROSTEPS      128
1573
-  #define Z3_OVERCURRENT    2000
1574
-  #define Z3_STALLCURRENT   1500
1575
-  #define Z3_MAX_VOLTAGE     127
1576
-  #define Z3_CHAIN_POS         0
1577
-
1578
-  #define E0_MICROSTEPS      128
1579
-  #define E0_OVERCURRENT    2000
1580
-  #define E0_STALLCURRENT   1500
1581
-  #define E0_MAX_VOLTAGE     127
1582
-  #define E0_CHAIN_POS         0
1583
-
1584
-  #define E1_MICROSTEPS      128
1585
-  #define E1_OVERCURRENT    2000
1586
-  #define E1_STALLCURRENT   1500
1587
-  #define E1_MAX_VOLTAGE     127
1588
-  #define E1_CHAIN_POS         0
1589
-
1590
-  #define E2_MICROSTEPS      128
1591
-  #define E2_OVERCURRENT    2000
1592
-  #define E2_STALLCURRENT   1500
1593
-  #define E2_MAX_VOLTAGE     127
1594
-  #define E2_CHAIN_POS         0
1595
-
1596
-  #define E3_MICROSTEPS      128
1597
-  #define E3_OVERCURRENT    2000
1598
-  #define E3_STALLCURRENT   1500
1599
-  #define E3_MAX_VOLTAGE     127
1600
-  #define E3_CHAIN_POS         0
1601
-
1602
-  #define E4_MICROSTEPS      128
1603
-  #define E4_OVERCURRENT    2000
1604
-  #define E4_STALLCURRENT   1500
1605
-  #define E4_MAX_VOLTAGE     127
1606
-  #define E4_CHAIN_POS         0
1607
-
1608
-  #define E5_MICROSTEPS      128
1609
-  #define E5_OVERCURRENT    2000
1610
-  #define E5_STALLCURRENT   1500
1611
-  #define E5_MAX_VOLTAGE     127
1612
-  #define E5_CHAIN_POS         0
1588
+  //#define L6470_CHITCHAT        // Display additional status info
1613 1589
 
1590
+  #if AXIS_DRIVER_TYPE_X(L6470)
1591
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1592
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1593
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1594
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1595
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1596
+  #endif
1597
+
1598
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1599
+    #define X2_MICROSTEPS      128
1600
+    #define X2_OVERCURRENT    2000
1601
+    #define X2_STALLCURRENT   1500
1602
+    #define X2_MAX_VOLTAGE     127
1603
+    #define X2_CHAIN_POS         0
1604
+  #endif
1605
+
1606
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1607
+    #define Y_MICROSTEPS       128
1608
+    #define Y_OVERCURRENT     2000
1609
+    #define Y_STALLCURRENT    1500
1610
+    #define Y_MAX_VOLTAGE      127
1611
+    #define Y_CHAIN_POS          0
1612
+  #endif
1613
+
1614
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1615
+    #define Y2_MICROSTEPS      128
1616
+    #define Y2_OVERCURRENT    2000
1617
+    #define Y2_STALLCURRENT   1500
1618
+    #define Y2_MAX_VOLTAGE     127
1619
+    #define Y2_CHAIN_POS         0
1620
+  #endif
1621
+
1622
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1623
+    #define Z_MICROSTEPS       128
1624
+    #define Z_OVERCURRENT     2000
1625
+    #define Z_STALLCURRENT    1500
1626
+    #define Z_MAX_VOLTAGE      127
1627
+    #define Z_CHAIN_POS          0
1628
+  #endif
1629
+
1630
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1631
+    #define Z2_MICROSTEPS      128
1632
+    #define Z2_OVERCURRENT    2000
1633
+    #define Z2_STALLCURRENT   1500
1634
+    #define Z2_MAX_VOLTAGE     127
1635
+    #define Z2_CHAIN_POS         0
1636
+  #endif
1637
+
1638
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1639
+    #define Z3_MICROSTEPS      128
1640
+    #define Z3_OVERCURRENT    2000
1641
+    #define Z3_STALLCURRENT   1500
1642
+    #define Z3_MAX_VOLTAGE     127
1643
+    #define Z3_CHAIN_POS         0
1644
+  #endif
1645
+
1646
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1647
+    #define E0_MICROSTEPS      128
1648
+    #define E0_OVERCURRENT    2000
1649
+    #define E0_STALLCURRENT   1500
1650
+    #define E0_MAX_VOLTAGE     127
1651
+    #define E0_CHAIN_POS         0
1652
+  #endif
1653
+
1654
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1655
+    #define E1_MICROSTEPS      128
1656
+    #define E1_OVERCURRENT    2000
1657
+    #define E1_STALLCURRENT   1500
1658
+    #define E1_MAX_VOLTAGE     127
1659
+    #define E1_CHAIN_POS         0
1660
+  #endif
1661
+
1662
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1663
+    #define E2_MICROSTEPS      128
1664
+    #define E2_OVERCURRENT    2000
1665
+    #define E2_STALLCURRENT   1500
1666
+    #define E2_MAX_VOLTAGE     127
1667
+    #define E2_CHAIN_POS         0
1668
+  #endif
1669
+
1670
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1671
+    #define E3_MICROSTEPS      128
1672
+    #define E3_OVERCURRENT    2000
1673
+    #define E3_STALLCURRENT   1500
1674
+    #define E3_MAX_VOLTAGE     127
1675
+    #define E3_CHAIN_POS         0
1676
+  #endif
1677
+
1678
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1679
+    #define E4_MICROSTEPS      128
1680
+    #define E4_OVERCURRENT    2000
1681
+    #define E4_STALLCURRENT   1500
1682
+    #define E4_MAX_VOLTAGE     127
1683
+    #define E4_CHAIN_POS         0
1684
+  #endif
1685
+
1686
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1687
+    #define E5_MICROSTEPS      128
1688
+    #define E5_OVERCURRENT    2000
1689
+    #define E5_STALLCURRENT   1500
1690
+    #define E5_MAX_VOLTAGE     127
1691
+    #define E5_CHAIN_POS         0
1692
+  #endif
1614 1693
 
1615 1694
   /**
1616 1695
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1635,8 +1714,6 @@
1635 1714
     //#define L6470_STOP_ON_ERROR
1636 1715
   #endif
1637 1716
 
1638
-  #define L6470_CHITCHAT     // enable display of additional status info
1639
-
1640 1717
 #endif // L6470
1641 1718
 
1642 1719
 /**

+ 221
- 144
Marlin/src/config/examples/Velleman/K8400/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/WASP/PowerWASP/Configuration_adv.h View File

@@ -1237,57 +1237,83 @@
1237 1237
  */
1238 1238
 #if HAS_DRIVER(TMC26X)
1239 1239
 
1240
-  #define X_MAX_CURRENT     1000 // in mA
1241
-  #define X_SENSE_RESISTOR    91 // in mOhms
1242
-  #define X_MICROSTEPS        16 // number of microsteps
1240
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1241
+    #define X_MAX_CURRENT     1000  // (mA)
1242
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1243
+    #define X_MICROSTEPS        16  // Number of microsteps
1244
+  #endif
1243 1245
 
1244
-  #define X2_MAX_CURRENT    1000
1245
-  #define X2_SENSE_RESISTOR   91
1246
-  #define X2_MICROSTEPS       16
1246
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1247
+    #define X2_MAX_CURRENT    1000
1248
+    #define X2_SENSE_RESISTOR   91
1249
+    #define X2_MICROSTEPS       16
1250
+  #endif
1247 1251
 
1248
-  #define Y_MAX_CURRENT     1000
1249
-  #define Y_SENSE_RESISTOR    91
1250
-  #define Y_MICROSTEPS        16
1252
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1253
+    #define Y_MAX_CURRENT     1000
1254
+    #define Y_SENSE_RESISTOR    91
1255
+    #define Y_MICROSTEPS        16
1256
+  #endif
1251 1257
 
1252
-  #define Y2_MAX_CURRENT    1000
1253
-  #define Y2_SENSE_RESISTOR   91
1254
-  #define Y2_MICROSTEPS       16
1258
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1259
+    #define Y2_MAX_CURRENT    1000
1260
+    #define Y2_SENSE_RESISTOR   91
1261
+    #define Y2_MICROSTEPS       16
1262
+  #endif
1255 1263
 
1256
-  #define Z_MAX_CURRENT     1000
1257
-  #define Z_SENSE_RESISTOR    91
1258
-  #define Z_MICROSTEPS        16
1264
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1265
+    #define Z_MAX_CURRENT     1000
1266
+    #define Z_SENSE_RESISTOR    91
1267
+    #define Z_MICROSTEPS        16
1268
+  #endif
1259 1269
 
1260
-  #define Z2_MAX_CURRENT    1000
1261
-  #define Z2_SENSE_RESISTOR   91
1262
-  #define Z2_MICROSTEPS       16
1270
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1271
+    #define Z2_MAX_CURRENT    1000
1272
+    #define Z2_SENSE_RESISTOR   91
1273
+    #define Z2_MICROSTEPS       16
1274
+  #endif
1263 1275
 
1264
-  #define Z3_MAX_CURRENT    1000
1265
-  #define Z3_SENSE_RESISTOR   91
1266
-  #define Z3_MICROSTEPS       16
1276
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1277
+    #define Z3_MAX_CURRENT    1000
1278
+    #define Z3_SENSE_RESISTOR   91
1279
+    #define Z3_MICROSTEPS       16
1280
+  #endif
1267 1281
 
1268
-  #define E0_MAX_CURRENT    1000
1269
-  #define E0_SENSE_RESISTOR   91
1270
-  #define E0_MICROSTEPS       16
1282
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1283
+    #define E0_MAX_CURRENT    1000
1284
+    #define E0_SENSE_RESISTOR   91
1285
+    #define E0_MICROSTEPS       16
1286
+  #endif
1271 1287
 
1272
-  #define E1_MAX_CURRENT    1000
1273
-  #define E1_SENSE_RESISTOR   91
1274
-  #define E1_MICROSTEPS       16
1288
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1289
+    #define E1_MAX_CURRENT    1000
1290
+    #define E1_SENSE_RESISTOR   91
1291
+    #define E1_MICROSTEPS       16
1292
+  #endif
1275 1293
 
1276
-  #define E2_MAX_CURRENT    1000
1277
-  #define E2_SENSE_RESISTOR   91
1278
-  #define E2_MICROSTEPS       16
1294
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1295
+    #define E2_MAX_CURRENT    1000
1296
+    #define E2_SENSE_RESISTOR   91
1297
+    #define E2_MICROSTEPS       16
1298
+  #endif
1279 1299
 
1280
-  #define E3_MAX_CURRENT    1000
1281
-  #define E3_SENSE_RESISTOR   91
1282
-  #define E3_MICROSTEPS       16
1300
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1301
+    #define E3_MAX_CURRENT    1000
1302
+    #define E3_SENSE_RESISTOR   91
1303
+    #define E3_MICROSTEPS       16
1304
+  #endif
1283 1305
 
1284
-  #define E4_MAX_CURRENT    1000
1285
-  #define E4_SENSE_RESISTOR   91
1286
-  #define E4_MICROSTEPS       16
1306
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1307
+    #define E4_MAX_CURRENT    1000
1308
+    #define E4_SENSE_RESISTOR   91
1309
+    #define E4_MICROSTEPS       16
1310
+  #endif
1287 1311
 
1288
-  #define E5_MAX_CURRENT    1000
1289
-  #define E5_SENSE_RESISTOR   91
1290
-  #define E5_MICROSTEPS       16
1312
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1313
+    #define E5_MAX_CURRENT    1000
1314
+    #define E5_SENSE_RESISTOR   91
1315
+    #define E5_MICROSTEPS       16
1316
+  #endif
1291 1317
 
1292 1318
 #endif // TMC26X
1293 1319
 
@@ -1314,44 +1340,70 @@
1314 1340
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1315 1341
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1316 1342
 
1317
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1318
-  #define X_MICROSTEPS        16  // 0..256
1343
+  #if AXIS_IS_TMC(X)
1344
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1345
+    #define X_MICROSTEPS   16  // 0..256
1346
+  #endif
1319 1347
 
1320
-  #define Y_CURRENT          800
1321
-  #define Y_MICROSTEPS        16
1348
+  #if AXIS_IS_TMC(X2)
1349
+    #define X2_CURRENT    800
1350
+    #define X2_MICROSTEPS  16
1351
+  #endif
1322 1352
 
1323
-  #define Z_CURRENT          800
1324
-  #define Z_MICROSTEPS        16
1353
+  #if AXIS_IS_TMC(Y)
1354
+    #define Y_CURRENT     800
1355
+    #define Y_MICROSTEPS   16
1356
+  #endif
1325 1357
 
1326
-  #define X2_CURRENT         800
1327
-  #define X2_MICROSTEPS       16
1358
+  #if AXIS_IS_TMC(Y2)
1359
+    #define Y2_CURRENT    800
1360
+    #define Y2_MICROSTEPS  16
1361
+  #endif
1328 1362
 
1329
-  #define Y2_CURRENT         800
1330
-  #define Y2_MICROSTEPS       16
1363
+  #if AXIS_IS_TMC(Z)
1364
+    #define Z_CURRENT     800
1365
+    #define Z_MICROSTEPS   16
1366
+  #endif
1331 1367
 
1332
-  #define Z2_CURRENT         800
1333
-  #define Z2_MICROSTEPS       16
1368
+  #if AXIS_IS_TMC(Z2)
1369
+    #define Z2_CURRENT    800
1370
+    #define Z2_MICROSTEPS  16
1371
+  #endif
1334 1372
 
1335
-  #define Z3_CURRENT         800
1336
-  #define Z3_MICROSTEPS       16
1373
+  #if AXIS_IS_TMC(Z3)
1374
+    #define Z3_CURRENT    800
1375
+    #define Z3_MICROSTEPS  16
1376
+  #endif
1337 1377
 
1338
-  #define E0_CURRENT         800
1339
-  #define E0_MICROSTEPS       16
1378
+  #if AXIS_IS_TMC(E0)
1379
+    #define E0_CURRENT    800
1380
+    #define E0_MICROSTEPS  16
1381
+  #endif
1340 1382
 
1341
-  #define E1_CURRENT         800
1342
-  #define E1_MICROSTEPS       16
1383
+  #if AXIS_IS_TMC(E1)
1384
+    #define E1_CURRENT    800
1385
+    #define E1_MICROSTEPS  16
1386
+  #endif
1343 1387
 
1344
-  #define E2_CURRENT         800
1345
-  #define E2_MICROSTEPS       16
1388
+  #if AXIS_IS_TMC(E2)
1389
+    #define E2_CURRENT    800
1390
+    #define E2_MICROSTEPS  16
1391
+  #endif
1346 1392
 
1347
-  #define E3_CURRENT         800
1348
-  #define E3_MICROSTEPS       16
1393
+  #if AXIS_IS_TMC(E3)
1394
+    #define E3_CURRENT    800
1395
+    #define E3_MICROSTEPS  16
1396
+  #endif
1349 1397
 
1350
-  #define E4_CURRENT         800
1351
-  #define E4_MICROSTEPS       16
1398
+  #if AXIS_IS_TMC(E4)
1399
+    #define E4_CURRENT    800
1400
+    #define E4_MICROSTEPS  16
1401
+  #endif
1352 1402
 
1353
-  #define E5_CURRENT         800
1354
-  #define E5_MICROSTEPS       16
1403
+  #if AXIS_IS_TMC(E5)
1404
+    #define E5_CURRENT    800
1405
+    #define E5_MICROSTEPS  16
1406
+  #endif
1355 1407
 
1356 1408
   /**
1357 1409
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1521,84 +1573,111 @@
1521 1573
  */
1522 1574
 #if HAS_DRIVER(L6470)
1523 1575
 
1524
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1525
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1526
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1527
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1528
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1529
-
1530
-  #define X2_MICROSTEPS      128
1531
-  #define X2_OVERCURRENT    2000
1532
-  #define X2_STALLCURRENT   1500
1533
-  #define X2_MAX_VOLTAGE     127
1534
-  #define X2_CHAIN_POS         0
1535
-
1536
-  #define Y_MICROSTEPS       128
1537
-  #define Y_OVERCURRENT     2000
1538
-  #define Y_STALLCURRENT    1500
1539
-  #define Y_MAX_VOLTAGE      127
1540
-  #define Y_CHAIN_POS          0
1541
-
1542
-  #define Y2_MICROSTEPS      128
1543
-  #define Y2_OVERCURRENT    2000
1544
-  #define Y2_STALLCURRENT   1500
1545
-  #define Y2_MAX_VOLTAGE     127
1546
-  #define Y2_CHAIN_POS         0
1547
-
1548
-  #define Z_MICROSTEPS       128
1549
-  #define Z_OVERCURRENT     2000
1550
-  #define Z_STALLCURRENT    1500
1551
-  #define Z_MAX_VOLTAGE      127
1552
-  #define Z_CHAIN_POS          0
1553
-
1554
-  #define Z2_MICROSTEPS      128
1555
-  #define Z2_OVERCURRENT    2000
1556
-  #define Z2_STALLCURRENT   1500
1557
-  #define Z2_MAX_VOLTAGE     127
1558
-  #define Z2_CHAIN_POS         0
1559
-
1560
-  #define Z3_MICROSTEPS      128
1561
-  #define Z3_OVERCURRENT    2000
1562
-  #define Z3_STALLCURRENT   1500
1563
-  #define Z3_MAX_VOLTAGE     127
1564
-  #define Z3_CHAIN_POS         0
1565
-
1566
-  #define E0_MICROSTEPS      128
1567
-  #define E0_OVERCURRENT    2000
1568
-  #define E0_STALLCURRENT   1500
1569
-  #define E0_MAX_VOLTAGE     127
1570
-  #define E0_CHAIN_POS         0
1571
-
1572
-  #define E1_MICROSTEPS      128
1573
-  #define E1_OVERCURRENT    2000
1574
-  #define E1_STALLCURRENT   1500
1575
-  #define E1_MAX_VOLTAGE     127
1576
-  #define E1_CHAIN_POS         0
1577
-
1578
-  #define E2_MICROSTEPS      128
1579
-  #define E2_OVERCURRENT    2000
1580
-  #define E2_STALLCURRENT   1500
1581
-  #define E2_MAX_VOLTAGE     127
1582
-  #define E2_CHAIN_POS         0
1583
-
1584
-  #define E3_MICROSTEPS      128
1585
-  #define E3_OVERCURRENT    2000
1586
-  #define E3_STALLCURRENT   1500
1587
-  #define E3_MAX_VOLTAGE     127
1588
-  #define E3_CHAIN_POS         0
1589
-
1590
-  #define E4_MICROSTEPS      128
1591
-  #define E4_OVERCURRENT    2000
1592
-  #define E4_STALLCURRENT   1500
1593
-  #define E4_MAX_VOLTAGE     127
1594
-  #define E4_CHAIN_POS         0
1595
-
1596
-  #define E5_MICROSTEPS      128
1597
-  #define E5_OVERCURRENT    2000
1598
-  #define E5_STALLCURRENT   1500
1599
-  #define E5_MAX_VOLTAGE     127
1600
-  #define E5_CHAIN_POS         0
1576
+  //#define L6470_CHITCHAT        // Display additional status info
1601 1577
 
1578
+  #if AXIS_DRIVER_TYPE_X(L6470)
1579
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1580
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1581
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1582
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1583
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1584
+  #endif
1585
+
1586
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1587
+    #define X2_MICROSTEPS    128
1588
+    #define X2_OVERCURRENT  2000
1589
+    #define X2_STALLCURRENT 1500
1590
+    #define X2_MAX_VOLTAGE   127
1591
+    #define X2_CHAIN_POS       0
1592
+  #endif
1593
+
1594
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1595
+    #define Y_MICROSTEPS     128
1596
+    #define Y_OVERCURRENT   2000
1597
+    #define Y_STALLCURRENT  1500
1598
+    #define Y_MAX_VOLTAGE    127
1599
+    #define Y_CHAIN_POS        0
1600
+  #endif
1601
+
1602
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1603
+    #define Y2_MICROSTEPS    128
1604
+    #define Y2_OVERCURRENT  2000
1605
+    #define Y2_STALLCURRENT 1500
1606
+    #define Y2_MAX_VOLTAGE   127
1607
+    #define Y2_CHAIN_POS       0
1608
+  #endif
1609
+
1610
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1611
+    #define Z_MICROSTEPS     128
1612
+    #define Z_OVERCURRENT   2000
1613
+    #define Z_STALLCURRENT  1500
1614
+    #define Z_MAX_VOLTAGE    127
1615
+    #define Z_CHAIN_POS        0
1616
+  #endif
1617
+
1618
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1619
+    #define Z2_MICROSTEPS    128
1620
+    #define Z2_OVERCURRENT  2000
1621
+    #define Z2_STALLCURRENT 1500
1622
+    #define Z2_MAX_VOLTAGE   127
1623
+    #define Z2_CHAIN_POS       0
1624
+  #endif
1625
+
1626
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1627
+    #define Z3_MICROSTEPS    128
1628
+    #define Z3_OVERCURRENT  2000
1629
+    #define Z3_STALLCURRENT 1500
1630
+    #define Z3_MAX_VOLTAGE   127
1631
+    #define Z3_CHAIN_POS       0
1632
+  #endif
1633
+
1634
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1635
+    #define E0_MICROSTEPS    128
1636
+    #define E0_OVERCURRENT  2000
1637
+    #define E0_STALLCURRENT 1500
1638
+    #define E0_MAX_VOLTAGE   127
1639
+    #define E0_CHAIN_POS       0
1640
+  #endif
1641
+
1642
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1643
+    #define E1_MICROSTEPS    128
1644
+    #define E1_OVERCURRENT  2000
1645
+    #define E1_STALLCURRENT 1500
1646
+    #define E1_MAX_VOLTAGE   127
1647
+    #define E1_CHAIN_POS       0
1648
+  #endif
1649
+
1650
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1651
+    #define E2_MICROSTEPS    128
1652
+    #define E2_OVERCURRENT  2000
1653
+    #define E2_STALLCURRENT 1500
1654
+    #define E2_MAX_VOLTAGE   127
1655
+    #define E2_CHAIN_POS       0
1656
+  #endif
1657
+
1658
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1659
+    #define E3_MICROSTEPS    128
1660
+    #define E3_OVERCURRENT  2000
1661
+    #define E3_STALLCURRENT 1500
1662
+    #define E3_MAX_VOLTAGE   127
1663
+    #define E3_CHAIN_POS       0
1664
+  #endif
1665
+
1666
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1667
+    #define E4_MICROSTEPS    128
1668
+    #define E4_OVERCURRENT  2000
1669
+    #define E4_STALLCURRENT 1500
1670
+    #define E4_MAX_VOLTAGE   127
1671
+    #define E4_CHAIN_POS       0
1672
+  #endif
1673
+
1674
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1675
+    #define E5_MICROSTEPS    128
1676
+    #define E5_OVERCURRENT  2000
1677
+    #define E5_STALLCURRENT 1500
1678
+    #define E5_MAX_VOLTAGE   127
1679
+    #define E5_CHAIN_POS       0
1680
+  #endif
1602 1681
 
1603 1682
   /**
1604 1683
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1623,8 +1702,6 @@
1623 1702
     //#define L6470_STOP_ON_ERROR
1624 1703
   #endif
1625 1704
 
1626
-  #define L6470_CHITCHAT     // enable display of additional status info
1627
-
1628 1705
 #endif // L6470
1629 1706
 
1630 1707
 /**

+ 221
- 144
Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration_adv.h View File

@@ -1238,57 +1238,83 @@
1238 1238
  */
1239 1239
 #if HAS_DRIVER(TMC26X)
1240 1240
 
1241
-  #define X_MAX_CURRENT     1000 // in mA
1242
-  #define X_SENSE_RESISTOR    91 // in mOhms
1243
-  #define X_MICROSTEPS        16 // number of microsteps
1241
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1242
+    #define X_MAX_CURRENT     1000  // (mA)
1243
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1244
+    #define X_MICROSTEPS        16  // Number of microsteps
1245
+  #endif
1244 1246
 
1245
-  #define X2_MAX_CURRENT    1000
1246
-  #define X2_SENSE_RESISTOR   91
1247
-  #define X2_MICROSTEPS       16
1247
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1248
+    #define X2_MAX_CURRENT    1000
1249
+    #define X2_SENSE_RESISTOR   91
1250
+    #define X2_MICROSTEPS       16
1251
+  #endif
1248 1252
 
1249
-  #define Y_MAX_CURRENT     1000
1250
-  #define Y_SENSE_RESISTOR    91
1251
-  #define Y_MICROSTEPS        16
1253
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1254
+    #define Y_MAX_CURRENT     1000
1255
+    #define Y_SENSE_RESISTOR    91
1256
+    #define Y_MICROSTEPS        16
1257
+  #endif
1252 1258
 
1253
-  #define Y2_MAX_CURRENT    1000
1254
-  #define Y2_SENSE_RESISTOR   91
1255
-  #define Y2_MICROSTEPS       16
1259
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1260
+    #define Y2_MAX_CURRENT    1000
1261
+    #define Y2_SENSE_RESISTOR   91
1262
+    #define Y2_MICROSTEPS       16
1263
+  #endif
1256 1264
 
1257
-  #define Z_MAX_CURRENT     1000
1258
-  #define Z_SENSE_RESISTOR    91
1259
-  #define Z_MICROSTEPS        16
1265
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1266
+    #define Z_MAX_CURRENT     1000
1267
+    #define Z_SENSE_RESISTOR    91
1268
+    #define Z_MICROSTEPS        16
1269
+  #endif
1260 1270
 
1261
-  #define Z2_MAX_CURRENT    1000
1262
-  #define Z2_SENSE_RESISTOR   91
1263
-  #define Z2_MICROSTEPS       16
1271
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1272
+    #define Z2_MAX_CURRENT    1000
1273
+    #define Z2_SENSE_RESISTOR   91
1274
+    #define Z2_MICROSTEPS       16
1275
+  #endif
1264 1276
 
1265
-  #define Z3_MAX_CURRENT    1000
1266
-  #define Z3_SENSE_RESISTOR   91
1267
-  #define Z3_MICROSTEPS       16
1277
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1278
+    #define Z3_MAX_CURRENT    1000
1279
+    #define Z3_SENSE_RESISTOR   91
1280
+    #define Z3_MICROSTEPS       16
1281
+  #endif
1268 1282
 
1269
-  #define E0_MAX_CURRENT    1000
1270
-  #define E0_SENSE_RESISTOR   91
1271
-  #define E0_MICROSTEPS       16
1283
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1284
+    #define E0_MAX_CURRENT    1000
1285
+    #define E0_SENSE_RESISTOR   91
1286
+    #define E0_MICROSTEPS       16
1287
+  #endif
1272 1288
 
1273
-  #define E1_MAX_CURRENT    1000
1274
-  #define E1_SENSE_RESISTOR   91
1275
-  #define E1_MICROSTEPS       16
1289
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1290
+    #define E1_MAX_CURRENT    1000
1291
+    #define E1_SENSE_RESISTOR   91
1292
+    #define E1_MICROSTEPS       16
1293
+  #endif
1276 1294
 
1277
-  #define E2_MAX_CURRENT    1000
1278
-  #define E2_SENSE_RESISTOR   91
1279
-  #define E2_MICROSTEPS       16
1295
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1296
+    #define E2_MAX_CURRENT    1000
1297
+    #define E2_SENSE_RESISTOR   91
1298
+    #define E2_MICROSTEPS       16
1299
+  #endif
1280 1300
 
1281
-  #define E3_MAX_CURRENT    1000
1282
-  #define E3_SENSE_RESISTOR   91
1283
-  #define E3_MICROSTEPS       16
1301
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1302
+    #define E3_MAX_CURRENT    1000
1303
+    #define E3_SENSE_RESISTOR   91
1304
+    #define E3_MICROSTEPS       16
1305
+  #endif
1284 1306
 
1285
-  #define E4_MAX_CURRENT    1000
1286
-  #define E4_SENSE_RESISTOR   91
1287
-  #define E4_MICROSTEPS       16
1307
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1308
+    #define E4_MAX_CURRENT    1000
1309
+    #define E4_SENSE_RESISTOR   91
1310
+    #define E4_MICROSTEPS       16
1311
+  #endif
1288 1312
 
1289
-  #define E5_MAX_CURRENT    1000
1290
-  #define E5_SENSE_RESISTOR   91
1291
-  #define E5_MICROSTEPS       16
1313
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1314
+    #define E5_MAX_CURRENT    1000
1315
+    #define E5_SENSE_RESISTOR   91
1316
+    #define E5_MICROSTEPS       16
1317
+  #endif
1292 1318
 
1293 1319
 #endif // TMC26X
1294 1320
 
@@ -1315,44 +1341,70 @@
1315 1341
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1316 1342
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1317 1343
 
1318
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1319
-  #define X_MICROSTEPS        16  // 0..256
1344
+  #if AXIS_IS_TMC(X)
1345
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1346
+    #define X_MICROSTEPS   16  // 0..256
1347
+  #endif
1320 1348
 
1321
-  #define Y_CURRENT          800
1322
-  #define Y_MICROSTEPS        16
1349
+  #if AXIS_IS_TMC(X2)
1350
+    #define X2_CURRENT    800
1351
+    #define X2_MICROSTEPS  16
1352
+  #endif
1323 1353
 
1324
-  #define Z_CURRENT          800
1325
-  #define Z_MICROSTEPS        16
1354
+  #if AXIS_IS_TMC(Y)
1355
+    #define Y_CURRENT     800
1356
+    #define Y_MICROSTEPS   16
1357
+  #endif
1326 1358
 
1327
-  #define X2_CURRENT         800
1328
-  #define X2_MICROSTEPS       16
1359
+  #if AXIS_IS_TMC(Y2)
1360
+    #define Y2_CURRENT    800
1361
+    #define Y2_MICROSTEPS  16
1362
+  #endif
1329 1363
 
1330
-  #define Y2_CURRENT         800
1331
-  #define Y2_MICROSTEPS       16
1364
+  #if AXIS_IS_TMC(Z)
1365
+    #define Z_CURRENT     800
1366
+    #define Z_MICROSTEPS   16
1367
+  #endif
1332 1368
 
1333
-  #define Z2_CURRENT         800
1334
-  #define Z2_MICROSTEPS       16
1369
+  #if AXIS_IS_TMC(Z2)
1370
+    #define Z2_CURRENT    800
1371
+    #define Z2_MICROSTEPS  16
1372
+  #endif
1335 1373
 
1336
-  #define Z3_CURRENT         800
1337
-  #define Z3_MICROSTEPS       16
1374
+  #if AXIS_IS_TMC(Z3)
1375
+    #define Z3_CURRENT    800
1376
+    #define Z3_MICROSTEPS  16
1377
+  #endif
1338 1378
 
1339
-  #define E0_CURRENT         800
1340
-  #define E0_MICROSTEPS       16
1379
+  #if AXIS_IS_TMC(E0)
1380
+    #define E0_CURRENT    800
1381
+    #define E0_MICROSTEPS  16
1382
+  #endif
1341 1383
 
1342
-  #define E1_CURRENT         800
1343
-  #define E1_MICROSTEPS       16
1384
+  #if AXIS_IS_TMC(E1)
1385
+    #define E1_CURRENT    800
1386
+    #define E1_MICROSTEPS  16
1387
+  #endif
1344 1388
 
1345
-  #define E2_CURRENT         800
1346
-  #define E2_MICROSTEPS       16
1389
+  #if AXIS_IS_TMC(E2)
1390
+    #define E2_CURRENT    800
1391
+    #define E2_MICROSTEPS  16
1392
+  #endif
1347 1393
 
1348
-  #define E3_CURRENT         800
1349
-  #define E3_MICROSTEPS       16
1394
+  #if AXIS_IS_TMC(E3)
1395
+    #define E3_CURRENT    800
1396
+    #define E3_MICROSTEPS  16
1397
+  #endif
1350 1398
 
1351
-  #define E4_CURRENT         800
1352
-  #define E4_MICROSTEPS       16
1399
+  #if AXIS_IS_TMC(E4)
1400
+    #define E4_CURRENT    800
1401
+    #define E4_MICROSTEPS  16
1402
+  #endif
1353 1403
 
1354
-  #define E5_CURRENT         800
1355
-  #define E5_MICROSTEPS       16
1404
+  #if AXIS_IS_TMC(E5)
1405
+    #define E5_CURRENT    800
1406
+    #define E5_MICROSTEPS  16
1407
+  #endif
1356 1408
 
1357 1409
   /**
1358 1410
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1522,84 +1574,111 @@
1522 1574
  */
1523 1575
 #if HAS_DRIVER(L6470)
1524 1576
 
1525
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1526
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1527
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1528
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1529
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1530
-
1531
-  #define X2_MICROSTEPS      128
1532
-  #define X2_OVERCURRENT    2000
1533
-  #define X2_STALLCURRENT   1500
1534
-  #define X2_MAX_VOLTAGE     127
1535
-  #define X2_CHAIN_POS         0
1536
-
1537
-  #define Y_MICROSTEPS       128
1538
-  #define Y_OVERCURRENT     2000
1539
-  #define Y_STALLCURRENT    1500
1540
-  #define Y_MAX_VOLTAGE      127
1541
-  #define Y_CHAIN_POS          0
1542
-
1543
-  #define Y2_MICROSTEPS      128
1544
-  #define Y2_OVERCURRENT    2000
1545
-  #define Y2_STALLCURRENT   1500
1546
-  #define Y2_MAX_VOLTAGE     127
1547
-  #define Y2_CHAIN_POS         0
1548
-
1549
-  #define Z_MICROSTEPS       128
1550
-  #define Z_OVERCURRENT     2000
1551
-  #define Z_STALLCURRENT    1500
1552
-  #define Z_MAX_VOLTAGE      127
1553
-  #define Z_CHAIN_POS          0
1554
-
1555
-  #define Z2_MICROSTEPS      128
1556
-  #define Z2_OVERCURRENT    2000
1557
-  #define Z2_STALLCURRENT   1500
1558
-  #define Z2_MAX_VOLTAGE     127
1559
-  #define Z2_CHAIN_POS         0
1560
-
1561
-  #define Z3_MICROSTEPS      128
1562
-  #define Z3_OVERCURRENT    2000
1563
-  #define Z3_STALLCURRENT   1500
1564
-  #define Z3_MAX_VOLTAGE     127
1565
-  #define Z3_CHAIN_POS         0
1566
-
1567
-  #define E0_MICROSTEPS      128
1568
-  #define E0_OVERCURRENT    2000
1569
-  #define E0_STALLCURRENT   1500
1570
-  #define E0_MAX_VOLTAGE     127
1571
-  #define E0_CHAIN_POS         0
1572
-
1573
-  #define E1_MICROSTEPS      128
1574
-  #define E1_OVERCURRENT    2000
1575
-  #define E1_STALLCURRENT   1500
1576
-  #define E1_MAX_VOLTAGE     127
1577
-  #define E1_CHAIN_POS         0
1578
-
1579
-  #define E2_MICROSTEPS      128
1580
-  #define E2_OVERCURRENT    2000
1581
-  #define E2_STALLCURRENT   1500
1582
-  #define E2_MAX_VOLTAGE     127
1583
-  #define E2_CHAIN_POS         0
1584
-
1585
-  #define E3_MICROSTEPS      128
1586
-  #define E3_OVERCURRENT    2000
1587
-  #define E3_STALLCURRENT   1500
1588
-  #define E3_MAX_VOLTAGE     127
1589
-  #define E3_CHAIN_POS         0
1590
-
1591
-  #define E4_MICROSTEPS      128
1592
-  #define E4_OVERCURRENT    2000
1593
-  #define E4_STALLCURRENT   1500
1594
-  #define E4_MAX_VOLTAGE     127
1595
-  #define E4_CHAIN_POS         0
1596
-
1597
-  #define E5_MICROSTEPS      128
1598
-  #define E5_OVERCURRENT    2000
1599
-  #define E5_STALLCURRENT   1500
1600
-  #define E5_MAX_VOLTAGE     127
1601
-  #define E5_CHAIN_POS         0
1577
+  //#define L6470_CHITCHAT        // Display additional status info
1602 1578
 
1579
+  #if AXIS_DRIVER_TYPE_X(L6470)
1580
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1581
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1582
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1583
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1584
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1585
+  #endif
1586
+
1587
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1588
+    #define X2_MICROSTEPS      128
1589
+    #define X2_OVERCURRENT    2000
1590
+    #define X2_STALLCURRENT   1500
1591
+    #define X2_MAX_VOLTAGE     127
1592
+    #define X2_CHAIN_POS         0
1593
+  #endif
1594
+
1595
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1596
+    #define Y_MICROSTEPS       128
1597
+    #define Y_OVERCURRENT     2000
1598
+    #define Y_STALLCURRENT    1500
1599
+    #define Y_MAX_VOLTAGE      127
1600
+    #define Y_CHAIN_POS          0
1601
+  #endif
1602
+
1603
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1604
+    #define Y2_MICROSTEPS      128
1605
+    #define Y2_OVERCURRENT    2000
1606
+    #define Y2_STALLCURRENT   1500
1607
+    #define Y2_MAX_VOLTAGE     127
1608
+    #define Y2_CHAIN_POS         0
1609
+  #endif
1610
+
1611
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1612
+    #define Z_MICROSTEPS       128
1613
+    #define Z_OVERCURRENT     2000
1614
+    #define Z_STALLCURRENT    1500
1615
+    #define Z_MAX_VOLTAGE      127
1616
+    #define Z_CHAIN_POS          0
1617
+  #endif
1618
+
1619
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1620
+    #define Z2_MICROSTEPS      128
1621
+    #define Z2_OVERCURRENT    2000
1622
+    #define Z2_STALLCURRENT   1500
1623
+    #define Z2_MAX_VOLTAGE     127
1624
+    #define Z2_CHAIN_POS         0
1625
+  #endif
1626
+
1627
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1628
+    #define Z3_MICROSTEPS      128
1629
+    #define Z3_OVERCURRENT    2000
1630
+    #define Z3_STALLCURRENT   1500
1631
+    #define Z3_MAX_VOLTAGE     127
1632
+    #define Z3_CHAIN_POS         0
1633
+  #endif
1634
+
1635
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1636
+    #define E0_MICROSTEPS      128
1637
+    #define E0_OVERCURRENT    2000
1638
+    #define E0_STALLCURRENT   1500
1639
+    #define E0_MAX_VOLTAGE     127
1640
+    #define E0_CHAIN_POS         0
1641
+  #endif
1642
+
1643
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1644
+    #define E1_MICROSTEPS      128
1645
+    #define E1_OVERCURRENT    2000
1646
+    #define E1_STALLCURRENT   1500
1647
+    #define E1_MAX_VOLTAGE     127
1648
+    #define E1_CHAIN_POS         0
1649
+  #endif
1650
+
1651
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1652
+    #define E2_MICROSTEPS      128
1653
+    #define E2_OVERCURRENT    2000
1654
+    #define E2_STALLCURRENT   1500
1655
+    #define E2_MAX_VOLTAGE     127
1656
+    #define E2_CHAIN_POS         0
1657
+  #endif
1658
+
1659
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1660
+    #define E3_MICROSTEPS      128
1661
+    #define E3_OVERCURRENT    2000
1662
+    #define E3_STALLCURRENT   1500
1663
+    #define E3_MAX_VOLTAGE     127
1664
+    #define E3_CHAIN_POS         0
1665
+  #endif
1666
+
1667
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1668
+    #define E4_MICROSTEPS      128
1669
+    #define E4_OVERCURRENT    2000
1670
+    #define E4_STALLCURRENT   1500
1671
+    #define E4_MAX_VOLTAGE     127
1672
+    #define E4_CHAIN_POS         0
1673
+  #endif
1674
+
1675
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1676
+    #define E5_MICROSTEPS      128
1677
+    #define E5_OVERCURRENT    2000
1678
+    #define E5_STALLCURRENT   1500
1679
+    #define E5_MAX_VOLTAGE     127
1680
+    #define E5_CHAIN_POS         0
1681
+  #endif
1603 1682
 
1604 1683
   /**
1605 1684
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1624,8 +1703,6 @@
1624 1703
     //#define L6470_STOP_ON_ERROR
1625 1704
   #endif
1626 1705
 
1627
-  #define L6470_CHITCHAT     // enable display of additional status info
1628
-
1629 1706
 #endif // L6470
1630 1707
 
1631 1708
 /**

+ 221
- 144
Marlin/src/config/examples/delta/Anycubic/Kossel/Configuration_adv.h View File

@@ -1238,57 +1238,83 @@
1238 1238
  */
1239 1239
 #if HAS_DRIVER(TMC26X)
1240 1240
 
1241
-  #define X_MAX_CURRENT     1000 // in mA
1242
-  #define X_SENSE_RESISTOR    91 // in mOhms
1243
-  #define X_MICROSTEPS        16 // number of microsteps
1241
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1242
+    #define X_MAX_CURRENT     1000  // (mA)
1243
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1244
+    #define X_MICROSTEPS        16  // Number of microsteps
1245
+  #endif
1244 1246
 
1245
-  #define X2_MAX_CURRENT    1000
1246
-  #define X2_SENSE_RESISTOR   91
1247
-  #define X2_MICROSTEPS       16
1247
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1248
+    #define X2_MAX_CURRENT    1000
1249
+    #define X2_SENSE_RESISTOR   91
1250
+    #define X2_MICROSTEPS       16
1251
+  #endif
1248 1252
 
1249
-  #define Y_MAX_CURRENT     1000
1250
-  #define Y_SENSE_RESISTOR    91
1251
-  #define Y_MICROSTEPS        16
1253
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1254
+    #define Y_MAX_CURRENT     1000
1255
+    #define Y_SENSE_RESISTOR    91
1256
+    #define Y_MICROSTEPS        16
1257
+  #endif
1252 1258
 
1253
-  #define Y2_MAX_CURRENT    1000
1254
-  #define Y2_SENSE_RESISTOR   91
1255
-  #define Y2_MICROSTEPS       16
1259
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1260
+    #define Y2_MAX_CURRENT    1000
1261
+    #define Y2_SENSE_RESISTOR   91
1262
+    #define Y2_MICROSTEPS       16
1263
+  #endif
1256 1264
 
1257
-  #define Z_MAX_CURRENT     1000
1258
-  #define Z_SENSE_RESISTOR    91
1259
-  #define Z_MICROSTEPS        16
1265
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1266
+    #define Z_MAX_CURRENT     1000
1267
+    #define Z_SENSE_RESISTOR    91
1268
+    #define Z_MICROSTEPS        16
1269
+  #endif
1260 1270
 
1261
-  #define Z2_MAX_CURRENT    1000
1262
-  #define Z2_SENSE_RESISTOR   91
1263
-  #define Z2_MICROSTEPS       16
1271
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1272
+    #define Z2_MAX_CURRENT    1000
1273
+    #define Z2_SENSE_RESISTOR   91
1274
+    #define Z2_MICROSTEPS       16
1275
+  #endif
1264 1276
 
1265
-  #define Z3_MAX_CURRENT    1000
1266
-  #define Z3_SENSE_RESISTOR   91
1267
-  #define Z3_MICROSTEPS       16
1277
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1278
+    #define Z3_MAX_CURRENT    1000
1279
+    #define Z3_SENSE_RESISTOR   91
1280
+    #define Z3_MICROSTEPS       16
1281
+  #endif
1268 1282
 
1269
-  #define E0_MAX_CURRENT    1000
1270
-  #define E0_SENSE_RESISTOR   91
1271
-  #define E0_MICROSTEPS       16
1283
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1284
+    #define E0_MAX_CURRENT    1000
1285
+    #define E0_SENSE_RESISTOR   91
1286
+    #define E0_MICROSTEPS       16
1287
+  #endif
1272 1288
 
1273
-  #define E1_MAX_CURRENT    1000
1274
-  #define E1_SENSE_RESISTOR   91
1275
-  #define E1_MICROSTEPS       16
1289
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1290
+    #define E1_MAX_CURRENT    1000
1291
+    #define E1_SENSE_RESISTOR   91
1292
+    #define E1_MICROSTEPS       16
1293
+  #endif
1276 1294
 
1277
-  #define E2_MAX_CURRENT    1000
1278
-  #define E2_SENSE_RESISTOR   91
1279
-  #define E2_MICROSTEPS       16
1295
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1296
+    #define E2_MAX_CURRENT    1000
1297
+    #define E2_SENSE_RESISTOR   91
1298
+    #define E2_MICROSTEPS       16
1299
+  #endif
1280 1300
 
1281
-  #define E3_MAX_CURRENT    1000
1282
-  #define E3_SENSE_RESISTOR   91
1283
-  #define E3_MICROSTEPS       16
1301
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1302
+    #define E3_MAX_CURRENT    1000
1303
+    #define E3_SENSE_RESISTOR   91
1304
+    #define E3_MICROSTEPS       16
1305
+  #endif
1284 1306
 
1285
-  #define E4_MAX_CURRENT    1000
1286
-  #define E4_SENSE_RESISTOR   91
1287
-  #define E4_MICROSTEPS       16
1307
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1308
+    #define E4_MAX_CURRENT    1000
1309
+    #define E4_SENSE_RESISTOR   91
1310
+    #define E4_MICROSTEPS       16
1311
+  #endif
1288 1312
 
1289
-  #define E5_MAX_CURRENT    1000
1290
-  #define E5_SENSE_RESISTOR   91
1291
-  #define E5_MICROSTEPS       16
1313
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1314
+    #define E5_MAX_CURRENT    1000
1315
+    #define E5_SENSE_RESISTOR   91
1316
+    #define E5_MICROSTEPS       16
1317
+  #endif
1292 1318
 
1293 1319
 #endif // TMC26X
1294 1320
 
@@ -1315,44 +1341,70 @@
1315 1341
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1316 1342
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1317 1343
 
1318
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1319
-  #define X_MICROSTEPS        16  // 0..256
1344
+  #if AXIS_IS_TMC(X)
1345
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1346
+    #define X_MICROSTEPS   16  // 0..256
1347
+  #endif
1320 1348
 
1321
-  #define Y_CURRENT          800
1322
-  #define Y_MICROSTEPS        16
1349
+  #if AXIS_IS_TMC(X2)
1350
+    #define X2_CURRENT    800
1351
+    #define X2_MICROSTEPS  16
1352
+  #endif
1323 1353
 
1324
-  #define Z_CURRENT          800
1325
-  #define Z_MICROSTEPS        16
1354
+  #if AXIS_IS_TMC(Y)
1355
+    #define Y_CURRENT     800
1356
+    #define Y_MICROSTEPS   16
1357
+  #endif
1326 1358
 
1327
-  #define X2_CURRENT         800
1328
-  #define X2_MICROSTEPS       16
1359
+  #if AXIS_IS_TMC(Y2)
1360
+    #define Y2_CURRENT    800
1361
+    #define Y2_MICROSTEPS  16
1362
+  #endif
1329 1363
 
1330
-  #define Y2_CURRENT         800
1331
-  #define Y2_MICROSTEPS       16
1364
+  #if AXIS_IS_TMC(Z)
1365
+    #define Z_CURRENT     800
1366
+    #define Z_MICROSTEPS   16
1367
+  #endif
1332 1368
 
1333
-  #define Z2_CURRENT         800
1334
-  #define Z2_MICROSTEPS       16
1369
+  #if AXIS_IS_TMC(Z2)
1370
+    #define Z2_CURRENT    800
1371
+    #define Z2_MICROSTEPS  16
1372
+  #endif
1335 1373
 
1336
-  #define Z3_CURRENT         800
1337
-  #define Z3_MICROSTEPS       16
1374
+  #if AXIS_IS_TMC(Z3)
1375
+    #define Z3_CURRENT    800
1376
+    #define Z3_MICROSTEPS  16
1377
+  #endif
1338 1378
 
1339
-  #define E0_CURRENT         800
1340
-  #define E0_MICROSTEPS       16
1379
+  #if AXIS_IS_TMC(E0)
1380
+    #define E0_CURRENT    800
1381
+    #define E0_MICROSTEPS  16
1382
+  #endif
1341 1383
 
1342
-  #define E1_CURRENT         800
1343
-  #define E1_MICROSTEPS       16
1384
+  #if AXIS_IS_TMC(E1)
1385
+    #define E1_CURRENT    800
1386
+    #define E1_MICROSTEPS  16
1387
+  #endif
1344 1388
 
1345
-  #define E2_CURRENT         800
1346
-  #define E2_MICROSTEPS       16
1389
+  #if AXIS_IS_TMC(E2)
1390
+    #define E2_CURRENT    800
1391
+    #define E2_MICROSTEPS  16
1392
+  #endif
1347 1393
 
1348
-  #define E3_CURRENT         800
1349
-  #define E3_MICROSTEPS       16
1394
+  #if AXIS_IS_TMC(E3)
1395
+    #define E3_CURRENT    800
1396
+    #define E3_MICROSTEPS  16
1397
+  #endif
1350 1398
 
1351
-  #define E4_CURRENT         800
1352
-  #define E4_MICROSTEPS       16
1399
+  #if AXIS_IS_TMC(E4)
1400
+    #define E4_CURRENT    800
1401
+    #define E4_MICROSTEPS  16
1402
+  #endif
1353 1403
 
1354
-  #define E5_CURRENT         800
1355
-  #define E5_MICROSTEPS       16
1404
+  #if AXIS_IS_TMC(E5)
1405
+    #define E5_CURRENT    800
1406
+    #define E5_MICROSTEPS  16
1407
+  #endif
1356 1408
 
1357 1409
   /**
1358 1410
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1522,84 +1574,111 @@
1522 1574
  */
1523 1575
 #if HAS_DRIVER(L6470)
1524 1576
 
1525
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1526
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1527
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1528
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1529
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1530
-
1531
-  #define X2_MICROSTEPS      128
1532
-  #define X2_OVERCURRENT    2000
1533
-  #define X2_STALLCURRENT   1500
1534
-  #define X2_MAX_VOLTAGE     127
1535
-  #define X2_CHAIN_POS         0
1536
-
1537
-  #define Y_MICROSTEPS       128
1538
-  #define Y_OVERCURRENT     2000
1539
-  #define Y_STALLCURRENT    1500
1540
-  #define Y_MAX_VOLTAGE      127
1541
-  #define Y_CHAIN_POS          0
1542
-
1543
-  #define Y2_MICROSTEPS      128
1544
-  #define Y2_OVERCURRENT    2000
1545
-  #define Y2_STALLCURRENT   1500
1546
-  #define Y2_MAX_VOLTAGE     127
1547
-  #define Y2_CHAIN_POS         0
1548
-
1549
-  #define Z_MICROSTEPS       128
1550
-  #define Z_OVERCURRENT     2000
1551
-  #define Z_STALLCURRENT    1500
1552
-  #define Z_MAX_VOLTAGE      127
1553
-  #define Z_CHAIN_POS          0
1554
-
1555
-  #define Z2_MICROSTEPS      128
1556
-  #define Z2_OVERCURRENT    2000
1557
-  #define Z2_STALLCURRENT   1500
1558
-  #define Z2_MAX_VOLTAGE     127
1559
-  #define Z2_CHAIN_POS         0
1560
-
1561
-  #define Z3_MICROSTEPS      128
1562
-  #define Z3_OVERCURRENT    2000
1563
-  #define Z3_STALLCURRENT   1500
1564
-  #define Z3_MAX_VOLTAGE     127
1565
-  #define Z3_CHAIN_POS         0
1566
-
1567
-  #define E0_MICROSTEPS      128
1568
-  #define E0_OVERCURRENT    2000
1569
-  #define E0_STALLCURRENT   1500
1570
-  #define E0_MAX_VOLTAGE     127
1571
-  #define E0_CHAIN_POS         0
1572
-
1573
-  #define E1_MICROSTEPS      128
1574
-  #define E1_OVERCURRENT    2000
1575
-  #define E1_STALLCURRENT   1500
1576
-  #define E1_MAX_VOLTAGE     127
1577
-  #define E1_CHAIN_POS         0
1578
-
1579
-  #define E2_MICROSTEPS      128
1580
-  #define E2_OVERCURRENT    2000
1581
-  #define E2_STALLCURRENT   1500
1582
-  #define E2_MAX_VOLTAGE     127
1583
-  #define E2_CHAIN_POS         0
1584
-
1585
-  #define E3_MICROSTEPS      128
1586
-  #define E3_OVERCURRENT    2000
1587
-  #define E3_STALLCURRENT   1500
1588
-  #define E3_MAX_VOLTAGE     127
1589
-  #define E3_CHAIN_POS         0
1590
-
1591
-  #define E4_MICROSTEPS      128
1592
-  #define E4_OVERCURRENT    2000
1593
-  #define E4_STALLCURRENT   1500
1594
-  #define E4_MAX_VOLTAGE     127
1595
-  #define E4_CHAIN_POS         0
1596
-
1597
-  #define E5_MICROSTEPS      128
1598
-  #define E5_OVERCURRENT    2000
1599
-  #define E5_STALLCURRENT   1500
1600
-  #define E5_MAX_VOLTAGE     127
1601
-  #define E5_CHAIN_POS         0
1577
+  //#define L6470_CHITCHAT        // Display additional status info
1602 1578
 
1579
+  #if AXIS_DRIVER_TYPE_X(L6470)
1580
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1581
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1582
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1583
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1584
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1585
+  #endif
1586
+
1587
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1588
+    #define X2_MICROSTEPS      128
1589
+    #define X2_OVERCURRENT    2000
1590
+    #define X2_STALLCURRENT   1500
1591
+    #define X2_MAX_VOLTAGE     127
1592
+    #define X2_CHAIN_POS         0
1593
+  #endif
1594
+
1595
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1596
+    #define Y_MICROSTEPS       128
1597
+    #define Y_OVERCURRENT     2000
1598
+    #define Y_STALLCURRENT    1500
1599
+    #define Y_MAX_VOLTAGE      127
1600
+    #define Y_CHAIN_POS          0
1601
+  #endif
1602
+
1603
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1604
+    #define Y2_MICROSTEPS      128
1605
+    #define Y2_OVERCURRENT    2000
1606
+    #define Y2_STALLCURRENT   1500
1607
+    #define Y2_MAX_VOLTAGE     127
1608
+    #define Y2_CHAIN_POS         0
1609
+  #endif
1610
+
1611
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1612
+    #define Z_MICROSTEPS       128
1613
+    #define Z_OVERCURRENT     2000
1614
+    #define Z_STALLCURRENT    1500
1615
+    #define Z_MAX_VOLTAGE      127
1616
+    #define Z_CHAIN_POS          0
1617
+  #endif
1618
+
1619
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1620
+    #define Z2_MICROSTEPS      128
1621
+    #define Z2_OVERCURRENT    2000
1622
+    #define Z2_STALLCURRENT   1500
1623
+    #define Z2_MAX_VOLTAGE     127
1624
+    #define Z2_CHAIN_POS         0
1625
+  #endif
1626
+
1627
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1628
+    #define Z3_MICROSTEPS      128
1629
+    #define Z3_OVERCURRENT    2000
1630
+    #define Z3_STALLCURRENT   1500
1631
+    #define Z3_MAX_VOLTAGE     127
1632
+    #define Z3_CHAIN_POS         0
1633
+  #endif
1634
+
1635
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1636
+    #define E0_MICROSTEPS      128
1637
+    #define E0_OVERCURRENT    2000
1638
+    #define E0_STALLCURRENT   1500
1639
+    #define E0_MAX_VOLTAGE     127
1640
+    #define E0_CHAIN_POS         0
1641
+  #endif
1642
+
1643
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1644
+    #define E1_MICROSTEPS      128
1645
+    #define E1_OVERCURRENT    2000
1646
+    #define E1_STALLCURRENT   1500
1647
+    #define E1_MAX_VOLTAGE     127
1648
+    #define E1_CHAIN_POS         0
1649
+  #endif
1650
+
1651
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1652
+    #define E2_MICROSTEPS      128
1653
+    #define E2_OVERCURRENT    2000
1654
+    #define E2_STALLCURRENT   1500
1655
+    #define E2_MAX_VOLTAGE     127
1656
+    #define E2_CHAIN_POS         0
1657
+  #endif
1658
+
1659
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1660
+    #define E3_MICROSTEPS      128
1661
+    #define E3_OVERCURRENT    2000
1662
+    #define E3_STALLCURRENT   1500
1663
+    #define E3_MAX_VOLTAGE     127
1664
+    #define E3_CHAIN_POS         0
1665
+  #endif
1666
+
1667
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1668
+    #define E4_MICROSTEPS      128
1669
+    #define E4_OVERCURRENT    2000
1670
+    #define E4_STALLCURRENT   1500
1671
+    #define E4_MAX_VOLTAGE     127
1672
+    #define E4_CHAIN_POS         0
1673
+  #endif
1674
+
1675
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1676
+    #define E5_MICROSTEPS      128
1677
+    #define E5_OVERCURRENT    2000
1678
+    #define E5_STALLCURRENT   1500
1679
+    #define E5_MAX_VOLTAGE     127
1680
+    #define E5_CHAIN_POS         0
1681
+  #endif
1603 1682
 
1604 1683
   /**
1605 1684
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1624,8 +1703,6 @@
1624 1703
     //#define L6470_STOP_ON_ERROR
1625 1704
   #endif
1626 1705
 
1627
-  #define L6470_CHITCHAT     // enable display of additional status info
1628
-
1629 1706
 #endif // L6470
1630 1707
 
1631 1708
 /**

+ 221
- 144
Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h View File

@@ -1238,57 +1238,83 @@
1238 1238
  */
1239 1239
 #if HAS_DRIVER(TMC26X)
1240 1240
 
1241
-  #define X_MAX_CURRENT     1000 // in mA
1242
-  #define X_SENSE_RESISTOR    91 // in mOhms
1243
-  #define X_MICROSTEPS        16 // number of microsteps
1241
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1242
+    #define X_MAX_CURRENT     1000  // (mA)
1243
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1244
+    #define X_MICROSTEPS        16  // Number of microsteps
1245
+  #endif
1244 1246
 
1245
-  #define X2_MAX_CURRENT    1000
1246
-  #define X2_SENSE_RESISTOR   91
1247
-  #define X2_MICROSTEPS       16
1247
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1248
+    #define X2_MAX_CURRENT    1000
1249
+    #define X2_SENSE_RESISTOR   91
1250
+    #define X2_MICROSTEPS       16
1251
+  #endif
1248 1252
 
1249
-  #define Y_MAX_CURRENT     1000
1250
-  #define Y_SENSE_RESISTOR    91
1251
-  #define Y_MICROSTEPS        16
1253
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1254
+    #define Y_MAX_CURRENT     1000
1255
+    #define Y_SENSE_RESISTOR    91
1256
+    #define Y_MICROSTEPS        16
1257
+  #endif
1252 1258
 
1253
-  #define Y2_MAX_CURRENT    1000
1254
-  #define Y2_SENSE_RESISTOR   91
1255
-  #define Y2_MICROSTEPS       16
1259
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1260
+    #define Y2_MAX_CURRENT    1000
1261
+    #define Y2_SENSE_RESISTOR   91
1262
+    #define Y2_MICROSTEPS       16
1263
+  #endif
1256 1264
 
1257
-  #define Z_MAX_CURRENT     1000
1258
-  #define Z_SENSE_RESISTOR    91
1259
-  #define Z_MICROSTEPS        16
1265
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1266
+    #define Z_MAX_CURRENT     1000
1267
+    #define Z_SENSE_RESISTOR    91
1268
+    #define Z_MICROSTEPS        16
1269
+  #endif
1260 1270
 
1261
-  #define Z2_MAX_CURRENT    1000
1262
-  #define Z2_SENSE_RESISTOR   91
1263
-  #define Z2_MICROSTEPS       16
1271
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1272
+    #define Z2_MAX_CURRENT    1000
1273
+    #define Z2_SENSE_RESISTOR   91
1274
+    #define Z2_MICROSTEPS       16
1275
+  #endif
1264 1276
 
1265
-  #define Z3_MAX_CURRENT    1000
1266
-  #define Z3_SENSE_RESISTOR   91
1267
-  #define Z3_MICROSTEPS       16
1277
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1278
+    #define Z3_MAX_CURRENT    1000
1279
+    #define Z3_SENSE_RESISTOR   91
1280
+    #define Z3_MICROSTEPS       16
1281
+  #endif
1268 1282
 
1269
-  #define E0_MAX_CURRENT    1000
1270
-  #define E0_SENSE_RESISTOR   91
1271
-  #define E0_MICROSTEPS       16
1283
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1284
+    #define E0_MAX_CURRENT    1000
1285
+    #define E0_SENSE_RESISTOR   91
1286
+    #define E0_MICROSTEPS       16
1287
+  #endif
1272 1288
 
1273
-  #define E1_MAX_CURRENT    1000
1274
-  #define E1_SENSE_RESISTOR   91
1275
-  #define E1_MICROSTEPS       16
1289
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1290
+    #define E1_MAX_CURRENT    1000
1291
+    #define E1_SENSE_RESISTOR   91
1292
+    #define E1_MICROSTEPS       16
1293
+  #endif
1276 1294
 
1277
-  #define E2_MAX_CURRENT    1000
1278
-  #define E2_SENSE_RESISTOR   91
1279
-  #define E2_MICROSTEPS       16
1295
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1296
+    #define E2_MAX_CURRENT    1000
1297
+    #define E2_SENSE_RESISTOR   91
1298
+    #define E2_MICROSTEPS       16
1299
+  #endif
1280 1300
 
1281
-  #define E3_MAX_CURRENT    1000
1282
-  #define E3_SENSE_RESISTOR   91
1283
-  #define E3_MICROSTEPS       16
1301
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1302
+    #define E3_MAX_CURRENT    1000
1303
+    #define E3_SENSE_RESISTOR   91
1304
+    #define E3_MICROSTEPS       16
1305
+  #endif
1284 1306
 
1285
-  #define E4_MAX_CURRENT    1000
1286
-  #define E4_SENSE_RESISTOR   91
1287
-  #define E4_MICROSTEPS       16
1307
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1308
+    #define E4_MAX_CURRENT    1000
1309
+    #define E4_SENSE_RESISTOR   91
1310
+    #define E4_MICROSTEPS       16
1311
+  #endif
1288 1312
 
1289
-  #define E5_MAX_CURRENT    1000
1290
-  #define E5_SENSE_RESISTOR   91
1291
-  #define E5_MICROSTEPS       16
1313
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1314
+    #define E5_MAX_CURRENT    1000
1315
+    #define E5_SENSE_RESISTOR   91
1316
+    #define E5_MICROSTEPS       16
1317
+  #endif
1292 1318
 
1293 1319
 #endif // TMC26X
1294 1320
 
@@ -1315,44 +1341,70 @@
1315 1341
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1316 1342
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1317 1343
 
1318
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1319
-  #define X_MICROSTEPS        16  // 0..256
1344
+  #if AXIS_IS_TMC(X)
1345
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1346
+    #define X_MICROSTEPS   16  // 0..256
1347
+  #endif
1320 1348
 
1321
-  #define Y_CURRENT          800
1322
-  #define Y_MICROSTEPS        16
1349
+  #if AXIS_IS_TMC(X2)
1350
+    #define X2_CURRENT    800
1351
+    #define X2_MICROSTEPS  16
1352
+  #endif
1323 1353
 
1324
-  #define Z_CURRENT          800
1325
-  #define Z_MICROSTEPS        16
1354
+  #if AXIS_IS_TMC(Y)
1355
+    #define Y_CURRENT     800
1356
+    #define Y_MICROSTEPS   16
1357
+  #endif
1326 1358
 
1327
-  #define X2_CURRENT         800
1328
-  #define X2_MICROSTEPS       16
1359
+  #if AXIS_IS_TMC(Y2)
1360
+    #define Y2_CURRENT    800
1361
+    #define Y2_MICROSTEPS  16
1362
+  #endif
1329 1363
 
1330
-  #define Y2_CURRENT         800
1331
-  #define Y2_MICROSTEPS       16
1364
+  #if AXIS_IS_TMC(Z)
1365
+    #define Z_CURRENT     800
1366
+    #define Z_MICROSTEPS   16
1367
+  #endif
1332 1368
 
1333
-  #define Z2_CURRENT         800
1334
-  #define Z2_MICROSTEPS       16
1369
+  #if AXIS_IS_TMC(Z2)
1370
+    #define Z2_CURRENT    800
1371
+    #define Z2_MICROSTEPS  16
1372
+  #endif
1335 1373
 
1336
-  #define Z3_CURRENT         800
1337
-  #define Z3_MICROSTEPS       16
1374
+  #if AXIS_IS_TMC(Z3)
1375
+    #define Z3_CURRENT    800
1376
+    #define Z3_MICROSTEPS  16
1377
+  #endif
1338 1378
 
1339
-  #define E0_CURRENT         800
1340
-  #define E0_MICROSTEPS       16
1379
+  #if AXIS_IS_TMC(E0)
1380
+    #define E0_CURRENT    800
1381
+    #define E0_MICROSTEPS  16
1382
+  #endif
1341 1383
 
1342
-  #define E1_CURRENT         800
1343
-  #define E1_MICROSTEPS       16
1384
+  #if AXIS_IS_TMC(E1)
1385
+    #define E1_CURRENT    800
1386
+    #define E1_MICROSTEPS  16
1387
+  #endif
1344 1388
 
1345
-  #define E2_CURRENT         800
1346
-  #define E2_MICROSTEPS       16
1389
+  #if AXIS_IS_TMC(E2)
1390
+    #define E2_CURRENT    800
1391
+    #define E2_MICROSTEPS  16
1392
+  #endif
1347 1393
 
1348
-  #define E3_CURRENT         800
1349
-  #define E3_MICROSTEPS       16
1394
+  #if AXIS_IS_TMC(E3)
1395
+    #define E3_CURRENT    800
1396
+    #define E3_MICROSTEPS  16
1397
+  #endif
1350 1398
 
1351
-  #define E4_CURRENT         800
1352
-  #define E4_MICROSTEPS       16
1399
+  #if AXIS_IS_TMC(E4)
1400
+    #define E4_CURRENT    800
1401
+    #define E4_MICROSTEPS  16
1402
+  #endif
1353 1403
 
1354
-  #define E5_CURRENT         800
1355
-  #define E5_MICROSTEPS       16
1404
+  #if AXIS_IS_TMC(E5)
1405
+    #define E5_CURRENT    800
1406
+    #define E5_MICROSTEPS  16
1407
+  #endif
1356 1408
 
1357 1409
   /**
1358 1410
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1522,84 +1574,111 @@
1522 1574
  */
1523 1575
 #if HAS_DRIVER(L6470)
1524 1576
 
1525
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1526
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1527
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1528
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1529
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1530
-
1531
-  #define X2_MICROSTEPS      128
1532
-  #define X2_OVERCURRENT    2000
1533
-  #define X2_STALLCURRENT   1500
1534
-  #define X2_MAX_VOLTAGE     127
1535
-  #define X2_CHAIN_POS         0
1536
-
1537
-  #define Y_MICROSTEPS       128
1538
-  #define Y_OVERCURRENT     2000
1539
-  #define Y_STALLCURRENT    1500
1540
-  #define Y_MAX_VOLTAGE      127
1541
-  #define Y_CHAIN_POS          0
1542
-
1543
-  #define Y2_MICROSTEPS      128
1544
-  #define Y2_OVERCURRENT    2000
1545
-  #define Y2_STALLCURRENT   1500
1546
-  #define Y2_MAX_VOLTAGE     127
1547
-  #define Y2_CHAIN_POS         0
1548
-
1549
-  #define Z_MICROSTEPS       128
1550
-  #define Z_OVERCURRENT     2000
1551
-  #define Z_STALLCURRENT    1500
1552
-  #define Z_MAX_VOLTAGE      127
1553
-  #define Z_CHAIN_POS          0
1554
-
1555
-  #define Z2_MICROSTEPS      128
1556
-  #define Z2_OVERCURRENT    2000
1557
-  #define Z2_STALLCURRENT   1500
1558
-  #define Z2_MAX_VOLTAGE     127
1559
-  #define Z2_CHAIN_POS         0
1560
-
1561
-  #define Z3_MICROSTEPS      128
1562
-  #define Z3_OVERCURRENT    2000
1563
-  #define Z3_STALLCURRENT   1500
1564
-  #define Z3_MAX_VOLTAGE     127
1565
-  #define Z3_CHAIN_POS         0
1566
-
1567
-  #define E0_MICROSTEPS      128
1568
-  #define E0_OVERCURRENT    2000
1569
-  #define E0_STALLCURRENT   1500
1570
-  #define E0_MAX_VOLTAGE     127
1571
-  #define E0_CHAIN_POS         0
1572
-
1573
-  #define E1_MICROSTEPS      128
1574
-  #define E1_OVERCURRENT    2000
1575
-  #define E1_STALLCURRENT   1500
1576
-  #define E1_MAX_VOLTAGE     127
1577
-  #define E1_CHAIN_POS         0
1578
-
1579
-  #define E2_MICROSTEPS      128
1580
-  #define E2_OVERCURRENT    2000
1581
-  #define E2_STALLCURRENT   1500
1582
-  #define E2_MAX_VOLTAGE     127
1583
-  #define E2_CHAIN_POS         0
1584
-
1585
-  #define E3_MICROSTEPS      128
1586
-  #define E3_OVERCURRENT    2000
1587
-  #define E3_STALLCURRENT   1500
1588
-  #define E3_MAX_VOLTAGE     127
1589
-  #define E3_CHAIN_POS         0
1590
-
1591
-  #define E4_MICROSTEPS      128
1592
-  #define E4_OVERCURRENT    2000
1593
-  #define E4_STALLCURRENT   1500
1594
-  #define E4_MAX_VOLTAGE     127
1595
-  #define E4_CHAIN_POS         0
1596
-
1597
-  #define E5_MICROSTEPS      128
1598
-  #define E5_OVERCURRENT    2000
1599
-  #define E5_STALLCURRENT   1500
1600
-  #define E5_MAX_VOLTAGE     127
1601
-  #define E5_CHAIN_POS         0
1577
+  //#define L6470_CHITCHAT        // Display additional status info
1602 1578
 
1579
+  #if AXIS_DRIVER_TYPE_X(L6470)
1580
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1581
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1582
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1583
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1584
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1585
+  #endif
1586
+
1587
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1588
+    #define X2_MICROSTEPS      128
1589
+    #define X2_OVERCURRENT    2000
1590
+    #define X2_STALLCURRENT   1500
1591
+    #define X2_MAX_VOLTAGE     127
1592
+    #define X2_CHAIN_POS         0
1593
+  #endif
1594
+
1595
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1596
+    #define Y_MICROSTEPS       128
1597
+    #define Y_OVERCURRENT     2000
1598
+    #define Y_STALLCURRENT    1500
1599
+    #define Y_MAX_VOLTAGE      127
1600
+    #define Y_CHAIN_POS          0
1601
+  #endif
1602
+
1603
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1604
+    #define Y2_MICROSTEPS      128
1605
+    #define Y2_OVERCURRENT    2000
1606
+    #define Y2_STALLCURRENT   1500
1607
+    #define Y2_MAX_VOLTAGE     127
1608
+    #define Y2_CHAIN_POS         0
1609
+  #endif
1610
+
1611
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1612
+    #define Z_MICROSTEPS       128
1613
+    #define Z_OVERCURRENT     2000
1614
+    #define Z_STALLCURRENT    1500
1615
+    #define Z_MAX_VOLTAGE      127
1616
+    #define Z_CHAIN_POS          0
1617
+  #endif
1618
+
1619
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1620
+    #define Z2_MICROSTEPS      128
1621
+    #define Z2_OVERCURRENT    2000
1622
+    #define Z2_STALLCURRENT   1500
1623
+    #define Z2_MAX_VOLTAGE     127
1624
+    #define Z2_CHAIN_POS         0
1625
+  #endif
1626
+
1627
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1628
+    #define Z3_MICROSTEPS      128
1629
+    #define Z3_OVERCURRENT    2000
1630
+    #define Z3_STALLCURRENT   1500
1631
+    #define Z3_MAX_VOLTAGE     127
1632
+    #define Z3_CHAIN_POS         0
1633
+  #endif
1634
+
1635
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1636
+    #define E0_MICROSTEPS      128
1637
+    #define E0_OVERCURRENT    2000
1638
+    #define E0_STALLCURRENT   1500
1639
+    #define E0_MAX_VOLTAGE     127
1640
+    #define E0_CHAIN_POS         0
1641
+  #endif
1642
+
1643
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1644
+    #define E1_MICROSTEPS      128
1645
+    #define E1_OVERCURRENT    2000
1646
+    #define E1_STALLCURRENT   1500
1647
+    #define E1_MAX_VOLTAGE     127
1648
+    #define E1_CHAIN_POS         0
1649
+  #endif
1650
+
1651
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1652
+    #define E2_MICROSTEPS      128
1653
+    #define E2_OVERCURRENT    2000
1654
+    #define E2_STALLCURRENT   1500
1655
+    #define E2_MAX_VOLTAGE     127
1656
+    #define E2_CHAIN_POS         0
1657
+  #endif
1658
+
1659
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1660
+    #define E3_MICROSTEPS      128
1661
+    #define E3_OVERCURRENT    2000
1662
+    #define E3_STALLCURRENT   1500
1663
+    #define E3_MAX_VOLTAGE     127
1664
+    #define E3_CHAIN_POS         0
1665
+  #endif
1666
+
1667
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1668
+    #define E4_MICROSTEPS      128
1669
+    #define E4_OVERCURRENT    2000
1670
+    #define E4_STALLCURRENT   1500
1671
+    #define E4_MAX_VOLTAGE     127
1672
+    #define E4_CHAIN_POS         0
1673
+  #endif
1674
+
1675
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1676
+    #define E5_MICROSTEPS      128
1677
+    #define E5_OVERCURRENT    2000
1678
+    #define E5_STALLCURRENT   1500
1679
+    #define E5_MAX_VOLTAGE     127
1680
+    #define E5_CHAIN_POS         0
1681
+  #endif
1603 1682
 
1604 1683
   /**
1605 1684
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1624,8 +1703,6 @@
1624 1703
     //#define L6470_STOP_ON_ERROR
1625 1704
   #endif
1626 1705
 
1627
-  #define L6470_CHITCHAT     // enable display of additional status info
1628
-
1629 1706
 #endif // L6470
1630 1707
 
1631 1708
 /**

+ 221
- 144
Marlin/src/config/examples/delta/FLSUN/kossel/Configuration_adv.h View File

@@ -1238,57 +1238,83 @@
1238 1238
  */
1239 1239
 #if HAS_DRIVER(TMC26X)
1240 1240
 
1241
-  #define X_MAX_CURRENT     1000 // in mA
1242
-  #define X_SENSE_RESISTOR    91 // in mOhms
1243
-  #define X_MICROSTEPS        16 // number of microsteps
1241
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1242
+    #define X_MAX_CURRENT     1000  // (mA)
1243
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1244
+    #define X_MICROSTEPS        16  // Number of microsteps
1245
+  #endif
1244 1246
 
1245
-  #define X2_MAX_CURRENT    1000
1246
-  #define X2_SENSE_RESISTOR   91
1247
-  #define X2_MICROSTEPS       16
1247
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1248
+    #define X2_MAX_CURRENT    1000
1249
+    #define X2_SENSE_RESISTOR   91
1250
+    #define X2_MICROSTEPS       16
1251
+  #endif
1248 1252
 
1249
-  #define Y_MAX_CURRENT     1000
1250
-  #define Y_SENSE_RESISTOR    91
1251
-  #define Y_MICROSTEPS        16
1253
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1254
+    #define Y_MAX_CURRENT     1000
1255
+    #define Y_SENSE_RESISTOR    91
1256
+    #define Y_MICROSTEPS        16
1257
+  #endif
1252 1258
 
1253
-  #define Y2_MAX_CURRENT    1000
1254
-  #define Y2_SENSE_RESISTOR   91
1255
-  #define Y2_MICROSTEPS       16
1259
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1260
+    #define Y2_MAX_CURRENT    1000
1261
+    #define Y2_SENSE_RESISTOR   91
1262
+    #define Y2_MICROSTEPS       16
1263
+  #endif
1256 1264
 
1257
-  #define Z_MAX_CURRENT     1000
1258
-  #define Z_SENSE_RESISTOR    91
1259
-  #define Z_MICROSTEPS        16
1265
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1266
+    #define Z_MAX_CURRENT     1000
1267
+    #define Z_SENSE_RESISTOR    91
1268
+    #define Z_MICROSTEPS        16
1269
+  #endif
1260 1270
 
1261
-  #define Z2_MAX_CURRENT    1000
1262
-  #define Z2_SENSE_RESISTOR   91
1263
-  #define Z2_MICROSTEPS       16
1271
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1272
+    #define Z2_MAX_CURRENT    1000
1273
+    #define Z2_SENSE_RESISTOR   91
1274
+    #define Z2_MICROSTEPS       16
1275
+  #endif
1264 1276
 
1265
-  #define Z3_MAX_CURRENT    1000
1266
-  #define Z3_SENSE_RESISTOR   91
1267
-  #define Z3_MICROSTEPS       16
1277
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1278
+    #define Z3_MAX_CURRENT    1000
1279
+    #define Z3_SENSE_RESISTOR   91
1280
+    #define Z3_MICROSTEPS       16
1281
+  #endif
1268 1282
 
1269
-  #define E0_MAX_CURRENT    1000
1270
-  #define E0_SENSE_RESISTOR   91
1271
-  #define E0_MICROSTEPS       16
1283
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1284
+    #define E0_MAX_CURRENT    1000
1285
+    #define E0_SENSE_RESISTOR   91
1286
+    #define E0_MICROSTEPS       16
1287
+  #endif
1272 1288
 
1273
-  #define E1_MAX_CURRENT    1000
1274
-  #define E1_SENSE_RESISTOR   91
1275
-  #define E1_MICROSTEPS       16
1289
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1290
+    #define E1_MAX_CURRENT    1000
1291
+    #define E1_SENSE_RESISTOR   91
1292
+    #define E1_MICROSTEPS       16
1293
+  #endif
1276 1294
 
1277
-  #define E2_MAX_CURRENT    1000
1278
-  #define E2_SENSE_RESISTOR   91
1279
-  #define E2_MICROSTEPS       16
1295
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1296
+    #define E2_MAX_CURRENT    1000
1297
+    #define E2_SENSE_RESISTOR   91
1298
+    #define E2_MICROSTEPS       16
1299
+  #endif
1280 1300
 
1281
-  #define E3_MAX_CURRENT    1000
1282
-  #define E3_SENSE_RESISTOR   91
1283
-  #define E3_MICROSTEPS       16
1301
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1302
+    #define E3_MAX_CURRENT    1000
1303
+    #define E3_SENSE_RESISTOR   91
1304
+    #define E3_MICROSTEPS       16
1305
+  #endif
1284 1306
 
1285
-  #define E4_MAX_CURRENT    1000
1286
-  #define E4_SENSE_RESISTOR   91
1287
-  #define E4_MICROSTEPS       16
1307
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1308
+    #define E4_MAX_CURRENT    1000
1309
+    #define E4_SENSE_RESISTOR   91
1310
+    #define E4_MICROSTEPS       16
1311
+  #endif
1288 1312
 
1289
-  #define E5_MAX_CURRENT    1000
1290
-  #define E5_SENSE_RESISTOR   91
1291
-  #define E5_MICROSTEPS       16
1313
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1314
+    #define E5_MAX_CURRENT    1000
1315
+    #define E5_SENSE_RESISTOR   91
1316
+    #define E5_MICROSTEPS       16
1317
+  #endif
1292 1318
 
1293 1319
 #endif // TMC26X
1294 1320
 
@@ -1315,44 +1341,70 @@
1315 1341
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1316 1342
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1317 1343
 
1318
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1319
-  #define X_MICROSTEPS        16  // 0..256
1344
+  #if AXIS_IS_TMC(X)
1345
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1346
+    #define X_MICROSTEPS   16  // 0..256
1347
+  #endif
1320 1348
 
1321
-  #define Y_CURRENT          800
1322
-  #define Y_MICROSTEPS        16
1349
+  #if AXIS_IS_TMC(X2)
1350
+    #define X2_CURRENT    800
1351
+    #define X2_MICROSTEPS  16
1352
+  #endif
1323 1353
 
1324
-  #define Z_CURRENT          800
1325
-  #define Z_MICROSTEPS        16
1354
+  #if AXIS_IS_TMC(Y)
1355
+    #define Y_CURRENT     800
1356
+    #define Y_MICROSTEPS   16
1357
+  #endif
1326 1358
 
1327
-  #define X2_CURRENT         800
1328
-  #define X2_MICROSTEPS       16
1359
+  #if AXIS_IS_TMC(Y2)
1360
+    #define Y2_CURRENT    800
1361
+    #define Y2_MICROSTEPS  16
1362
+  #endif
1329 1363
 
1330
-  #define Y2_CURRENT         800
1331
-  #define Y2_MICROSTEPS       16
1364
+  #if AXIS_IS_TMC(Z)
1365
+    #define Z_CURRENT     800
1366
+    #define Z_MICROSTEPS   16
1367
+  #endif
1332 1368
 
1333
-  #define Z2_CURRENT         800
1334
-  #define Z2_MICROSTEPS       16
1369
+  #if AXIS_IS_TMC(Z2)
1370
+    #define Z2_CURRENT    800
1371
+    #define Z2_MICROSTEPS  16
1372
+  #endif
1335 1373
 
1336
-  #define Z3_CURRENT         800
1337
-  #define Z3_MICROSTEPS       16
1374
+  #if AXIS_IS_TMC(Z3)
1375
+    #define Z3_CURRENT    800
1376
+    #define Z3_MICROSTEPS  16
1377
+  #endif
1338 1378
 
1339
-  #define E0_CURRENT         800
1340
-  #define E0_MICROSTEPS       16
1379
+  #if AXIS_IS_TMC(E0)
1380
+    #define E0_CURRENT    800
1381
+    #define E0_MICROSTEPS  16
1382
+  #endif
1341 1383
 
1342
-  #define E1_CURRENT         800
1343
-  #define E1_MICROSTEPS       16
1384
+  #if AXIS_IS_TMC(E1)
1385
+    #define E1_CURRENT    800
1386
+    #define E1_MICROSTEPS  16
1387
+  #endif
1344 1388
 
1345
-  #define E2_CURRENT         800
1346
-  #define E2_MICROSTEPS       16
1389
+  #if AXIS_IS_TMC(E2)
1390
+    #define E2_CURRENT    800
1391
+    #define E2_MICROSTEPS  16
1392
+  #endif
1347 1393
 
1348
-  #define E3_CURRENT         800
1349
-  #define E3_MICROSTEPS       16
1394
+  #if AXIS_IS_TMC(E3)
1395
+    #define E3_CURRENT    800
1396
+    #define E3_MICROSTEPS  16
1397
+  #endif
1350 1398
 
1351
-  #define E4_CURRENT         800
1352
-  #define E4_MICROSTEPS       16
1399
+  #if AXIS_IS_TMC(E4)
1400
+    #define E4_CURRENT    800
1401
+    #define E4_MICROSTEPS  16
1402
+  #endif
1353 1403
 
1354
-  #define E5_CURRENT         800
1355
-  #define E5_MICROSTEPS       16
1404
+  #if AXIS_IS_TMC(E5)
1405
+    #define E5_CURRENT    800
1406
+    #define E5_MICROSTEPS  16
1407
+  #endif
1356 1408
 
1357 1409
   /**
1358 1410
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1522,84 +1574,111 @@
1522 1574
  */
1523 1575
 #if HAS_DRIVER(L6470)
1524 1576
 
1525
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1526
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1527
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1528
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1529
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1530
-
1531
-  #define X2_MICROSTEPS      128
1532
-  #define X2_OVERCURRENT    2000
1533
-  #define X2_STALLCURRENT   1500
1534
-  #define X2_MAX_VOLTAGE     127
1535
-  #define X2_CHAIN_POS         0
1536
-
1537
-  #define Y_MICROSTEPS       128
1538
-  #define Y_OVERCURRENT     2000
1539
-  #define Y_STALLCURRENT    1500
1540
-  #define Y_MAX_VOLTAGE      127
1541
-  #define Y_CHAIN_POS          0
1542
-
1543
-  #define Y2_MICROSTEPS      128
1544
-  #define Y2_OVERCURRENT    2000
1545
-  #define Y2_STALLCURRENT   1500
1546
-  #define Y2_MAX_VOLTAGE     127
1547
-  #define Y2_CHAIN_POS         0
1548
-
1549
-  #define Z_MICROSTEPS       128
1550
-  #define Z_OVERCURRENT     2000
1551
-  #define Z_STALLCURRENT    1500
1552
-  #define Z_MAX_VOLTAGE      127
1553
-  #define Z_CHAIN_POS          0
1554
-
1555
-  #define Z2_MICROSTEPS      128
1556
-  #define Z2_OVERCURRENT    2000
1557
-  #define Z2_STALLCURRENT   1500
1558
-  #define Z2_MAX_VOLTAGE     127
1559
-  #define Z2_CHAIN_POS         0
1560
-
1561
-  #define Z3_MICROSTEPS      128
1562
-  #define Z3_OVERCURRENT    2000
1563
-  #define Z3_STALLCURRENT   1500
1564
-  #define Z3_MAX_VOLTAGE     127
1565
-  #define Z3_CHAIN_POS         0
1566
-
1567
-  #define E0_MICROSTEPS      128
1568
-  #define E0_OVERCURRENT    2000
1569
-  #define E0_STALLCURRENT   1500
1570
-  #define E0_MAX_VOLTAGE     127
1571
-  #define E0_CHAIN_POS         0
1572
-
1573
-  #define E1_MICROSTEPS      128
1574
-  #define E1_OVERCURRENT    2000
1575
-  #define E1_STALLCURRENT   1500
1576
-  #define E1_MAX_VOLTAGE     127
1577
-  #define E1_CHAIN_POS         0
1578
-
1579
-  #define E2_MICROSTEPS      128
1580
-  #define E2_OVERCURRENT    2000
1581
-  #define E2_STALLCURRENT   1500
1582
-  #define E2_MAX_VOLTAGE     127
1583
-  #define E2_CHAIN_POS         0
1584
-
1585
-  #define E3_MICROSTEPS      128
1586
-  #define E3_OVERCURRENT    2000
1587
-  #define E3_STALLCURRENT   1500
1588
-  #define E3_MAX_VOLTAGE     127
1589
-  #define E3_CHAIN_POS         0
1590
-
1591
-  #define E4_MICROSTEPS      128
1592
-  #define E4_OVERCURRENT    2000
1593
-  #define E4_STALLCURRENT   1500
1594
-  #define E4_MAX_VOLTAGE     127
1595
-  #define E4_CHAIN_POS         0
1596
-
1597
-  #define E5_MICROSTEPS      128
1598
-  #define E5_OVERCURRENT    2000
1599
-  #define E5_STALLCURRENT   1500
1600
-  #define E5_MAX_VOLTAGE     127
1601
-  #define E5_CHAIN_POS         0
1577
+  //#define L6470_CHITCHAT        // Display additional status info
1602 1578
 
1579
+  #if AXIS_DRIVER_TYPE_X(L6470)
1580
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1581
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1582
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1583
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1584
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1585
+  #endif
1586
+
1587
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1588
+    #define X2_MICROSTEPS      128
1589
+    #define X2_OVERCURRENT    2000
1590
+    #define X2_STALLCURRENT   1500
1591
+    #define X2_MAX_VOLTAGE     127
1592
+    #define X2_CHAIN_POS         0
1593
+  #endif
1594
+
1595
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1596
+    #define Y_MICROSTEPS       128
1597
+    #define Y_OVERCURRENT     2000
1598
+    #define Y_STALLCURRENT    1500
1599
+    #define Y_MAX_VOLTAGE      127
1600
+    #define Y_CHAIN_POS          0
1601
+  #endif
1602
+
1603
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1604
+    #define Y2_MICROSTEPS      128
1605
+    #define Y2_OVERCURRENT    2000
1606
+    #define Y2_STALLCURRENT   1500
1607
+    #define Y2_MAX_VOLTAGE     127
1608
+    #define Y2_CHAIN_POS         0
1609
+  #endif
1610
+
1611
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1612
+    #define Z_MICROSTEPS       128
1613
+    #define Z_OVERCURRENT     2000
1614
+    #define Z_STALLCURRENT    1500
1615
+    #define Z_MAX_VOLTAGE      127
1616
+    #define Z_CHAIN_POS          0
1617
+  #endif
1618
+
1619
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1620
+    #define Z2_MICROSTEPS      128
1621
+    #define Z2_OVERCURRENT    2000
1622
+    #define Z2_STALLCURRENT   1500
1623
+    #define Z2_MAX_VOLTAGE     127
1624
+    #define Z2_CHAIN_POS         0
1625
+  #endif
1626
+
1627
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1628
+    #define Z3_MICROSTEPS      128
1629
+    #define Z3_OVERCURRENT    2000
1630
+    #define Z3_STALLCURRENT   1500
1631
+    #define Z3_MAX_VOLTAGE     127
1632
+    #define Z3_CHAIN_POS         0
1633
+  #endif
1634
+
1635
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1636
+    #define E0_MICROSTEPS      128
1637
+    #define E0_OVERCURRENT    2000
1638
+    #define E0_STALLCURRENT   1500
1639
+    #define E0_MAX_VOLTAGE     127
1640
+    #define E0_CHAIN_POS         0
1641
+  #endif
1642
+
1643
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1644
+    #define E1_MICROSTEPS      128
1645
+    #define E1_OVERCURRENT    2000
1646
+    #define E1_STALLCURRENT   1500
1647
+    #define E1_MAX_VOLTAGE     127
1648
+    #define E1_CHAIN_POS         0
1649
+  #endif
1650
+
1651
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1652
+    #define E2_MICROSTEPS      128
1653
+    #define E2_OVERCURRENT    2000
1654
+    #define E2_STALLCURRENT   1500
1655
+    #define E2_MAX_VOLTAGE     127
1656
+    #define E2_CHAIN_POS         0
1657
+  #endif
1658
+
1659
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1660
+    #define E3_MICROSTEPS      128
1661
+    #define E3_OVERCURRENT    2000
1662
+    #define E3_STALLCURRENT   1500
1663
+    #define E3_MAX_VOLTAGE     127
1664
+    #define E3_CHAIN_POS         0
1665
+  #endif
1666
+
1667
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1668
+    #define E4_MICROSTEPS      128
1669
+    #define E4_OVERCURRENT    2000
1670
+    #define E4_STALLCURRENT   1500
1671
+    #define E4_MAX_VOLTAGE     127
1672
+    #define E4_CHAIN_POS         0
1673
+  #endif
1674
+
1675
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1676
+    #define E5_MICROSTEPS      128
1677
+    #define E5_OVERCURRENT    2000
1678
+    #define E5_STALLCURRENT   1500
1679
+    #define E5_MAX_VOLTAGE     127
1680
+    #define E5_CHAIN_POS         0
1681
+  #endif
1603 1682
 
1604 1683
   /**
1605 1684
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1624,8 +1703,6 @@
1624 1703
     //#define L6470_STOP_ON_ERROR
1625 1704
   #endif
1626 1705
 
1627
-  #define L6470_CHITCHAT     // enable display of additional status info
1628
-
1629 1706
 #endif // L6470
1630 1707
 
1631 1708
 /**

+ 221
- 144
Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h View File

@@ -1238,57 +1238,83 @@
1238 1238
  */
1239 1239
 #if HAS_DRIVER(TMC26X)
1240 1240
 
1241
-  #define X_MAX_CURRENT     1000 // in mA
1242
-  #define X_SENSE_RESISTOR    91 // in mOhms
1243
-  #define X_MICROSTEPS        16 // number of microsteps
1241
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1242
+    #define X_MAX_CURRENT     1000  // (mA)
1243
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1244
+    #define X_MICROSTEPS        16  // Number of microsteps
1245
+  #endif
1244 1246
 
1245
-  #define X2_MAX_CURRENT    1000
1246
-  #define X2_SENSE_RESISTOR   91
1247
-  #define X2_MICROSTEPS       16
1247
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1248
+    #define X2_MAX_CURRENT    1000
1249
+    #define X2_SENSE_RESISTOR   91
1250
+    #define X2_MICROSTEPS       16
1251
+  #endif
1248 1252
 
1249
-  #define Y_MAX_CURRENT     1000
1250
-  #define Y_SENSE_RESISTOR    91
1251
-  #define Y_MICROSTEPS        16
1253
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1254
+    #define Y_MAX_CURRENT     1000
1255
+    #define Y_SENSE_RESISTOR    91
1256
+    #define Y_MICROSTEPS        16
1257
+  #endif
1252 1258
 
1253
-  #define Y2_MAX_CURRENT    1000
1254
-  #define Y2_SENSE_RESISTOR   91
1255
-  #define Y2_MICROSTEPS       16
1259
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1260
+    #define Y2_MAX_CURRENT    1000
1261
+    #define Y2_SENSE_RESISTOR   91
1262
+    #define Y2_MICROSTEPS       16
1263
+  #endif
1256 1264
 
1257
-  #define Z_MAX_CURRENT     1000
1258
-  #define Z_SENSE_RESISTOR    91
1259
-  #define Z_MICROSTEPS        16
1265
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1266
+    #define Z_MAX_CURRENT     1000
1267
+    #define Z_SENSE_RESISTOR    91
1268
+    #define Z_MICROSTEPS        16
1269
+  #endif
1260 1270
 
1261
-  #define Z2_MAX_CURRENT    1000
1262
-  #define Z2_SENSE_RESISTOR   91
1263
-  #define Z2_MICROSTEPS       16
1271
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1272
+    #define Z2_MAX_CURRENT    1000
1273
+    #define Z2_SENSE_RESISTOR   91
1274
+    #define Z2_MICROSTEPS       16
1275
+  #endif
1264 1276
 
1265
-  #define Z3_MAX_CURRENT    1000
1266
-  #define Z3_SENSE_RESISTOR   91
1267
-  #define Z3_MICROSTEPS       16
1277
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1278
+    #define Z3_MAX_CURRENT    1000
1279
+    #define Z3_SENSE_RESISTOR   91
1280
+    #define Z3_MICROSTEPS       16
1281
+  #endif
1268 1282
 
1269
-  #define E0_MAX_CURRENT    1000
1270
-  #define E0_SENSE_RESISTOR   91
1271
-  #define E0_MICROSTEPS       16
1283
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1284
+    #define E0_MAX_CURRENT    1000
1285
+    #define E0_SENSE_RESISTOR   91
1286
+    #define E0_MICROSTEPS       16
1287
+  #endif
1272 1288
 
1273
-  #define E1_MAX_CURRENT    1000
1274
-  #define E1_SENSE_RESISTOR   91
1275
-  #define E1_MICROSTEPS       16
1289
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1290
+    #define E1_MAX_CURRENT    1000
1291
+    #define E1_SENSE_RESISTOR   91
1292
+    #define E1_MICROSTEPS       16
1293
+  #endif
1276 1294
 
1277
-  #define E2_MAX_CURRENT    1000
1278
-  #define E2_SENSE_RESISTOR   91
1279
-  #define E2_MICROSTEPS       16
1295
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1296
+    #define E2_MAX_CURRENT    1000
1297
+    #define E2_SENSE_RESISTOR   91
1298
+    #define E2_MICROSTEPS       16
1299
+  #endif
1280 1300
 
1281
-  #define E3_MAX_CURRENT    1000
1282
-  #define E3_SENSE_RESISTOR   91
1283
-  #define E3_MICROSTEPS       16
1301
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1302
+    #define E3_MAX_CURRENT    1000
1303
+    #define E3_SENSE_RESISTOR   91
1304
+    #define E3_MICROSTEPS       16
1305
+  #endif
1284 1306
 
1285
-  #define E4_MAX_CURRENT    1000
1286
-  #define E4_SENSE_RESISTOR   91
1287
-  #define E4_MICROSTEPS       16
1307
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1308
+    #define E4_MAX_CURRENT    1000
1309
+    #define E4_SENSE_RESISTOR   91
1310
+    #define E4_MICROSTEPS       16
1311
+  #endif
1288 1312
 
1289
-  #define E5_MAX_CURRENT    1000
1290
-  #define E5_SENSE_RESISTOR   91
1291
-  #define E5_MICROSTEPS       16
1313
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1314
+    #define E5_MAX_CURRENT    1000
1315
+    #define E5_SENSE_RESISTOR   91
1316
+    #define E5_MICROSTEPS       16
1317
+  #endif
1292 1318
 
1293 1319
 #endif // TMC26X
1294 1320
 
@@ -1315,44 +1341,70 @@
1315 1341
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1316 1342
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1317 1343
 
1318
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1319
-  #define X_MICROSTEPS        16  // 0..256
1344
+  #if AXIS_IS_TMC(X)
1345
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1346
+    #define X_MICROSTEPS   16  // 0..256
1347
+  #endif
1320 1348
 
1321
-  #define Y_CURRENT          800
1322
-  #define Y_MICROSTEPS        16
1349
+  #if AXIS_IS_TMC(X2)
1350
+    #define X2_CURRENT    800
1351
+    #define X2_MICROSTEPS  16
1352
+  #endif
1323 1353
 
1324
-  #define Z_CURRENT          800
1325
-  #define Z_MICROSTEPS        16
1354
+  #if AXIS_IS_TMC(Y)
1355
+    #define Y_CURRENT     800
1356
+    #define Y_MICROSTEPS   16
1357
+  #endif
1326 1358
 
1327
-  #define X2_CURRENT         800
1328
-  #define X2_MICROSTEPS       16
1359
+  #if AXIS_IS_TMC(Y2)
1360
+    #define Y2_CURRENT    800
1361
+    #define Y2_MICROSTEPS  16
1362
+  #endif
1329 1363
 
1330
-  #define Y2_CURRENT         800
1331
-  #define Y2_MICROSTEPS       16
1364
+  #if AXIS_IS_TMC(Z)
1365
+    #define Z_CURRENT     800
1366
+    #define Z_MICROSTEPS   16
1367
+  #endif
1332 1368
 
1333
-  #define Z2_CURRENT         800
1334
-  #define Z2_MICROSTEPS       16
1369
+  #if AXIS_IS_TMC(Z2)
1370
+    #define Z2_CURRENT    800
1371
+    #define Z2_MICROSTEPS  16
1372
+  #endif
1335 1373
 
1336
-  #define Z3_CURRENT         800
1337
-  #define Z3_MICROSTEPS       16
1374
+  #if AXIS_IS_TMC(Z3)
1375
+    #define Z3_CURRENT    800
1376
+    #define Z3_MICROSTEPS  16
1377
+  #endif
1338 1378
 
1339
-  #define E0_CURRENT         800
1340
-  #define E0_MICROSTEPS       16
1379
+  #if AXIS_IS_TMC(E0)
1380
+    #define E0_CURRENT    800
1381
+    #define E0_MICROSTEPS  16
1382
+  #endif
1341 1383
 
1342
-  #define E1_CURRENT         800
1343
-  #define E1_MICROSTEPS       16
1384
+  #if AXIS_IS_TMC(E1)
1385
+    #define E1_CURRENT    800
1386
+    #define E1_MICROSTEPS  16
1387
+  #endif
1344 1388
 
1345
-  #define E2_CURRENT         800
1346
-  #define E2_MICROSTEPS       16
1389
+  #if AXIS_IS_TMC(E2)
1390
+    #define E2_CURRENT    800
1391
+    #define E2_MICROSTEPS  16
1392
+  #endif
1347 1393
 
1348
-  #define E3_CURRENT         800
1349
-  #define E3_MICROSTEPS       16
1394
+  #if AXIS_IS_TMC(E3)
1395
+    #define E3_CURRENT    800
1396
+    #define E3_MICROSTEPS  16
1397
+  #endif
1350 1398
 
1351
-  #define E4_CURRENT         800
1352
-  #define E4_MICROSTEPS       16
1399
+  #if AXIS_IS_TMC(E4)
1400
+    #define E4_CURRENT    800
1401
+    #define E4_MICROSTEPS  16
1402
+  #endif
1353 1403
 
1354
-  #define E5_CURRENT         800
1355
-  #define E5_MICROSTEPS       16
1404
+  #if AXIS_IS_TMC(E5)
1405
+    #define E5_CURRENT    800
1406
+    #define E5_MICROSTEPS  16
1407
+  #endif
1356 1408
 
1357 1409
   /**
1358 1410
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1522,84 +1574,111 @@
1522 1574
  */
1523 1575
 #if HAS_DRIVER(L6470)
1524 1576
 
1525
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1526
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1527
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1528
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1529
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1530
-
1531
-  #define X2_MICROSTEPS      128
1532
-  #define X2_OVERCURRENT    2000
1533
-  #define X2_STALLCURRENT   1500
1534
-  #define X2_MAX_VOLTAGE     127
1535
-  #define X2_CHAIN_POS         0
1536
-
1537
-  #define Y_MICROSTEPS       128
1538
-  #define Y_OVERCURRENT     2000
1539
-  #define Y_STALLCURRENT    1500
1540
-  #define Y_MAX_VOLTAGE      127
1541
-  #define Y_CHAIN_POS          0
1542
-
1543
-  #define Y2_MICROSTEPS      128
1544
-  #define Y2_OVERCURRENT    2000
1545
-  #define Y2_STALLCURRENT   1500
1546
-  #define Y2_MAX_VOLTAGE     127
1547
-  #define Y2_CHAIN_POS         0
1548
-
1549
-  #define Z_MICROSTEPS       128
1550
-  #define Z_OVERCURRENT     2000
1551
-  #define Z_STALLCURRENT    1500
1552
-  #define Z_MAX_VOLTAGE      127
1553
-  #define Z_CHAIN_POS          0
1554
-
1555
-  #define Z2_MICROSTEPS      128
1556
-  #define Z2_OVERCURRENT    2000
1557
-  #define Z2_STALLCURRENT   1500
1558
-  #define Z2_MAX_VOLTAGE     127
1559
-  #define Z2_CHAIN_POS         0
1560
-
1561
-  #define Z3_MICROSTEPS      128
1562
-  #define Z3_OVERCURRENT    2000
1563
-  #define Z3_STALLCURRENT   1500
1564
-  #define Z3_MAX_VOLTAGE     127
1565
-  #define Z3_CHAIN_POS         0
1566
-
1567
-  #define E0_MICROSTEPS      128
1568
-  #define E0_OVERCURRENT    2000
1569
-  #define E0_STALLCURRENT   1500
1570
-  #define E0_MAX_VOLTAGE     127
1571
-  #define E0_CHAIN_POS         0
1572
-
1573
-  #define E1_MICROSTEPS      128
1574
-  #define E1_OVERCURRENT    2000
1575
-  #define E1_STALLCURRENT   1500
1576
-  #define E1_MAX_VOLTAGE     127
1577
-  #define E1_CHAIN_POS         0
1578
-
1579
-  #define E2_MICROSTEPS      128
1580
-  #define E2_OVERCURRENT    2000
1581
-  #define E2_STALLCURRENT   1500
1582
-  #define E2_MAX_VOLTAGE     127
1583
-  #define E2_CHAIN_POS         0
1584
-
1585
-  #define E3_MICROSTEPS      128
1586
-  #define E3_OVERCURRENT    2000
1587
-  #define E3_STALLCURRENT   1500
1588
-  #define E3_MAX_VOLTAGE     127
1589
-  #define E3_CHAIN_POS         0
1590
-
1591
-  #define E4_MICROSTEPS      128
1592
-  #define E4_OVERCURRENT    2000
1593
-  #define E4_STALLCURRENT   1500
1594
-  #define E4_MAX_VOLTAGE     127
1595
-  #define E4_CHAIN_POS         0
1596
-
1597
-  #define E5_MICROSTEPS      128
1598
-  #define E5_OVERCURRENT    2000
1599
-  #define E5_STALLCURRENT   1500
1600
-  #define E5_MAX_VOLTAGE     127
1601
-  #define E5_CHAIN_POS         0
1577
+  //#define L6470_CHITCHAT        // Display additional status info
1602 1578
 
1579
+  #if AXIS_DRIVER_TYPE_X(L6470)
1580
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1581
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1582
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1583
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1584
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1585
+  #endif
1586
+
1587
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1588
+    #define X2_MICROSTEPS      128
1589
+    #define X2_OVERCURRENT    2000
1590
+    #define X2_STALLCURRENT   1500
1591
+    #define X2_MAX_VOLTAGE     127
1592
+    #define X2_CHAIN_POS         0
1593
+  #endif
1594
+
1595
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1596
+    #define Y_MICROSTEPS       128
1597
+    #define Y_OVERCURRENT     2000
1598
+    #define Y_STALLCURRENT    1500
1599
+    #define Y_MAX_VOLTAGE      127
1600
+    #define Y_CHAIN_POS          0
1601
+  #endif
1602
+
1603
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1604
+    #define Y2_MICROSTEPS      128
1605
+    #define Y2_OVERCURRENT    2000
1606
+    #define Y2_STALLCURRENT   1500
1607
+    #define Y2_MAX_VOLTAGE     127
1608
+    #define Y2_CHAIN_POS         0
1609
+  #endif
1610
+
1611
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1612
+    #define Z_MICROSTEPS       128
1613
+    #define Z_OVERCURRENT     2000
1614
+    #define Z_STALLCURRENT    1500
1615
+    #define Z_MAX_VOLTAGE      127
1616
+    #define Z_CHAIN_POS          0
1617
+  #endif
1618
+
1619
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1620
+    #define Z2_MICROSTEPS      128
1621
+    #define Z2_OVERCURRENT    2000
1622
+    #define Z2_STALLCURRENT   1500
1623
+    #define Z2_MAX_VOLTAGE     127
1624
+    #define Z2_CHAIN_POS         0
1625
+  #endif
1626
+
1627
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1628
+    #define Z3_MICROSTEPS      128
1629
+    #define Z3_OVERCURRENT    2000
1630
+    #define Z3_STALLCURRENT   1500
1631
+    #define Z3_MAX_VOLTAGE     127
1632
+    #define Z3_CHAIN_POS         0
1633
+  #endif
1634
+
1635
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1636
+    #define E0_MICROSTEPS      128
1637
+    #define E0_OVERCURRENT    2000
1638
+    #define E0_STALLCURRENT   1500
1639
+    #define E0_MAX_VOLTAGE     127
1640
+    #define E0_CHAIN_POS         0
1641
+  #endif
1642
+
1643
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1644
+    #define E1_MICROSTEPS      128
1645
+    #define E1_OVERCURRENT    2000
1646
+    #define E1_STALLCURRENT   1500
1647
+    #define E1_MAX_VOLTAGE     127
1648
+    #define E1_CHAIN_POS         0
1649
+  #endif
1650
+
1651
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1652
+    #define E2_MICROSTEPS      128
1653
+    #define E2_OVERCURRENT    2000
1654
+    #define E2_STALLCURRENT   1500
1655
+    #define E2_MAX_VOLTAGE     127
1656
+    #define E2_CHAIN_POS         0
1657
+  #endif
1658
+
1659
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1660
+    #define E3_MICROSTEPS      128
1661
+    #define E3_OVERCURRENT    2000
1662
+    #define E3_STALLCURRENT   1500
1663
+    #define E3_MAX_VOLTAGE     127
1664
+    #define E3_CHAIN_POS         0
1665
+  #endif
1666
+
1667
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1668
+    #define E4_MICROSTEPS      128
1669
+    #define E4_OVERCURRENT    2000
1670
+    #define E4_STALLCURRENT   1500
1671
+    #define E4_MAX_VOLTAGE     127
1672
+    #define E4_CHAIN_POS         0
1673
+  #endif
1674
+
1675
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1676
+    #define E5_MICROSTEPS      128
1677
+    #define E5_OVERCURRENT    2000
1678
+    #define E5_STALLCURRENT   1500
1679
+    #define E5_MAX_VOLTAGE     127
1680
+    #define E5_CHAIN_POS         0
1681
+  #endif
1603 1682
 
1604 1683
   /**
1605 1684
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1624,8 +1703,6 @@
1624 1703
     //#define L6470_STOP_ON_ERROR
1625 1704
   #endif
1626 1705
 
1627
-  #define L6470_CHITCHAT     // enable display of additional status info
1628
-
1629 1706
 #endif // L6470
1630 1707
 
1631 1708
 /**

+ 221
- 144
Marlin/src/config/examples/delta/Geeetech/Rostock 301/Configuration_adv.h View File

@@ -1239,57 +1239,83 @@
1239 1239
  */
1240 1240
 #if HAS_DRIVER(TMC26X)
1241 1241
 
1242
-  #define X_MAX_CURRENT     1000 // in mA
1243
-  #define X_SENSE_RESISTOR    91 // in mOhms
1244
-  #define X_MICROSTEPS        16 // number of microsteps
1242
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1243
+    #define X_MAX_CURRENT     1000  // (mA)
1244
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1245
+    #define X_MICROSTEPS        16  // Number of microsteps
1246
+  #endif
1245 1247
 
1246
-  #define X2_MAX_CURRENT    1000
1247
-  #define X2_SENSE_RESISTOR   91
1248
-  #define X2_MICROSTEPS       16
1248
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1249
+    #define X2_MAX_CURRENT    1000
1250
+    #define X2_SENSE_RESISTOR   91
1251
+    #define X2_MICROSTEPS       16
1252
+  #endif
1249 1253
 
1250
-  #define Y_MAX_CURRENT     1000
1251
-  #define Y_SENSE_RESISTOR    91
1252
-  #define Y_MICROSTEPS        16
1254
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1255
+    #define Y_MAX_CURRENT     1000
1256
+    #define Y_SENSE_RESISTOR    91
1257
+    #define Y_MICROSTEPS        16
1258
+  #endif
1253 1259
 
1254
-  #define Y2_MAX_CURRENT    1000
1255
-  #define Y2_SENSE_RESISTOR   91
1256
-  #define Y2_MICROSTEPS       16
1260
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1261
+    #define Y2_MAX_CURRENT    1000
1262
+    #define Y2_SENSE_RESISTOR   91
1263
+    #define Y2_MICROSTEPS       16
1264
+  #endif
1257 1265
 
1258
-  #define Z_MAX_CURRENT     1000
1259
-  #define Z_SENSE_RESISTOR    91
1260
-  #define Z_MICROSTEPS        16
1266
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1267
+    #define Z_MAX_CURRENT     1000
1268
+    #define Z_SENSE_RESISTOR    91
1269
+    #define Z_MICROSTEPS        16
1270
+  #endif
1261 1271
 
1262
-  #define Z2_MAX_CURRENT    1000
1263
-  #define Z2_SENSE_RESISTOR   91
1264
-  #define Z2_MICROSTEPS       16
1272
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1273
+    #define Z2_MAX_CURRENT    1000
1274
+    #define Z2_SENSE_RESISTOR   91
1275
+    #define Z2_MICROSTEPS       16
1276
+  #endif
1265 1277
 
1266
-  #define Z3_MAX_CURRENT    1000
1267
-  #define Z3_SENSE_RESISTOR   91
1268
-  #define Z3_MICROSTEPS       16
1278
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1279
+    #define Z3_MAX_CURRENT    1000
1280
+    #define Z3_SENSE_RESISTOR   91
1281
+    #define Z3_MICROSTEPS       16
1282
+  #endif
1269 1283
 
1270
-  #define E0_MAX_CURRENT    1000
1271
-  #define E0_SENSE_RESISTOR   91
1272
-  #define E0_MICROSTEPS       16
1284
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1285
+    #define E0_MAX_CURRENT    1000
1286
+    #define E0_SENSE_RESISTOR   91
1287
+    #define E0_MICROSTEPS       16
1288
+  #endif
1273 1289
 
1274
-  #define E1_MAX_CURRENT    1000
1275
-  #define E1_SENSE_RESISTOR   91
1276
-  #define E1_MICROSTEPS       16
1290
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1291
+    #define E1_MAX_CURRENT    1000
1292
+    #define E1_SENSE_RESISTOR   91
1293
+    #define E1_MICROSTEPS       16
1294
+  #endif
1277 1295
 
1278
-  #define E2_MAX_CURRENT    1000
1279
-  #define E2_SENSE_RESISTOR   91
1280
-  #define E2_MICROSTEPS       16
1296
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1297
+    #define E2_MAX_CURRENT    1000
1298
+    #define E2_SENSE_RESISTOR   91
1299
+    #define E2_MICROSTEPS       16
1300
+  #endif
1281 1301
 
1282
-  #define E3_MAX_CURRENT    1000
1283
-  #define E3_SENSE_RESISTOR   91
1284
-  #define E3_MICROSTEPS       16
1302
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1303
+    #define E3_MAX_CURRENT    1000
1304
+    #define E3_SENSE_RESISTOR   91
1305
+    #define E3_MICROSTEPS       16
1306
+  #endif
1285 1307
 
1286
-  #define E4_MAX_CURRENT    1000
1287
-  #define E4_SENSE_RESISTOR   91
1288
-  #define E4_MICROSTEPS       16
1308
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1309
+    #define E4_MAX_CURRENT    1000
1310
+    #define E4_SENSE_RESISTOR   91
1311
+    #define E4_MICROSTEPS       16
1312
+  #endif
1289 1313
 
1290
-  #define E5_MAX_CURRENT    1000
1291
-  #define E5_SENSE_RESISTOR   91
1292
-  #define E5_MICROSTEPS       16
1314
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1315
+    #define E5_MAX_CURRENT    1000
1316
+    #define E5_SENSE_RESISTOR   91
1317
+    #define E5_MICROSTEPS       16
1318
+  #endif
1293 1319
 
1294 1320
 #endif // TMC26X
1295 1321
 
@@ -1316,44 +1342,70 @@
1316 1342
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1317 1343
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1318 1344
 
1319
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1320
-  #define X_MICROSTEPS        16  // 0..256
1345
+  #if AXIS_IS_TMC(X)
1346
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1347
+    #define X_MICROSTEPS   16  // 0..256
1348
+  #endif
1321 1349
 
1322
-  #define Y_CURRENT          800
1323
-  #define Y_MICROSTEPS        16
1350
+  #if AXIS_IS_TMC(X2)
1351
+    #define X2_CURRENT    800
1352
+    #define X2_MICROSTEPS  16
1353
+  #endif
1324 1354
 
1325
-  #define Z_CURRENT          800
1326
-  #define Z_MICROSTEPS        16
1355
+  #if AXIS_IS_TMC(Y)
1356
+    #define Y_CURRENT     800
1357
+    #define Y_MICROSTEPS   16
1358
+  #endif
1327 1359
 
1328
-  #define X2_CURRENT         800
1329
-  #define X2_MICROSTEPS       16
1360
+  #if AXIS_IS_TMC(Y2)
1361
+    #define Y2_CURRENT    800
1362
+    #define Y2_MICROSTEPS  16
1363
+  #endif
1330 1364
 
1331
-  #define Y2_CURRENT         800
1332
-  #define Y2_MICROSTEPS       16
1365
+  #if AXIS_IS_TMC(Z)
1366
+    #define Z_CURRENT     800
1367
+    #define Z_MICROSTEPS   16
1368
+  #endif
1333 1369
 
1334
-  #define Z2_CURRENT         800
1335
-  #define Z2_MICROSTEPS       16
1370
+  #if AXIS_IS_TMC(Z2)
1371
+    #define Z2_CURRENT    800
1372
+    #define Z2_MICROSTEPS  16
1373
+  #endif
1336 1374
 
1337
-  #define Z3_CURRENT         800
1338
-  #define Z3_MICROSTEPS       16
1375
+  #if AXIS_IS_TMC(Z3)
1376
+    #define Z3_CURRENT    800
1377
+    #define Z3_MICROSTEPS  16
1378
+  #endif
1339 1379
 
1340
-  #define E0_CURRENT         800
1341
-  #define E0_MICROSTEPS       16
1380
+  #if AXIS_IS_TMC(E0)
1381
+    #define E0_CURRENT    800
1382
+    #define E0_MICROSTEPS  16
1383
+  #endif
1342 1384
 
1343
-  #define E1_CURRENT         800
1344
-  #define E1_MICROSTEPS       16
1385
+  #if AXIS_IS_TMC(E1)
1386
+    #define E1_CURRENT    800
1387
+    #define E1_MICROSTEPS  16
1388
+  #endif
1345 1389
 
1346
-  #define E2_CURRENT         800
1347
-  #define E2_MICROSTEPS       16
1390
+  #if AXIS_IS_TMC(E2)
1391
+    #define E2_CURRENT    800
1392
+    #define E2_MICROSTEPS  16
1393
+  #endif
1348 1394
 
1349
-  #define E3_CURRENT         800
1350
-  #define E3_MICROSTEPS       16
1395
+  #if AXIS_IS_TMC(E3)
1396
+    #define E3_CURRENT    800
1397
+    #define E3_MICROSTEPS  16
1398
+  #endif
1351 1399
 
1352
-  #define E4_CURRENT         800
1353
-  #define E4_MICROSTEPS       16
1400
+  #if AXIS_IS_TMC(E4)
1401
+    #define E4_CURRENT    800
1402
+    #define E4_MICROSTEPS  16
1403
+  #endif
1354 1404
 
1355
-  #define E5_CURRENT         800
1356
-  #define E5_MICROSTEPS       16
1405
+  #if AXIS_IS_TMC(E5)
1406
+    #define E5_CURRENT    800
1407
+    #define E5_MICROSTEPS  16
1408
+  #endif
1357 1409
 
1358 1410
   /**
1359 1411
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1523,84 +1575,111 @@
1523 1575
  */
1524 1576
 #if HAS_DRIVER(L6470)
1525 1577
 
1526
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1527
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1528
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1529
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1530
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1531
-
1532
-  #define X2_MICROSTEPS      128
1533
-  #define X2_OVERCURRENT    2000
1534
-  #define X2_STALLCURRENT   1500
1535
-  #define X2_MAX_VOLTAGE     127
1536
-  #define X2_CHAIN_POS         0
1537
-
1538
-  #define Y_MICROSTEPS       128
1539
-  #define Y_OVERCURRENT     2000
1540
-  #define Y_STALLCURRENT    1500
1541
-  #define Y_MAX_VOLTAGE      127
1542
-  #define Y_CHAIN_POS          0
1543
-
1544
-  #define Y2_MICROSTEPS      128
1545
-  #define Y2_OVERCURRENT    2000
1546
-  #define Y2_STALLCURRENT   1500
1547
-  #define Y2_MAX_VOLTAGE     127
1548
-  #define Y2_CHAIN_POS         0
1549
-
1550
-  #define Z_MICROSTEPS       128
1551
-  #define Z_OVERCURRENT     2000
1552
-  #define Z_STALLCURRENT    1500
1553
-  #define Z_MAX_VOLTAGE      127
1554
-  #define Z_CHAIN_POS          0
1555
-
1556
-  #define Z2_MICROSTEPS      128
1557
-  #define Z2_OVERCURRENT    2000
1558
-  #define Z2_STALLCURRENT   1500
1559
-  #define Z2_MAX_VOLTAGE     127
1560
-  #define Z2_CHAIN_POS         0
1561
-
1562
-  #define Z3_MICROSTEPS      128
1563
-  #define Z3_OVERCURRENT    2000
1564
-  #define Z3_STALLCURRENT   1500
1565
-  #define Z3_MAX_VOLTAGE     127
1566
-  #define Z3_CHAIN_POS         0
1567
-
1568
-  #define E0_MICROSTEPS      128
1569
-  #define E0_OVERCURRENT    2000
1570
-  #define E0_STALLCURRENT   1500
1571
-  #define E0_MAX_VOLTAGE     127
1572
-  #define E0_CHAIN_POS         0
1573
-
1574
-  #define E1_MICROSTEPS      128
1575
-  #define E1_OVERCURRENT    2000
1576
-  #define E1_STALLCURRENT   1500
1577
-  #define E1_MAX_VOLTAGE     127
1578
-  #define E1_CHAIN_POS         0
1579
-
1580
-  #define E2_MICROSTEPS      128
1581
-  #define E2_OVERCURRENT    2000
1582
-  #define E2_STALLCURRENT   1500
1583
-  #define E2_MAX_VOLTAGE     127
1584
-  #define E2_CHAIN_POS         0
1585
-
1586
-  #define E3_MICROSTEPS      128
1587
-  #define E3_OVERCURRENT    2000
1588
-  #define E3_STALLCURRENT   1500
1589
-  #define E3_MAX_VOLTAGE     127
1590
-  #define E3_CHAIN_POS         0
1591
-
1592
-  #define E4_MICROSTEPS      128
1593
-  #define E4_OVERCURRENT    2000
1594
-  #define E4_STALLCURRENT   1500
1595
-  #define E4_MAX_VOLTAGE     127
1596
-  #define E4_CHAIN_POS         0
1597
-
1598
-  #define E5_MICROSTEPS      128
1599
-  #define E5_OVERCURRENT    2000
1600
-  #define E5_STALLCURRENT   1500
1601
-  #define E5_MAX_VOLTAGE     127
1602
-  #define E5_CHAIN_POS         0
1578
+  //#define L6470_CHITCHAT        // Display additional status info
1603 1579
 
1580
+  #if AXIS_DRIVER_TYPE_X(L6470)
1581
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1582
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1583
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1584
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1585
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1586
+  #endif
1587
+
1588
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1589
+    #define X2_MICROSTEPS      128
1590
+    #define X2_OVERCURRENT    2000
1591
+    #define X2_STALLCURRENT   1500
1592
+    #define X2_MAX_VOLTAGE     127
1593
+    #define X2_CHAIN_POS         0
1594
+  #endif
1595
+
1596
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1597
+    #define Y_MICROSTEPS       128
1598
+    #define Y_OVERCURRENT     2000
1599
+    #define Y_STALLCURRENT    1500
1600
+    #define Y_MAX_VOLTAGE      127
1601
+    #define Y_CHAIN_POS          0
1602
+  #endif
1603
+
1604
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1605
+    #define Y2_MICROSTEPS      128
1606
+    #define Y2_OVERCURRENT    2000
1607
+    #define Y2_STALLCURRENT   1500
1608
+    #define Y2_MAX_VOLTAGE     127
1609
+    #define Y2_CHAIN_POS         0
1610
+  #endif
1611
+
1612
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1613
+    #define Z_MICROSTEPS       128
1614
+    #define Z_OVERCURRENT     2000
1615
+    #define Z_STALLCURRENT    1500
1616
+    #define Z_MAX_VOLTAGE      127
1617
+    #define Z_CHAIN_POS          0
1618
+  #endif
1619
+
1620
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1621
+    #define Z2_MICROSTEPS      128
1622
+    #define Z2_OVERCURRENT    2000
1623
+    #define Z2_STALLCURRENT   1500
1624
+    #define Z2_MAX_VOLTAGE     127
1625
+    #define Z2_CHAIN_POS         0
1626
+  #endif
1627
+
1628
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1629
+    #define Z3_MICROSTEPS      128
1630
+    #define Z3_OVERCURRENT    2000
1631
+    #define Z3_STALLCURRENT   1500
1632
+    #define Z3_MAX_VOLTAGE     127
1633
+    #define Z3_CHAIN_POS         0
1634
+  #endif
1635
+
1636
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1637
+    #define E0_MICROSTEPS      128
1638
+    #define E0_OVERCURRENT    2000
1639
+    #define E0_STALLCURRENT   1500
1640
+    #define E0_MAX_VOLTAGE     127
1641
+    #define E0_CHAIN_POS         0
1642
+  #endif
1643
+
1644
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1645
+    #define E1_MICROSTEPS      128
1646
+    #define E1_OVERCURRENT    2000
1647
+    #define E1_STALLCURRENT   1500
1648
+    #define E1_MAX_VOLTAGE     127
1649
+    #define E1_CHAIN_POS         0
1650
+  #endif
1651
+
1652
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1653
+    #define E2_MICROSTEPS      128
1654
+    #define E2_OVERCURRENT    2000
1655
+    #define E2_STALLCURRENT   1500
1656
+    #define E2_MAX_VOLTAGE     127
1657
+    #define E2_CHAIN_POS         0
1658
+  #endif
1659
+
1660
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1661
+    #define E3_MICROSTEPS      128
1662
+    #define E3_OVERCURRENT    2000
1663
+    #define E3_STALLCURRENT   1500
1664
+    #define E3_MAX_VOLTAGE     127
1665
+    #define E3_CHAIN_POS         0
1666
+  #endif
1667
+
1668
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1669
+    #define E4_MICROSTEPS      128
1670
+    #define E4_OVERCURRENT    2000
1671
+    #define E4_STALLCURRENT   1500
1672
+    #define E4_MAX_VOLTAGE     127
1673
+    #define E4_CHAIN_POS         0
1674
+  #endif
1675
+
1676
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1677
+    #define E5_MICROSTEPS      128
1678
+    #define E5_OVERCURRENT    2000
1679
+    #define E5_STALLCURRENT   1500
1680
+    #define E5_MAX_VOLTAGE     127
1681
+    #define E5_CHAIN_POS         0
1682
+  #endif
1604 1683
 
1605 1684
   /**
1606 1685
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1625,8 +1704,6 @@
1625 1704
     //#define L6470_STOP_ON_ERROR
1626 1705
   #endif
1627 1706
 
1628
-  #define L6470_CHITCHAT     // enable display of additional status info
1629
-
1630 1707
 #endif // L6470
1631 1708
 
1632 1709
 /**

+ 221
- 144
Marlin/src/config/examples/delta/MKS/SBASE/Configuration_adv.h View File

@@ -1238,57 +1238,83 @@
1238 1238
  */
1239 1239
 #if HAS_DRIVER(TMC26X)
1240 1240
 
1241
-  #define X_MAX_CURRENT     1000 // in mA
1242
-  #define X_SENSE_RESISTOR    91 // in mOhms
1243
-  #define X_MICROSTEPS        16 // number of microsteps
1241
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1242
+    #define X_MAX_CURRENT     1000  // (mA)
1243
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1244
+    #define X_MICROSTEPS        16  // Number of microsteps
1245
+  #endif
1244 1246
 
1245
-  #define X2_MAX_CURRENT    1000
1246
-  #define X2_SENSE_RESISTOR   91
1247
-  #define X2_MICROSTEPS       16
1247
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1248
+    #define X2_MAX_CURRENT    1000
1249
+    #define X2_SENSE_RESISTOR   91
1250
+    #define X2_MICROSTEPS       16
1251
+  #endif
1248 1252
 
1249
-  #define Y_MAX_CURRENT     1000
1250
-  #define Y_SENSE_RESISTOR    91
1251
-  #define Y_MICROSTEPS        16
1253
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1254
+    #define Y_MAX_CURRENT     1000
1255
+    #define Y_SENSE_RESISTOR    91
1256
+    #define Y_MICROSTEPS        16
1257
+  #endif
1252 1258
 
1253
-  #define Y2_MAX_CURRENT    1000
1254
-  #define Y2_SENSE_RESISTOR   91
1255
-  #define Y2_MICROSTEPS       16
1259
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1260
+    #define Y2_MAX_CURRENT    1000
1261
+    #define Y2_SENSE_RESISTOR   91
1262
+    #define Y2_MICROSTEPS       16
1263
+  #endif
1256 1264
 
1257
-  #define Z_MAX_CURRENT     1000
1258
-  #define Z_SENSE_RESISTOR    91
1259
-  #define Z_MICROSTEPS        16
1265
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1266
+    #define Z_MAX_CURRENT     1000
1267
+    #define Z_SENSE_RESISTOR    91
1268
+    #define Z_MICROSTEPS        16
1269
+  #endif
1260 1270
 
1261
-  #define Z2_MAX_CURRENT    1000
1262
-  #define Z2_SENSE_RESISTOR   91
1263
-  #define Z2_MICROSTEPS       16
1271
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1272
+    #define Z2_MAX_CURRENT    1000
1273
+    #define Z2_SENSE_RESISTOR   91
1274
+    #define Z2_MICROSTEPS       16
1275
+  #endif
1264 1276
 
1265
-  #define Z3_MAX_CURRENT    1000
1266
-  #define Z3_SENSE_RESISTOR   91
1267
-  #define Z3_MICROSTEPS       16
1277
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1278
+    #define Z3_MAX_CURRENT    1000
1279
+    #define Z3_SENSE_RESISTOR   91
1280
+    #define Z3_MICROSTEPS       16
1281
+  #endif
1268 1282
 
1269
-  #define E0_MAX_CURRENT    1000
1270
-  #define E0_SENSE_RESISTOR   91
1271
-  #define E0_MICROSTEPS       16
1283
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1284
+    #define E0_MAX_CURRENT    1000
1285
+    #define E0_SENSE_RESISTOR   91
1286
+    #define E0_MICROSTEPS       16
1287
+  #endif
1272 1288
 
1273
-  #define E1_MAX_CURRENT    1000
1274
-  #define E1_SENSE_RESISTOR   91
1275
-  #define E1_MICROSTEPS       16
1289
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1290
+    #define E1_MAX_CURRENT    1000
1291
+    #define E1_SENSE_RESISTOR   91
1292
+    #define E1_MICROSTEPS       16
1293
+  #endif
1276 1294
 
1277
-  #define E2_MAX_CURRENT    1000
1278
-  #define E2_SENSE_RESISTOR   91
1279
-  #define E2_MICROSTEPS       16
1295
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1296
+    #define E2_MAX_CURRENT    1000
1297
+    #define E2_SENSE_RESISTOR   91
1298
+    #define E2_MICROSTEPS       16
1299
+  #endif
1280 1300
 
1281
-  #define E3_MAX_CURRENT    1000
1282
-  #define E3_SENSE_RESISTOR   91
1283
-  #define E3_MICROSTEPS       16
1301
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1302
+    #define E3_MAX_CURRENT    1000
1303
+    #define E3_SENSE_RESISTOR   91
1304
+    #define E3_MICROSTEPS       16
1305
+  #endif
1284 1306
 
1285
-  #define E4_MAX_CURRENT    1000
1286
-  #define E4_SENSE_RESISTOR   91
1287
-  #define E4_MICROSTEPS       16
1307
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1308
+    #define E4_MAX_CURRENT    1000
1309
+    #define E4_SENSE_RESISTOR   91
1310
+    #define E4_MICROSTEPS       16
1311
+  #endif
1288 1312
 
1289
-  #define E5_MAX_CURRENT    1000
1290
-  #define E5_SENSE_RESISTOR   91
1291
-  #define E5_MICROSTEPS       16
1313
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1314
+    #define E5_MAX_CURRENT    1000
1315
+    #define E5_SENSE_RESISTOR   91
1316
+    #define E5_MICROSTEPS       16
1317
+  #endif
1292 1318
 
1293 1319
 #endif // TMC26X
1294 1320
 
@@ -1315,44 +1341,70 @@
1315 1341
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1316 1342
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1317 1343
 
1318
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1319
-  #define X_MICROSTEPS        16  // 0..256
1344
+  #if AXIS_IS_TMC(X)
1345
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1346
+    #define X_MICROSTEPS   16  // 0..256
1347
+  #endif
1320 1348
 
1321
-  #define Y_CURRENT          800
1322
-  #define Y_MICROSTEPS        16
1349
+  #if AXIS_IS_TMC(X2)
1350
+    #define X2_CURRENT    800
1351
+    #define X2_MICROSTEPS  16
1352
+  #endif
1323 1353
 
1324
-  #define Z_CURRENT          800
1325
-  #define Z_MICROSTEPS        16
1354
+  #if AXIS_IS_TMC(Y)
1355
+    #define Y_CURRENT     800
1356
+    #define Y_MICROSTEPS   16
1357
+  #endif
1326 1358
 
1327
-  #define X2_CURRENT         800
1328
-  #define X2_MICROSTEPS       16
1359
+  #if AXIS_IS_TMC(Y2)
1360
+    #define Y2_CURRENT    800
1361
+    #define Y2_MICROSTEPS  16
1362
+  #endif
1329 1363
 
1330
-  #define Y2_CURRENT         800
1331
-  #define Y2_MICROSTEPS       16
1364
+  #if AXIS_IS_TMC(Z)
1365
+    #define Z_CURRENT     800
1366
+    #define Z_MICROSTEPS   16
1367
+  #endif
1332 1368
 
1333
-  #define Z2_CURRENT         800
1334
-  #define Z2_MICROSTEPS       16
1369
+  #if AXIS_IS_TMC(Z2)
1370
+    #define Z2_CURRENT    800
1371
+    #define Z2_MICROSTEPS  16
1372
+  #endif
1335 1373
 
1336
-  #define Z3_CURRENT         800
1337
-  #define Z3_MICROSTEPS       16
1374
+  #if AXIS_IS_TMC(Z3)
1375
+    #define Z3_CURRENT    800
1376
+    #define Z3_MICROSTEPS  16
1377
+  #endif
1338 1378
 
1339
-  #define E0_CURRENT         800
1340
-  #define E0_MICROSTEPS       16
1379
+  #if AXIS_IS_TMC(E0)
1380
+    #define E0_CURRENT    800
1381
+    #define E0_MICROSTEPS  16
1382
+  #endif
1341 1383
 
1342
-  #define E1_CURRENT         800
1343
-  #define E1_MICROSTEPS       16
1384
+  #if AXIS_IS_TMC(E1)
1385
+    #define E1_CURRENT    800
1386
+    #define E1_MICROSTEPS  16
1387
+  #endif
1344 1388
 
1345
-  #define E2_CURRENT         800
1346
-  #define E2_MICROSTEPS       16
1389
+  #if AXIS_IS_TMC(E2)
1390
+    #define E2_CURRENT    800
1391
+    #define E2_MICROSTEPS  16
1392
+  #endif
1347 1393
 
1348
-  #define E3_CURRENT         800
1349
-  #define E3_MICROSTEPS       16
1394
+  #if AXIS_IS_TMC(E3)
1395
+    #define E3_CURRENT    800
1396
+    #define E3_MICROSTEPS  16
1397
+  #endif
1350 1398
 
1351
-  #define E4_CURRENT         800
1352
-  #define E4_MICROSTEPS       16
1399
+  #if AXIS_IS_TMC(E4)
1400
+    #define E4_CURRENT    800
1401
+    #define E4_MICROSTEPS  16
1402
+  #endif
1353 1403
 
1354
-  #define E5_CURRENT         800
1355
-  #define E5_MICROSTEPS       16
1404
+  #if AXIS_IS_TMC(E5)
1405
+    #define E5_CURRENT    800
1406
+    #define E5_MICROSTEPS  16
1407
+  #endif
1356 1408
 
1357 1409
   /**
1358 1410
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1522,84 +1574,111 @@
1522 1574
  */
1523 1575
 #if HAS_DRIVER(L6470)
1524 1576
 
1525
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1526
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1527
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1528
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1529
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1530
-
1531
-  #define X2_MICROSTEPS      128
1532
-  #define X2_OVERCURRENT    2000
1533
-  #define X2_STALLCURRENT   1500
1534
-  #define X2_MAX_VOLTAGE     127
1535
-  #define X2_CHAIN_POS         0
1536
-
1537
-  #define Y_MICROSTEPS       128
1538
-  #define Y_OVERCURRENT     2000
1539
-  #define Y_STALLCURRENT    1500
1540
-  #define Y_MAX_VOLTAGE      127
1541
-  #define Y_CHAIN_POS          0
1542
-
1543
-  #define Y2_MICROSTEPS      128
1544
-  #define Y2_OVERCURRENT    2000
1545
-  #define Y2_STALLCURRENT   1500
1546
-  #define Y2_MAX_VOLTAGE     127
1547
-  #define Y2_CHAIN_POS         0
1548
-
1549
-  #define Z_MICROSTEPS       128
1550
-  #define Z_OVERCURRENT     2000
1551
-  #define Z_STALLCURRENT    1500
1552
-  #define Z_MAX_VOLTAGE      127
1553
-  #define Z_CHAIN_POS          0
1554
-
1555
-  #define Z2_MICROSTEPS      128
1556
-  #define Z2_OVERCURRENT    2000
1557
-  #define Z2_STALLCURRENT   1500
1558
-  #define Z2_MAX_VOLTAGE     127
1559
-  #define Z2_CHAIN_POS         0
1560
-
1561
-  #define Z3_MICROSTEPS      128
1562
-  #define Z3_OVERCURRENT    2000
1563
-  #define Z3_STALLCURRENT   1500
1564
-  #define Z3_MAX_VOLTAGE     127
1565
-  #define Z3_CHAIN_POS         0
1566
-
1567
-  #define E0_MICROSTEPS      128
1568
-  #define E0_OVERCURRENT    2000
1569
-  #define E0_STALLCURRENT   1500
1570
-  #define E0_MAX_VOLTAGE     127
1571
-  #define E0_CHAIN_POS         0
1572
-
1573
-  #define E1_MICROSTEPS      128
1574
-  #define E1_OVERCURRENT    2000
1575
-  #define E1_STALLCURRENT   1500
1576
-  #define E1_MAX_VOLTAGE     127
1577
-  #define E1_CHAIN_POS         0
1578
-
1579
-  #define E2_MICROSTEPS      128
1580
-  #define E2_OVERCURRENT    2000
1581
-  #define E2_STALLCURRENT   1500
1582
-  #define E2_MAX_VOLTAGE     127
1583
-  #define E2_CHAIN_POS         0
1584
-
1585
-  #define E3_MICROSTEPS      128
1586
-  #define E3_OVERCURRENT    2000
1587
-  #define E3_STALLCURRENT   1500
1588
-  #define E3_MAX_VOLTAGE     127
1589
-  #define E3_CHAIN_POS         0
1590
-
1591
-  #define E4_MICROSTEPS      128
1592
-  #define E4_OVERCURRENT    2000
1593
-  #define E4_STALLCURRENT   1500
1594
-  #define E4_MAX_VOLTAGE     127
1595
-  #define E4_CHAIN_POS         0
1596
-
1597
-  #define E5_MICROSTEPS      128
1598
-  #define E5_OVERCURRENT    2000
1599
-  #define E5_STALLCURRENT   1500
1600
-  #define E5_MAX_VOLTAGE     127
1601
-  #define E5_CHAIN_POS         0
1577
+  //#define L6470_CHITCHAT        // Display additional status info
1602 1578
 
1579
+  #if AXIS_DRIVER_TYPE_X(L6470)
1580
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1581
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1582
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1583
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1584
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1585
+  #endif
1586
+
1587
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1588
+    #define X2_MICROSTEPS      128
1589
+    #define X2_OVERCURRENT    2000
1590
+    #define X2_STALLCURRENT   1500
1591
+    #define X2_MAX_VOLTAGE     127
1592
+    #define X2_CHAIN_POS         0
1593
+  #endif
1594
+
1595
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1596
+    #define Y_MICROSTEPS       128
1597
+    #define Y_OVERCURRENT     2000
1598
+    #define Y_STALLCURRENT    1500
1599
+    #define Y_MAX_VOLTAGE      127
1600
+    #define Y_CHAIN_POS          0
1601
+  #endif
1602
+
1603
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1604
+    #define Y2_MICROSTEPS      128
1605
+    #define Y2_OVERCURRENT    2000
1606
+    #define Y2_STALLCURRENT   1500
1607
+    #define Y2_MAX_VOLTAGE     127
1608
+    #define Y2_CHAIN_POS         0
1609
+  #endif
1610
+
1611
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1612
+    #define Z_MICROSTEPS       128
1613
+    #define Z_OVERCURRENT     2000
1614
+    #define Z_STALLCURRENT    1500
1615
+    #define Z_MAX_VOLTAGE      127
1616
+    #define Z_CHAIN_POS          0
1617
+  #endif
1618
+
1619
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1620
+    #define Z2_MICROSTEPS      128
1621
+    #define Z2_OVERCURRENT    2000
1622
+    #define Z2_STALLCURRENT   1500
1623
+    #define Z2_MAX_VOLTAGE     127
1624
+    #define Z2_CHAIN_POS         0
1625
+  #endif
1626
+
1627
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1628
+    #define Z3_MICROSTEPS      128
1629
+    #define Z3_OVERCURRENT    2000
1630
+    #define Z3_STALLCURRENT   1500
1631
+    #define Z3_MAX_VOLTAGE     127
1632
+    #define Z3_CHAIN_POS         0
1633
+  #endif
1634
+
1635
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1636
+    #define E0_MICROSTEPS      128
1637
+    #define E0_OVERCURRENT    2000
1638
+    #define E0_STALLCURRENT   1500
1639
+    #define E0_MAX_VOLTAGE     127
1640
+    #define E0_CHAIN_POS         0
1641
+  #endif
1642
+
1643
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1644
+    #define E1_MICROSTEPS      128
1645
+    #define E1_OVERCURRENT    2000
1646
+    #define E1_STALLCURRENT   1500
1647
+    #define E1_MAX_VOLTAGE     127
1648
+    #define E1_CHAIN_POS         0
1649
+  #endif
1650
+
1651
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1652
+    #define E2_MICROSTEPS      128
1653
+    #define E2_OVERCURRENT    2000
1654
+    #define E2_STALLCURRENT   1500
1655
+    #define E2_MAX_VOLTAGE     127
1656
+    #define E2_CHAIN_POS         0
1657
+  #endif
1658
+
1659
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1660
+    #define E3_MICROSTEPS      128
1661
+    #define E3_OVERCURRENT    2000
1662
+    #define E3_STALLCURRENT   1500
1663
+    #define E3_MAX_VOLTAGE     127
1664
+    #define E3_CHAIN_POS         0
1665
+  #endif
1666
+
1667
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1668
+    #define E4_MICROSTEPS      128
1669
+    #define E4_OVERCURRENT    2000
1670
+    #define E4_STALLCURRENT   1500
1671
+    #define E4_MAX_VOLTAGE     127
1672
+    #define E4_CHAIN_POS         0
1673
+  #endif
1674
+
1675
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1676
+    #define E5_MICROSTEPS      128
1677
+    #define E5_OVERCURRENT    2000
1678
+    #define E5_STALLCURRENT   1500
1679
+    #define E5_MAX_VOLTAGE     127
1680
+    #define E5_CHAIN_POS         0
1681
+  #endif
1603 1682
 
1604 1683
   /**
1605 1684
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1624,8 +1703,6 @@
1624 1703
     //#define L6470_STOP_ON_ERROR
1625 1704
   #endif
1626 1705
 
1627
-  #define L6470_CHITCHAT     // enable display of additional status info
1628
-
1629 1706
 #endif // L6470
1630 1707
 
1631 1708
 /**

+ 221
- 144
Marlin/src/config/examples/delta/Tevo Little Monster/Configuration_adv.h View File

@@ -1238,57 +1238,83 @@
1238 1238
  */
1239 1239
 #if HAS_DRIVER(TMC26X)
1240 1240
 
1241
-  #define X_MAX_CURRENT     1000 // in mA
1242
-  #define X_SENSE_RESISTOR    91 // in mOhms
1243
-  #define X_MICROSTEPS        16 // number of microsteps
1241
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1242
+    #define X_MAX_CURRENT     1000  // (mA)
1243
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1244
+    #define X_MICROSTEPS        16  // Number of microsteps
1245
+  #endif
1244 1246
 
1245
-  #define X2_MAX_CURRENT    1000
1246
-  #define X2_SENSE_RESISTOR   91
1247
-  #define X2_MICROSTEPS       16
1247
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1248
+    #define X2_MAX_CURRENT    1000
1249
+    #define X2_SENSE_RESISTOR   91
1250
+    #define X2_MICROSTEPS       16
1251
+  #endif
1248 1252
 
1249
-  #define Y_MAX_CURRENT     1000
1250
-  #define Y_SENSE_RESISTOR    91
1251
-  #define Y_MICROSTEPS        16
1253
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1254
+    #define Y_MAX_CURRENT     1000
1255
+    #define Y_SENSE_RESISTOR    91
1256
+    #define Y_MICROSTEPS        16
1257
+  #endif
1252 1258
 
1253
-  #define Y2_MAX_CURRENT    1000
1254
-  #define Y2_SENSE_RESISTOR   91
1255
-  #define Y2_MICROSTEPS       16
1259
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1260
+    #define Y2_MAX_CURRENT    1000
1261
+    #define Y2_SENSE_RESISTOR   91
1262
+    #define Y2_MICROSTEPS       16
1263
+  #endif
1256 1264
 
1257
-  #define Z_MAX_CURRENT     1000
1258
-  #define Z_SENSE_RESISTOR    91
1259
-  #define Z_MICROSTEPS        16
1265
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1266
+    #define Z_MAX_CURRENT     1000
1267
+    #define Z_SENSE_RESISTOR    91
1268
+    #define Z_MICROSTEPS        16
1269
+  #endif
1260 1270
 
1261
-  #define Z2_MAX_CURRENT    1000
1262
-  #define Z2_SENSE_RESISTOR   91
1263
-  #define Z2_MICROSTEPS       16
1271
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1272
+    #define Z2_MAX_CURRENT    1000
1273
+    #define Z2_SENSE_RESISTOR   91
1274
+    #define Z2_MICROSTEPS       16
1275
+  #endif
1264 1276
 
1265
-  #define Z3_MAX_CURRENT    1000
1266
-  #define Z3_SENSE_RESISTOR   91
1267
-  #define Z3_MICROSTEPS       16
1277
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1278
+    #define Z3_MAX_CURRENT    1000
1279
+    #define Z3_SENSE_RESISTOR   91
1280
+    #define Z3_MICROSTEPS       16
1281
+  #endif
1268 1282
 
1269
-  #define E0_MAX_CURRENT    1000
1270
-  #define E0_SENSE_RESISTOR   91
1271
-  #define E0_MICROSTEPS       16
1283
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1284
+    #define E0_MAX_CURRENT    1000
1285
+    #define E0_SENSE_RESISTOR   91
1286
+    #define E0_MICROSTEPS       16
1287
+  #endif
1272 1288
 
1273
-  #define E1_MAX_CURRENT    1000
1274
-  #define E1_SENSE_RESISTOR   91
1275
-  #define E1_MICROSTEPS       16
1289
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1290
+    #define E1_MAX_CURRENT    1000
1291
+    #define E1_SENSE_RESISTOR   91
1292
+    #define E1_MICROSTEPS       16
1293
+  #endif
1276 1294
 
1277
-  #define E2_MAX_CURRENT    1000
1278
-  #define E2_SENSE_RESISTOR   91
1279
-  #define E2_MICROSTEPS       16
1295
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1296
+    #define E2_MAX_CURRENT    1000
1297
+    #define E2_SENSE_RESISTOR   91
1298
+    #define E2_MICROSTEPS       16
1299
+  #endif
1280 1300
 
1281
-  #define E3_MAX_CURRENT    1000
1282
-  #define E3_SENSE_RESISTOR   91
1283
-  #define E3_MICROSTEPS       16
1301
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1302
+    #define E3_MAX_CURRENT    1000
1303
+    #define E3_SENSE_RESISTOR   91
1304
+    #define E3_MICROSTEPS       16
1305
+  #endif
1284 1306
 
1285
-  #define E4_MAX_CURRENT    1000
1286
-  #define E4_SENSE_RESISTOR   91
1287
-  #define E4_MICROSTEPS       16
1307
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1308
+    #define E4_MAX_CURRENT    1000
1309
+    #define E4_SENSE_RESISTOR   91
1310
+    #define E4_MICROSTEPS       16
1311
+  #endif
1288 1312
 
1289
-  #define E5_MAX_CURRENT    1000
1290
-  #define E5_SENSE_RESISTOR   91
1291
-  #define E5_MICROSTEPS       16
1313
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1314
+    #define E5_MAX_CURRENT    1000
1315
+    #define E5_SENSE_RESISTOR   91
1316
+    #define E5_MICROSTEPS       16
1317
+  #endif
1292 1318
 
1293 1319
 #endif // TMC26X
1294 1320
 
@@ -1315,44 +1341,70 @@
1315 1341
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1316 1342
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1317 1343
 
1318
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1319
-  #define X_MICROSTEPS        16  // 0..256
1344
+  #if AXIS_IS_TMC(X)
1345
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1346
+    #define X_MICROSTEPS   16  // 0..256
1347
+  #endif
1320 1348
 
1321
-  #define Y_CURRENT          800
1322
-  #define Y_MICROSTEPS        16
1349
+  #if AXIS_IS_TMC(X2)
1350
+    #define X2_CURRENT    800
1351
+    #define X2_MICROSTEPS  16
1352
+  #endif
1323 1353
 
1324
-  #define Z_CURRENT          800
1325
-  #define Z_MICROSTEPS        16
1354
+  #if AXIS_IS_TMC(Y)
1355
+    #define Y_CURRENT     800
1356
+    #define Y_MICROSTEPS   16
1357
+  #endif
1326 1358
 
1327
-  #define X2_CURRENT         800
1328
-  #define X2_MICROSTEPS       16
1359
+  #if AXIS_IS_TMC(Y2)
1360
+    #define Y2_CURRENT    800
1361
+    #define Y2_MICROSTEPS  16
1362
+  #endif
1329 1363
 
1330
-  #define Y2_CURRENT         800
1331
-  #define Y2_MICROSTEPS       16
1364
+  #if AXIS_IS_TMC(Z)
1365
+    #define Z_CURRENT     800
1366
+    #define Z_MICROSTEPS   16
1367
+  #endif
1332 1368
 
1333
-  #define Z2_CURRENT         800
1334
-  #define Z2_MICROSTEPS       16
1369
+  #if AXIS_IS_TMC(Z2)
1370
+    #define Z2_CURRENT    800
1371
+    #define Z2_MICROSTEPS  16
1372
+  #endif
1335 1373
 
1336
-  #define Z3_CURRENT         800
1337
-  #define Z3_MICROSTEPS       16
1374
+  #if AXIS_IS_TMC(Z3)
1375
+    #define Z3_CURRENT    800
1376
+    #define Z3_MICROSTEPS  16
1377
+  #endif
1338 1378
 
1339
-  #define E0_CURRENT         800
1340
-  #define E0_MICROSTEPS       16
1379
+  #if AXIS_IS_TMC(E0)
1380
+    #define E0_CURRENT    800
1381
+    #define E0_MICROSTEPS  16
1382
+  #endif
1341 1383
 
1342
-  #define E1_CURRENT         800
1343
-  #define E1_MICROSTEPS       16
1384
+  #if AXIS_IS_TMC(E1)
1385
+    #define E1_CURRENT    800
1386
+    #define E1_MICROSTEPS  16
1387
+  #endif
1344 1388
 
1345
-  #define E2_CURRENT         800
1346
-  #define E2_MICROSTEPS       16
1389
+  #if AXIS_IS_TMC(E2)
1390
+    #define E2_CURRENT    800
1391
+    #define E2_MICROSTEPS  16
1392
+  #endif
1347 1393
 
1348
-  #define E3_CURRENT         800
1349
-  #define E3_MICROSTEPS       16
1394
+  #if AXIS_IS_TMC(E3)
1395
+    #define E3_CURRENT    800
1396
+    #define E3_MICROSTEPS  16
1397
+  #endif
1350 1398
 
1351
-  #define E4_CURRENT         800
1352
-  #define E4_MICROSTEPS       16
1399
+  #if AXIS_IS_TMC(E4)
1400
+    #define E4_CURRENT    800
1401
+    #define E4_MICROSTEPS  16
1402
+  #endif
1353 1403
 
1354
-  #define E5_CURRENT         800
1355
-  #define E5_MICROSTEPS       16
1404
+  #if AXIS_IS_TMC(E5)
1405
+    #define E5_CURRENT    800
1406
+    #define E5_MICROSTEPS  16
1407
+  #endif
1356 1408
 
1357 1409
   /**
1358 1410
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1522,84 +1574,111 @@
1522 1574
  */
1523 1575
 #if HAS_DRIVER(L6470)
1524 1576
 
1525
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1526
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1527
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1528
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1529
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1530
-
1531
-  #define X2_MICROSTEPS      128
1532
-  #define X2_OVERCURRENT    2000
1533
-  #define X2_STALLCURRENT   1500
1534
-  #define X2_MAX_VOLTAGE     127
1535
-  #define X2_CHAIN_POS         0
1536
-
1537
-  #define Y_MICROSTEPS       128
1538
-  #define Y_OVERCURRENT     2000
1539
-  #define Y_STALLCURRENT    1500
1540
-  #define Y_MAX_VOLTAGE      127
1541
-  #define Y_CHAIN_POS          0
1542
-
1543
-  #define Y2_MICROSTEPS      128
1544
-  #define Y2_OVERCURRENT    2000
1545
-  #define Y2_STALLCURRENT   1500
1546
-  #define Y2_MAX_VOLTAGE     127
1547
-  #define Y2_CHAIN_POS         0
1548
-
1549
-  #define Z_MICROSTEPS       128
1550
-  #define Z_OVERCURRENT     2000
1551
-  #define Z_STALLCURRENT    1500
1552
-  #define Z_MAX_VOLTAGE      127
1553
-  #define Z_CHAIN_POS          0
1554
-
1555
-  #define Z2_MICROSTEPS      128
1556
-  #define Z2_OVERCURRENT    2000
1557
-  #define Z2_STALLCURRENT   1500
1558
-  #define Z2_MAX_VOLTAGE     127
1559
-  #define Z2_CHAIN_POS         0
1560
-
1561
-  #define Z3_MICROSTEPS      128
1562
-  #define Z3_OVERCURRENT    2000
1563
-  #define Z3_STALLCURRENT   1500
1564
-  #define Z3_MAX_VOLTAGE     127
1565
-  #define Z3_CHAIN_POS         0
1566
-
1567
-  #define E0_MICROSTEPS      128
1568
-  #define E0_OVERCURRENT    2000
1569
-  #define E0_STALLCURRENT   1500
1570
-  #define E0_MAX_VOLTAGE     127
1571
-  #define E0_CHAIN_POS         0
1572
-
1573
-  #define E1_MICROSTEPS      128
1574
-  #define E1_OVERCURRENT    2000
1575
-  #define E1_STALLCURRENT   1500
1576
-  #define E1_MAX_VOLTAGE     127
1577
-  #define E1_CHAIN_POS         0
1578
-
1579
-  #define E2_MICROSTEPS      128
1580
-  #define E2_OVERCURRENT    2000
1581
-  #define E2_STALLCURRENT   1500
1582
-  #define E2_MAX_VOLTAGE     127
1583
-  #define E2_CHAIN_POS         0
1584
-
1585
-  #define E3_MICROSTEPS      128
1586
-  #define E3_OVERCURRENT    2000
1587
-  #define E3_STALLCURRENT   1500
1588
-  #define E3_MAX_VOLTAGE     127
1589
-  #define E3_CHAIN_POS         0
1590
-
1591
-  #define E4_MICROSTEPS      128
1592
-  #define E4_OVERCURRENT    2000
1593
-  #define E4_STALLCURRENT   1500
1594
-  #define E4_MAX_VOLTAGE     127
1595
-  #define E4_CHAIN_POS         0
1596
-
1597
-  #define E5_MICROSTEPS      128
1598
-  #define E5_OVERCURRENT    2000
1599
-  #define E5_STALLCURRENT   1500
1600
-  #define E5_MAX_VOLTAGE     127
1601
-  #define E5_CHAIN_POS         0
1577
+  //#define L6470_CHITCHAT        // Display additional status info
1602 1578
 
1579
+  #if AXIS_DRIVER_TYPE_X(L6470)
1580
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1581
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1582
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1583
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1584
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1585
+  #endif
1586
+
1587
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1588
+    #define X2_MICROSTEPS      128
1589
+    #define X2_OVERCURRENT    2000
1590
+    #define X2_STALLCURRENT   1500
1591
+    #define X2_MAX_VOLTAGE     127
1592
+    #define X2_CHAIN_POS         0
1593
+  #endif
1594
+
1595
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1596
+    #define Y_MICROSTEPS       128
1597
+    #define Y_OVERCURRENT     2000
1598
+    #define Y_STALLCURRENT    1500
1599
+    #define Y_MAX_VOLTAGE      127
1600
+    #define Y_CHAIN_POS          0
1601
+  #endif
1602
+
1603
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1604
+    #define Y2_MICROSTEPS      128
1605
+    #define Y2_OVERCURRENT    2000
1606
+    #define Y2_STALLCURRENT   1500
1607
+    #define Y2_MAX_VOLTAGE     127
1608
+    #define Y2_CHAIN_POS         0
1609
+  #endif
1610
+
1611
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1612
+    #define Z_MICROSTEPS       128
1613
+    #define Z_OVERCURRENT     2000
1614
+    #define Z_STALLCURRENT    1500
1615
+    #define Z_MAX_VOLTAGE      127
1616
+    #define Z_CHAIN_POS          0
1617
+  #endif
1618
+
1619
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1620
+    #define Z2_MICROSTEPS      128
1621
+    #define Z2_OVERCURRENT    2000
1622
+    #define Z2_STALLCURRENT   1500
1623
+    #define Z2_MAX_VOLTAGE     127
1624
+    #define Z2_CHAIN_POS         0
1625
+  #endif
1626
+
1627
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1628
+    #define Z3_MICROSTEPS      128
1629
+    #define Z3_OVERCURRENT    2000
1630
+    #define Z3_STALLCURRENT   1500
1631
+    #define Z3_MAX_VOLTAGE     127
1632
+    #define Z3_CHAIN_POS         0
1633
+  #endif
1634
+
1635
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1636
+    #define E0_MICROSTEPS      128
1637
+    #define E0_OVERCURRENT    2000
1638
+    #define E0_STALLCURRENT   1500
1639
+    #define E0_MAX_VOLTAGE     127
1640
+    #define E0_CHAIN_POS         0
1641
+  #endif
1642
+
1643
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1644
+    #define E1_MICROSTEPS      128
1645
+    #define E1_OVERCURRENT    2000
1646
+    #define E1_STALLCURRENT   1500
1647
+    #define E1_MAX_VOLTAGE     127
1648
+    #define E1_CHAIN_POS         0
1649
+  #endif
1650
+
1651
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1652
+    #define E2_MICROSTEPS      128
1653
+    #define E2_OVERCURRENT    2000
1654
+    #define E2_STALLCURRENT   1500
1655
+    #define E2_MAX_VOLTAGE     127
1656
+    #define E2_CHAIN_POS         0
1657
+  #endif
1658
+
1659
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1660
+    #define E3_MICROSTEPS      128
1661
+    #define E3_OVERCURRENT    2000
1662
+    #define E3_STALLCURRENT   1500
1663
+    #define E3_MAX_VOLTAGE     127
1664
+    #define E3_CHAIN_POS         0
1665
+  #endif
1666
+
1667
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1668
+    #define E4_MICROSTEPS      128
1669
+    #define E4_OVERCURRENT    2000
1670
+    #define E4_STALLCURRENT   1500
1671
+    #define E4_MAX_VOLTAGE     127
1672
+    #define E4_CHAIN_POS         0
1673
+  #endif
1674
+
1675
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1676
+    #define E5_MICROSTEPS      128
1677
+    #define E5_OVERCURRENT    2000
1678
+    #define E5_STALLCURRENT   1500
1679
+    #define E5_MAX_VOLTAGE     127
1680
+    #define E5_CHAIN_POS         0
1681
+  #endif
1603 1682
 
1604 1683
   /**
1605 1684
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1624,8 +1703,6 @@
1624 1703
     //#define L6470_STOP_ON_ERROR
1625 1704
   #endif
1626 1705
 
1627
-  #define L6470_CHITCHAT     // enable display of additional status info
1628
-
1629 1706
 #endif // L6470
1630 1707
 
1631 1708
 /**

+ 221
- 144
Marlin/src/config/examples/delta/generic/Configuration_adv.h View File

@@ -1238,57 +1238,83 @@
1238 1238
  */
1239 1239
 #if HAS_DRIVER(TMC26X)
1240 1240
 
1241
-  #define X_MAX_CURRENT     1000 // in mA
1242
-  #define X_SENSE_RESISTOR    91 // in mOhms
1243
-  #define X_MICROSTEPS        16 // number of microsteps
1241
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1242
+    #define X_MAX_CURRENT     1000  // (mA)
1243
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1244
+    #define X_MICROSTEPS        16  // Number of microsteps
1245
+  #endif
1244 1246
 
1245
-  #define X2_MAX_CURRENT    1000
1246
-  #define X2_SENSE_RESISTOR   91
1247
-  #define X2_MICROSTEPS       16
1247
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1248
+    #define X2_MAX_CURRENT    1000
1249
+    #define X2_SENSE_RESISTOR   91
1250
+    #define X2_MICROSTEPS       16
1251
+  #endif
1248 1252
 
1249
-  #define Y_MAX_CURRENT     1000
1250
-  #define Y_SENSE_RESISTOR    91
1251
-  #define Y_MICROSTEPS        16
1253
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1254
+    #define Y_MAX_CURRENT     1000
1255
+    #define Y_SENSE_RESISTOR    91
1256
+    #define Y_MICROSTEPS        16
1257
+  #endif
1252 1258
 
1253
-  #define Y2_MAX_CURRENT    1000
1254
-  #define Y2_SENSE_RESISTOR   91
1255
-  #define Y2_MICROSTEPS       16
1259
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1260
+    #define Y2_MAX_CURRENT    1000
1261
+    #define Y2_SENSE_RESISTOR   91
1262
+    #define Y2_MICROSTEPS       16
1263
+  #endif
1256 1264
 
1257
-  #define Z_MAX_CURRENT     1000
1258
-  #define Z_SENSE_RESISTOR    91
1259
-  #define Z_MICROSTEPS        16
1265
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1266
+    #define Z_MAX_CURRENT     1000
1267
+    #define Z_SENSE_RESISTOR    91
1268
+    #define Z_MICROSTEPS        16
1269
+  #endif
1260 1270
 
1261
-  #define Z2_MAX_CURRENT    1000
1262
-  #define Z2_SENSE_RESISTOR   91
1263
-  #define Z2_MICROSTEPS       16
1271
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1272
+    #define Z2_MAX_CURRENT    1000
1273
+    #define Z2_SENSE_RESISTOR   91
1274
+    #define Z2_MICROSTEPS       16
1275
+  #endif
1264 1276
 
1265
-  #define Z3_MAX_CURRENT    1000
1266
-  #define Z3_SENSE_RESISTOR   91
1267
-  #define Z3_MICROSTEPS       16
1277
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1278
+    #define Z3_MAX_CURRENT    1000
1279
+    #define Z3_SENSE_RESISTOR   91
1280
+    #define Z3_MICROSTEPS       16
1281
+  #endif
1268 1282
 
1269
-  #define E0_MAX_CURRENT    1000
1270
-  #define E0_SENSE_RESISTOR   91
1271
-  #define E0_MICROSTEPS       16
1283
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1284
+    #define E0_MAX_CURRENT    1000
1285
+    #define E0_SENSE_RESISTOR   91
1286
+    #define E0_MICROSTEPS       16
1287
+  #endif
1272 1288
 
1273
-  #define E1_MAX_CURRENT    1000
1274
-  #define E1_SENSE_RESISTOR   91
1275
-  #define E1_MICROSTEPS       16
1289
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1290
+    #define E1_MAX_CURRENT    1000
1291
+    #define E1_SENSE_RESISTOR   91
1292
+    #define E1_MICROSTEPS       16
1293
+  #endif
1276 1294
 
1277
-  #define E2_MAX_CURRENT    1000
1278
-  #define E2_SENSE_RESISTOR   91
1279
-  #define E2_MICROSTEPS       16
1295
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1296
+    #define E2_MAX_CURRENT    1000
1297
+    #define E2_SENSE_RESISTOR   91
1298
+    #define E2_MICROSTEPS       16
1299
+  #endif
1280 1300
 
1281
-  #define E3_MAX_CURRENT    1000
1282
-  #define E3_SENSE_RESISTOR   91
1283
-  #define E3_MICROSTEPS       16
1301
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1302
+    #define E3_MAX_CURRENT    1000
1303
+    #define E3_SENSE_RESISTOR   91
1304
+    #define E3_MICROSTEPS       16
1305
+  #endif
1284 1306
 
1285
-  #define E4_MAX_CURRENT    1000
1286
-  #define E4_SENSE_RESISTOR   91
1287
-  #define E4_MICROSTEPS       16
1307
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1308
+    #define E4_MAX_CURRENT    1000
1309
+    #define E4_SENSE_RESISTOR   91
1310
+    #define E4_MICROSTEPS       16
1311
+  #endif
1288 1312
 
1289
-  #define E5_MAX_CURRENT    1000
1290
-  #define E5_SENSE_RESISTOR   91
1291
-  #define E5_MICROSTEPS       16
1313
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1314
+    #define E5_MAX_CURRENT    1000
1315
+    #define E5_SENSE_RESISTOR   91
1316
+    #define E5_MICROSTEPS       16
1317
+  #endif
1292 1318
 
1293 1319
 #endif // TMC26X
1294 1320
 
@@ -1315,44 +1341,70 @@
1315 1341
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1316 1342
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1317 1343
 
1318
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1319
-  #define X_MICROSTEPS        16  // 0..256
1344
+  #if AXIS_IS_TMC(X)
1345
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1346
+    #define X_MICROSTEPS   16  // 0..256
1347
+  #endif
1320 1348
 
1321
-  #define Y_CURRENT          800
1322
-  #define Y_MICROSTEPS        16
1349
+  #if AXIS_IS_TMC(X2)
1350
+    #define X2_CURRENT    800
1351
+    #define X2_MICROSTEPS  16
1352
+  #endif
1323 1353
 
1324
-  #define Z_CURRENT          800
1325
-  #define Z_MICROSTEPS        16
1354
+  #if AXIS_IS_TMC(Y)
1355
+    #define Y_CURRENT     800
1356
+    #define Y_MICROSTEPS   16
1357
+  #endif
1326 1358
 
1327
-  #define X2_CURRENT         800
1328
-  #define X2_MICROSTEPS       16
1359
+  #if AXIS_IS_TMC(Y2)
1360
+    #define Y2_CURRENT    800
1361
+    #define Y2_MICROSTEPS  16
1362
+  #endif
1329 1363
 
1330
-  #define Y2_CURRENT         800
1331
-  #define Y2_MICROSTEPS       16
1364
+  #if AXIS_IS_TMC(Z)
1365
+    #define Z_CURRENT     800
1366
+    #define Z_MICROSTEPS   16
1367
+  #endif
1332 1368
 
1333
-  #define Z2_CURRENT         800
1334
-  #define Z2_MICROSTEPS       16
1369
+  #if AXIS_IS_TMC(Z2)
1370
+    #define Z2_CURRENT    800
1371
+    #define Z2_MICROSTEPS  16
1372
+  #endif
1335 1373
 
1336
-  #define Z3_CURRENT         800
1337
-  #define Z3_MICROSTEPS       16
1374
+  #if AXIS_IS_TMC(Z3)
1375
+    #define Z3_CURRENT    800
1376
+    #define Z3_MICROSTEPS  16
1377
+  #endif
1338 1378
 
1339
-  #define E0_CURRENT         800
1340
-  #define E0_MICROSTEPS       16
1379
+  #if AXIS_IS_TMC(E0)
1380
+    #define E0_CURRENT    800
1381
+    #define E0_MICROSTEPS  16
1382
+  #endif
1341 1383
 
1342
-  #define E1_CURRENT         800
1343
-  #define E1_MICROSTEPS       16
1384
+  #if AXIS_IS_TMC(E1)
1385
+    #define E1_CURRENT    800
1386
+    #define E1_MICROSTEPS  16
1387
+  #endif
1344 1388
 
1345
-  #define E2_CURRENT         800
1346
-  #define E2_MICROSTEPS       16
1389
+  #if AXIS_IS_TMC(E2)
1390
+    #define E2_CURRENT    800
1391
+    #define E2_MICROSTEPS  16
1392
+  #endif
1347 1393
 
1348
-  #define E3_CURRENT         800
1349
-  #define E3_MICROSTEPS       16
1394
+  #if AXIS_IS_TMC(E3)
1395
+    #define E3_CURRENT    800
1396
+    #define E3_MICROSTEPS  16
1397
+  #endif
1350 1398
 
1351
-  #define E4_CURRENT         800
1352
-  #define E4_MICROSTEPS       16
1399
+  #if AXIS_IS_TMC(E4)
1400
+    #define E4_CURRENT    800
1401
+    #define E4_MICROSTEPS  16
1402
+  #endif
1353 1403
 
1354
-  #define E5_CURRENT         800
1355
-  #define E5_MICROSTEPS       16
1404
+  #if AXIS_IS_TMC(E5)
1405
+    #define E5_CURRENT    800
1406
+    #define E5_MICROSTEPS  16
1407
+  #endif
1356 1408
 
1357 1409
   /**
1358 1410
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1522,84 +1574,111 @@
1522 1574
  */
1523 1575
 #if HAS_DRIVER(L6470)
1524 1576
 
1525
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1526
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1527
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1528
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1529
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1530
-
1531
-  #define X2_MICROSTEPS      128
1532
-  #define X2_OVERCURRENT    2000
1533
-  #define X2_STALLCURRENT   1500
1534
-  #define X2_MAX_VOLTAGE     127
1535
-  #define X2_CHAIN_POS         0
1536
-
1537
-  #define Y_MICROSTEPS       128
1538
-  #define Y_OVERCURRENT     2000
1539
-  #define Y_STALLCURRENT    1500
1540
-  #define Y_MAX_VOLTAGE      127
1541
-  #define Y_CHAIN_POS          0
1542
-
1543
-  #define Y2_MICROSTEPS      128
1544
-  #define Y2_OVERCURRENT    2000
1545
-  #define Y2_STALLCURRENT   1500
1546
-  #define Y2_MAX_VOLTAGE     127
1547
-  #define Y2_CHAIN_POS         0
1548
-
1549
-  #define Z_MICROSTEPS       128
1550
-  #define Z_OVERCURRENT     2000
1551
-  #define Z_STALLCURRENT    1500
1552
-  #define Z_MAX_VOLTAGE      127
1553
-  #define Z_CHAIN_POS          0
1554
-
1555
-  #define Z2_MICROSTEPS      128
1556
-  #define Z2_OVERCURRENT    2000
1557
-  #define Z2_STALLCURRENT   1500
1558
-  #define Z2_MAX_VOLTAGE     127
1559
-  #define Z2_CHAIN_POS         0
1560
-
1561
-  #define Z3_MICROSTEPS      128
1562
-  #define Z3_OVERCURRENT    2000
1563
-  #define Z3_STALLCURRENT   1500
1564
-  #define Z3_MAX_VOLTAGE     127
1565
-  #define Z3_CHAIN_POS         0
1566
-
1567
-  #define E0_MICROSTEPS      128
1568
-  #define E0_OVERCURRENT    2000
1569
-  #define E0_STALLCURRENT   1500
1570
-  #define E0_MAX_VOLTAGE     127
1571
-  #define E0_CHAIN_POS         0
1572
-
1573
-  #define E1_MICROSTEPS      128
1574
-  #define E1_OVERCURRENT    2000
1575
-  #define E1_STALLCURRENT   1500
1576
-  #define E1_MAX_VOLTAGE     127
1577
-  #define E1_CHAIN_POS         0
1578
-
1579
-  #define E2_MICROSTEPS      128
1580
-  #define E2_OVERCURRENT    2000
1581
-  #define E2_STALLCURRENT   1500
1582
-  #define E2_MAX_VOLTAGE     127
1583
-  #define E2_CHAIN_POS         0
1584
-
1585
-  #define E3_MICROSTEPS      128
1586
-  #define E3_OVERCURRENT    2000
1587
-  #define E3_STALLCURRENT   1500
1588
-  #define E3_MAX_VOLTAGE     127
1589
-  #define E3_CHAIN_POS         0
1590
-
1591
-  #define E4_MICROSTEPS      128
1592
-  #define E4_OVERCURRENT    2000
1593
-  #define E4_STALLCURRENT   1500
1594
-  #define E4_MAX_VOLTAGE     127
1595
-  #define E4_CHAIN_POS         0
1596
-
1597
-  #define E5_MICROSTEPS      128
1598
-  #define E5_OVERCURRENT    2000
1599
-  #define E5_STALLCURRENT   1500
1600
-  #define E5_MAX_VOLTAGE     127
1601
-  #define E5_CHAIN_POS         0
1577
+  //#define L6470_CHITCHAT        // Display additional status info
1602 1578
 
1579
+  #if AXIS_DRIVER_TYPE_X(L6470)
1580
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1581
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1582
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1583
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1584
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1585
+  #endif
1586
+
1587
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1588
+    #define X2_MICROSTEPS      128
1589
+    #define X2_OVERCURRENT    2000
1590
+    #define X2_STALLCURRENT   1500
1591
+    #define X2_MAX_VOLTAGE     127
1592
+    #define X2_CHAIN_POS         0
1593
+  #endif
1594
+
1595
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1596
+    #define Y_MICROSTEPS       128
1597
+    #define Y_OVERCURRENT     2000
1598
+    #define Y_STALLCURRENT    1500
1599
+    #define Y_MAX_VOLTAGE      127
1600
+    #define Y_CHAIN_POS          0
1601
+  #endif
1602
+
1603
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1604
+    #define Y2_MICROSTEPS      128
1605
+    #define Y2_OVERCURRENT    2000
1606
+    #define Y2_STALLCURRENT   1500
1607
+    #define Y2_MAX_VOLTAGE     127
1608
+    #define Y2_CHAIN_POS         0
1609
+  #endif
1610
+
1611
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1612
+    #define Z_MICROSTEPS       128
1613
+    #define Z_OVERCURRENT     2000
1614
+    #define Z_STALLCURRENT    1500
1615
+    #define Z_MAX_VOLTAGE      127
1616
+    #define Z_CHAIN_POS          0
1617
+  #endif
1618
+
1619
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1620
+    #define Z2_MICROSTEPS      128
1621
+    #define Z2_OVERCURRENT    2000
1622
+    #define Z2_STALLCURRENT   1500
1623
+    #define Z2_MAX_VOLTAGE     127
1624
+    #define Z2_CHAIN_POS         0
1625
+  #endif
1626
+
1627
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1628
+    #define Z3_MICROSTEPS      128
1629
+    #define Z3_OVERCURRENT    2000
1630
+    #define Z3_STALLCURRENT   1500
1631
+    #define Z3_MAX_VOLTAGE     127
1632
+    #define Z3_CHAIN_POS         0
1633
+  #endif
1634
+
1635
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1636
+    #define E0_MICROSTEPS      128
1637
+    #define E0_OVERCURRENT    2000
1638
+    #define E0_STALLCURRENT   1500
1639
+    #define E0_MAX_VOLTAGE     127
1640
+    #define E0_CHAIN_POS         0
1641
+  #endif
1642
+
1643
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1644
+    #define E1_MICROSTEPS      128
1645
+    #define E1_OVERCURRENT    2000
1646
+    #define E1_STALLCURRENT   1500
1647
+    #define E1_MAX_VOLTAGE     127
1648
+    #define E1_CHAIN_POS         0
1649
+  #endif
1650
+
1651
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1652
+    #define E2_MICROSTEPS      128
1653
+    #define E2_OVERCURRENT    2000
1654
+    #define E2_STALLCURRENT   1500
1655
+    #define E2_MAX_VOLTAGE     127
1656
+    #define E2_CHAIN_POS         0
1657
+  #endif
1658
+
1659
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1660
+    #define E3_MICROSTEPS      128
1661
+    #define E3_OVERCURRENT    2000
1662
+    #define E3_STALLCURRENT   1500
1663
+    #define E3_MAX_VOLTAGE     127
1664
+    #define E3_CHAIN_POS         0
1665
+  #endif
1666
+
1667
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1668
+    #define E4_MICROSTEPS      128
1669
+    #define E4_OVERCURRENT    2000
1670
+    #define E4_STALLCURRENT   1500
1671
+    #define E4_MAX_VOLTAGE     127
1672
+    #define E4_CHAIN_POS         0
1673
+  #endif
1674
+
1675
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1676
+    #define E5_MICROSTEPS      128
1677
+    #define E5_OVERCURRENT    2000
1678
+    #define E5_STALLCURRENT   1500
1679
+    #define E5_MAX_VOLTAGE     127
1680
+    #define E5_CHAIN_POS         0
1681
+  #endif
1603 1682
 
1604 1683
   /**
1605 1684
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1624,8 +1703,6 @@
1624 1703
     //#define L6470_STOP_ON_ERROR
1625 1704
   #endif
1626 1705
 
1627
-  #define L6470_CHITCHAT     // enable display of additional status info
1628
-
1629 1706
 #endif // L6470
1630 1707
 
1631 1708
 /**

+ 221
- 144
Marlin/src/config/examples/delta/kossel_mini/Configuration_adv.h View File

@@ -1238,57 +1238,83 @@
1238 1238
  */
1239 1239
 #if HAS_DRIVER(TMC26X)
1240 1240
 
1241
-  #define X_MAX_CURRENT     1000 // in mA
1242
-  #define X_SENSE_RESISTOR    91 // in mOhms
1243
-  #define X_MICROSTEPS        16 // number of microsteps
1241
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1242
+    #define X_MAX_CURRENT     1000  // (mA)
1243
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1244
+    #define X_MICROSTEPS        16  // Number of microsteps
1245
+  #endif
1244 1246
 
1245
-  #define X2_MAX_CURRENT    1000
1246
-  #define X2_SENSE_RESISTOR   91
1247
-  #define X2_MICROSTEPS       16
1247
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1248
+    #define X2_MAX_CURRENT    1000
1249
+    #define X2_SENSE_RESISTOR   91
1250
+    #define X2_MICROSTEPS       16
1251
+  #endif
1248 1252
 
1249
-  #define Y_MAX_CURRENT     1000
1250
-  #define Y_SENSE_RESISTOR    91
1251
-  #define Y_MICROSTEPS        16
1253
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1254
+    #define Y_MAX_CURRENT     1000
1255
+    #define Y_SENSE_RESISTOR    91
1256
+    #define Y_MICROSTEPS        16
1257
+  #endif
1252 1258
 
1253
-  #define Y2_MAX_CURRENT    1000
1254
-  #define Y2_SENSE_RESISTOR   91
1255
-  #define Y2_MICROSTEPS       16
1259
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1260
+    #define Y2_MAX_CURRENT    1000
1261
+    #define Y2_SENSE_RESISTOR   91
1262
+    #define Y2_MICROSTEPS       16
1263
+  #endif
1256 1264
 
1257
-  #define Z_MAX_CURRENT     1000
1258
-  #define Z_SENSE_RESISTOR    91
1259
-  #define Z_MICROSTEPS        16
1265
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1266
+    #define Z_MAX_CURRENT     1000
1267
+    #define Z_SENSE_RESISTOR    91
1268
+    #define Z_MICROSTEPS        16
1269
+  #endif
1260 1270
 
1261
-  #define Z2_MAX_CURRENT    1000
1262
-  #define Z2_SENSE_RESISTOR   91
1263
-  #define Z2_MICROSTEPS       16
1271
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1272
+    #define Z2_MAX_CURRENT    1000
1273
+    #define Z2_SENSE_RESISTOR   91
1274
+    #define Z2_MICROSTEPS       16
1275
+  #endif
1264 1276
 
1265
-  #define Z3_MAX_CURRENT    1000
1266
-  #define Z3_SENSE_RESISTOR   91
1267
-  #define Z3_MICROSTEPS       16
1277
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1278
+    #define Z3_MAX_CURRENT    1000
1279
+    #define Z3_SENSE_RESISTOR   91
1280
+    #define Z3_MICROSTEPS       16
1281
+  #endif
1268 1282
 
1269
-  #define E0_MAX_CURRENT    1000
1270
-  #define E0_SENSE_RESISTOR   91
1271
-  #define E0_MICROSTEPS       16
1283
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1284
+    #define E0_MAX_CURRENT    1000
1285
+    #define E0_SENSE_RESISTOR   91
1286
+    #define E0_MICROSTEPS       16
1287
+  #endif
1272 1288
 
1273
-  #define E1_MAX_CURRENT    1000
1274
-  #define E1_SENSE_RESISTOR   91
1275
-  #define E1_MICROSTEPS       16
1289
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1290
+    #define E1_MAX_CURRENT    1000
1291
+    #define E1_SENSE_RESISTOR   91
1292
+    #define E1_MICROSTEPS       16
1293
+  #endif
1276 1294
 
1277
-  #define E2_MAX_CURRENT    1000
1278
-  #define E2_SENSE_RESISTOR   91
1279
-  #define E2_MICROSTEPS       16
1295
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1296
+    #define E2_MAX_CURRENT    1000
1297
+    #define E2_SENSE_RESISTOR   91
1298
+    #define E2_MICROSTEPS       16
1299
+  #endif
1280 1300
 
1281
-  #define E3_MAX_CURRENT    1000
1282
-  #define E3_SENSE_RESISTOR   91
1283
-  #define E3_MICROSTEPS       16
1301
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1302
+    #define E3_MAX_CURRENT    1000
1303
+    #define E3_SENSE_RESISTOR   91
1304
+    #define E3_MICROSTEPS       16
1305
+  #endif
1284 1306
 
1285
-  #define E4_MAX_CURRENT    1000
1286
-  #define E4_SENSE_RESISTOR   91
1287
-  #define E4_MICROSTEPS       16
1307
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1308
+    #define E4_MAX_CURRENT    1000
1309
+    #define E4_SENSE_RESISTOR   91
1310
+    #define E4_MICROSTEPS       16
1311
+  #endif
1288 1312
 
1289
-  #define E5_MAX_CURRENT    1000
1290
-  #define E5_SENSE_RESISTOR   91
1291
-  #define E5_MICROSTEPS       16
1313
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1314
+    #define E5_MAX_CURRENT    1000
1315
+    #define E5_SENSE_RESISTOR   91
1316
+    #define E5_MICROSTEPS       16
1317
+  #endif
1292 1318
 
1293 1319
 #endif // TMC26X
1294 1320
 
@@ -1315,44 +1341,70 @@
1315 1341
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1316 1342
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1317 1343
 
1318
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1319
-  #define X_MICROSTEPS        16  // 0..256
1344
+  #if AXIS_IS_TMC(X)
1345
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1346
+    #define X_MICROSTEPS   16  // 0..256
1347
+  #endif
1320 1348
 
1321
-  #define Y_CURRENT          800
1322
-  #define Y_MICROSTEPS        16
1349
+  #if AXIS_IS_TMC(X2)
1350
+    #define X2_CURRENT    800
1351
+    #define X2_MICROSTEPS  16
1352
+  #endif
1323 1353
 
1324
-  #define Z_CURRENT          800
1325
-  #define Z_MICROSTEPS        16
1354
+  #if AXIS_IS_TMC(Y)
1355
+    #define Y_CURRENT     800
1356
+    #define Y_MICROSTEPS   16
1357
+  #endif
1326 1358
 
1327
-  #define X2_CURRENT         800
1328
-  #define X2_MICROSTEPS       16
1359
+  #if AXIS_IS_TMC(Y2)
1360
+    #define Y2_CURRENT    800
1361
+    #define Y2_MICROSTEPS  16
1362
+  #endif
1329 1363
 
1330
-  #define Y2_CURRENT         800
1331
-  #define Y2_MICROSTEPS       16
1364
+  #if AXIS_IS_TMC(Z)
1365
+    #define Z_CURRENT     800
1366
+    #define Z_MICROSTEPS   16
1367
+  #endif
1332 1368
 
1333
-  #define Z2_CURRENT         800
1334
-  #define Z2_MICROSTEPS       16
1369
+  #if AXIS_IS_TMC(Z2)
1370
+    #define Z2_CURRENT    800
1371
+    #define Z2_MICROSTEPS  16
1372
+  #endif
1335 1373
 
1336
-  #define Z3_CURRENT         800
1337
-  #define Z3_MICROSTEPS       16
1374
+  #if AXIS_IS_TMC(Z3)
1375
+    #define Z3_CURRENT    800
1376
+    #define Z3_MICROSTEPS  16
1377
+  #endif
1338 1378
 
1339
-  #define E0_CURRENT         800
1340
-  #define E0_MICROSTEPS       16
1379
+  #if AXIS_IS_TMC(E0)
1380
+    #define E0_CURRENT    800
1381
+    #define E0_MICROSTEPS  16
1382
+  #endif
1341 1383
 
1342
-  #define E1_CURRENT         800
1343
-  #define E1_MICROSTEPS       16
1384
+  #if AXIS_IS_TMC(E1)
1385
+    #define E1_CURRENT    800
1386
+    #define E1_MICROSTEPS  16
1387
+  #endif
1344 1388
 
1345
-  #define E2_CURRENT         800
1346
-  #define E2_MICROSTEPS       16
1389
+  #if AXIS_IS_TMC(E2)
1390
+    #define E2_CURRENT    800
1391
+    #define E2_MICROSTEPS  16
1392
+  #endif
1347 1393
 
1348
-  #define E3_CURRENT         800
1349
-  #define E3_MICROSTEPS       16
1394
+  #if AXIS_IS_TMC(E3)
1395
+    #define E3_CURRENT    800
1396
+    #define E3_MICROSTEPS  16
1397
+  #endif
1350 1398
 
1351
-  #define E4_CURRENT         800
1352
-  #define E4_MICROSTEPS       16
1399
+  #if AXIS_IS_TMC(E4)
1400
+    #define E4_CURRENT    800
1401
+    #define E4_MICROSTEPS  16
1402
+  #endif
1353 1403
 
1354
-  #define E5_CURRENT         800
1355
-  #define E5_MICROSTEPS       16
1404
+  #if AXIS_IS_TMC(E5)
1405
+    #define E5_CURRENT    800
1406
+    #define E5_MICROSTEPS  16
1407
+  #endif
1356 1408
 
1357 1409
   /**
1358 1410
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1522,84 +1574,111 @@
1522 1574
  */
1523 1575
 #if HAS_DRIVER(L6470)
1524 1576
 
1525
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1526
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1527
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1528
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1529
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1530
-
1531
-  #define X2_MICROSTEPS      128
1532
-  #define X2_OVERCURRENT    2000
1533
-  #define X2_STALLCURRENT   1500
1534
-  #define X2_MAX_VOLTAGE     127
1535
-  #define X2_CHAIN_POS         0
1536
-
1537
-  #define Y_MICROSTEPS       128
1538
-  #define Y_OVERCURRENT     2000
1539
-  #define Y_STALLCURRENT    1500
1540
-  #define Y_MAX_VOLTAGE      127
1541
-  #define Y_CHAIN_POS          0
1542
-
1543
-  #define Y2_MICROSTEPS      128
1544
-  #define Y2_OVERCURRENT    2000
1545
-  #define Y2_STALLCURRENT   1500
1546
-  #define Y2_MAX_VOLTAGE     127
1547
-  #define Y2_CHAIN_POS         0
1548
-
1549
-  #define Z_MICROSTEPS       128
1550
-  #define Z_OVERCURRENT     2000
1551
-  #define Z_STALLCURRENT    1500
1552
-  #define Z_MAX_VOLTAGE      127
1553
-  #define Z_CHAIN_POS          0
1554
-
1555
-  #define Z2_MICROSTEPS      128
1556
-  #define Z2_OVERCURRENT    2000
1557
-  #define Z2_STALLCURRENT   1500
1558
-  #define Z2_MAX_VOLTAGE     127
1559
-  #define Z2_CHAIN_POS         0
1560
-
1561
-  #define Z3_MICROSTEPS      128
1562
-  #define Z3_OVERCURRENT    2000
1563
-  #define Z3_STALLCURRENT   1500
1564
-  #define Z3_MAX_VOLTAGE     127
1565
-  #define Z3_CHAIN_POS         0
1566
-
1567
-  #define E0_MICROSTEPS      128
1568
-  #define E0_OVERCURRENT    2000
1569
-  #define E0_STALLCURRENT   1500
1570
-  #define E0_MAX_VOLTAGE     127
1571
-  #define E0_CHAIN_POS         0
1572
-
1573
-  #define E1_MICROSTEPS      128
1574
-  #define E1_OVERCURRENT    2000
1575
-  #define E1_STALLCURRENT   1500
1576
-  #define E1_MAX_VOLTAGE     127
1577
-  #define E1_CHAIN_POS         0
1578
-
1579
-  #define E2_MICROSTEPS      128
1580
-  #define E2_OVERCURRENT    2000
1581
-  #define E2_STALLCURRENT   1500
1582
-  #define E2_MAX_VOLTAGE     127
1583
-  #define E2_CHAIN_POS         0
1584
-
1585
-  #define E3_MICROSTEPS      128
1586
-  #define E3_OVERCURRENT    2000
1587
-  #define E3_STALLCURRENT   1500
1588
-  #define E3_MAX_VOLTAGE     127
1589
-  #define E3_CHAIN_POS         0
1590
-
1591
-  #define E4_MICROSTEPS      128
1592
-  #define E4_OVERCURRENT    2000
1593
-  #define E4_STALLCURRENT   1500
1594
-  #define E4_MAX_VOLTAGE     127
1595
-  #define E4_CHAIN_POS         0
1596
-
1597
-  #define E5_MICROSTEPS      128
1598
-  #define E5_OVERCURRENT    2000
1599
-  #define E5_STALLCURRENT   1500
1600
-  #define E5_MAX_VOLTAGE     127
1601
-  #define E5_CHAIN_POS         0
1577
+  //#define L6470_CHITCHAT        // Display additional status info
1602 1578
 
1579
+  #if AXIS_DRIVER_TYPE_X(L6470)
1580
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1581
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1582
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1583
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1584
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1585
+  #endif
1586
+
1587
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1588
+    #define X2_MICROSTEPS      128
1589
+    #define X2_OVERCURRENT    2000
1590
+    #define X2_STALLCURRENT   1500
1591
+    #define X2_MAX_VOLTAGE     127
1592
+    #define X2_CHAIN_POS         0
1593
+  #endif
1594
+
1595
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1596
+    #define Y_MICROSTEPS       128
1597
+    #define Y_OVERCURRENT     2000
1598
+    #define Y_STALLCURRENT    1500
1599
+    #define Y_MAX_VOLTAGE      127
1600
+    #define Y_CHAIN_POS          0
1601
+  #endif
1602
+
1603
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1604
+    #define Y2_MICROSTEPS      128
1605
+    #define Y2_OVERCURRENT    2000
1606
+    #define Y2_STALLCURRENT   1500
1607
+    #define Y2_MAX_VOLTAGE     127
1608
+    #define Y2_CHAIN_POS         0
1609
+  #endif
1610
+
1611
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1612
+    #define Z_MICROSTEPS       128
1613
+    #define Z_OVERCURRENT     2000
1614
+    #define Z_STALLCURRENT    1500
1615
+    #define Z_MAX_VOLTAGE      127
1616
+    #define Z_CHAIN_POS          0
1617
+  #endif
1618
+
1619
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1620
+    #define Z2_MICROSTEPS      128
1621
+    #define Z2_OVERCURRENT    2000
1622
+    #define Z2_STALLCURRENT   1500
1623
+    #define Z2_MAX_VOLTAGE     127
1624
+    #define Z2_CHAIN_POS         0
1625
+  #endif
1626
+
1627
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1628
+    #define Z3_MICROSTEPS      128
1629
+    #define Z3_OVERCURRENT    2000
1630
+    #define Z3_STALLCURRENT   1500
1631
+    #define Z3_MAX_VOLTAGE     127
1632
+    #define Z3_CHAIN_POS         0
1633
+  #endif
1634
+
1635
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1636
+    #define E0_MICROSTEPS      128
1637
+    #define E0_OVERCURRENT    2000
1638
+    #define E0_STALLCURRENT   1500
1639
+    #define E0_MAX_VOLTAGE     127
1640
+    #define E0_CHAIN_POS         0
1641
+  #endif
1642
+
1643
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1644
+    #define E1_MICROSTEPS      128
1645
+    #define E1_OVERCURRENT    2000
1646
+    #define E1_STALLCURRENT   1500
1647
+    #define E1_MAX_VOLTAGE     127
1648
+    #define E1_CHAIN_POS         0
1649
+  #endif
1650
+
1651
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1652
+    #define E2_MICROSTEPS      128
1653
+    #define E2_OVERCURRENT    2000
1654
+    #define E2_STALLCURRENT   1500
1655
+    #define E2_MAX_VOLTAGE     127
1656
+    #define E2_CHAIN_POS         0
1657
+  #endif
1658
+
1659
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1660
+    #define E3_MICROSTEPS      128
1661
+    #define E3_OVERCURRENT    2000
1662
+    #define E3_STALLCURRENT   1500
1663
+    #define E3_MAX_VOLTAGE     127
1664
+    #define E3_CHAIN_POS         0
1665
+  #endif
1666
+
1667
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1668
+    #define E4_MICROSTEPS      128
1669
+    #define E4_OVERCURRENT    2000
1670
+    #define E4_STALLCURRENT   1500
1671
+    #define E4_MAX_VOLTAGE     127
1672
+    #define E4_CHAIN_POS         0
1673
+  #endif
1674
+
1675
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1676
+    #define E5_MICROSTEPS      128
1677
+    #define E5_OVERCURRENT    2000
1678
+    #define E5_STALLCURRENT   1500
1679
+    #define E5_MAX_VOLTAGE     127
1680
+    #define E5_CHAIN_POS         0
1681
+  #endif
1603 1682
 
1604 1683
   /**
1605 1684
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1624,8 +1703,6 @@
1624 1703
     //#define L6470_STOP_ON_ERROR
1625 1704
   #endif
1626 1705
 
1627
-  #define L6470_CHITCHAT     // enable display of additional status info
1628
-
1629 1706
 #endif // L6470
1630 1707
 
1631 1708
 /**

+ 221
- 144
Marlin/src/config/examples/delta/kossel_xl/Configuration_adv.h View File

@@ -1238,57 +1238,83 @@
1238 1238
  */
1239 1239
 #if HAS_DRIVER(TMC26X)
1240 1240
 
1241
-  #define X_MAX_CURRENT     1000 // in mA
1242
-  #define X_SENSE_RESISTOR    91 // in mOhms
1243
-  #define X_MICROSTEPS        16 // number of microsteps
1241
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1242
+    #define X_MAX_CURRENT     1000  // (mA)
1243
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1244
+    #define X_MICROSTEPS        16  // Number of microsteps
1245
+  #endif
1244 1246
 
1245
-  #define X2_MAX_CURRENT    1000
1246
-  #define X2_SENSE_RESISTOR   91
1247
-  #define X2_MICROSTEPS       16
1247
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1248
+    #define X2_MAX_CURRENT    1000
1249
+    #define X2_SENSE_RESISTOR   91
1250
+    #define X2_MICROSTEPS       16
1251
+  #endif
1248 1252
 
1249
-  #define Y_MAX_CURRENT     1000
1250
-  #define Y_SENSE_RESISTOR    91
1251
-  #define Y_MICROSTEPS        16
1253
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1254
+    #define Y_MAX_CURRENT     1000
1255
+    #define Y_SENSE_RESISTOR    91
1256
+    #define Y_MICROSTEPS        16
1257
+  #endif
1252 1258
 
1253
-  #define Y2_MAX_CURRENT    1000
1254
-  #define Y2_SENSE_RESISTOR   91
1255
-  #define Y2_MICROSTEPS       16
1259
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1260
+    #define Y2_MAX_CURRENT    1000
1261
+    #define Y2_SENSE_RESISTOR   91
1262
+    #define Y2_MICROSTEPS       16
1263
+  #endif
1256 1264
 
1257
-  #define Z_MAX_CURRENT     1000
1258
-  #define Z_SENSE_RESISTOR    91
1259
-  #define Z_MICROSTEPS        16
1265
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1266
+    #define Z_MAX_CURRENT     1000
1267
+    #define Z_SENSE_RESISTOR    91
1268
+    #define Z_MICROSTEPS        16
1269
+  #endif
1260 1270
 
1261
-  #define Z2_MAX_CURRENT    1000
1262
-  #define Z2_SENSE_RESISTOR   91
1263
-  #define Z2_MICROSTEPS       16
1271
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1272
+    #define Z2_MAX_CURRENT    1000
1273
+    #define Z2_SENSE_RESISTOR   91
1274
+    #define Z2_MICROSTEPS       16
1275
+  #endif
1264 1276
 
1265
-  #define Z3_MAX_CURRENT    1000
1266
-  #define Z3_SENSE_RESISTOR   91
1267
-  #define Z3_MICROSTEPS       16
1277
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1278
+    #define Z3_MAX_CURRENT    1000
1279
+    #define Z3_SENSE_RESISTOR   91
1280
+    #define Z3_MICROSTEPS       16
1281
+  #endif
1268 1282
 
1269
-  #define E0_MAX_CURRENT    1000
1270
-  #define E0_SENSE_RESISTOR   91
1271
-  #define E0_MICROSTEPS       16
1283
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1284
+    #define E0_MAX_CURRENT    1000
1285
+    #define E0_SENSE_RESISTOR   91
1286
+    #define E0_MICROSTEPS       16
1287
+  #endif
1272 1288
 
1273
-  #define E1_MAX_CURRENT    1000
1274
-  #define E1_SENSE_RESISTOR   91
1275
-  #define E1_MICROSTEPS       16
1289
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1290
+    #define E1_MAX_CURRENT    1000
1291
+    #define E1_SENSE_RESISTOR   91
1292
+    #define E1_MICROSTEPS       16
1293
+  #endif
1276 1294
 
1277
-  #define E2_MAX_CURRENT    1000
1278
-  #define E2_SENSE_RESISTOR   91
1279
-  #define E2_MICROSTEPS       16
1295
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1296
+    #define E2_MAX_CURRENT    1000
1297
+    #define E2_SENSE_RESISTOR   91
1298
+    #define E2_MICROSTEPS       16
1299
+  #endif
1280 1300
 
1281
-  #define E3_MAX_CURRENT    1000
1282
-  #define E3_SENSE_RESISTOR   91
1283
-  #define E3_MICROSTEPS       16
1301
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1302
+    #define E3_MAX_CURRENT    1000
1303
+    #define E3_SENSE_RESISTOR   91
1304
+    #define E3_MICROSTEPS       16
1305
+  #endif
1284 1306
 
1285
-  #define E4_MAX_CURRENT    1000
1286
-  #define E4_SENSE_RESISTOR   91
1287
-  #define E4_MICROSTEPS       16
1307
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1308
+    #define E4_MAX_CURRENT    1000
1309
+    #define E4_SENSE_RESISTOR   91
1310
+    #define E4_MICROSTEPS       16
1311
+  #endif
1288 1312
 
1289
-  #define E5_MAX_CURRENT    1000
1290
-  #define E5_SENSE_RESISTOR   91
1291
-  #define E5_MICROSTEPS       16
1313
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1314
+    #define E5_MAX_CURRENT    1000
1315
+    #define E5_SENSE_RESISTOR   91
1316
+    #define E5_MICROSTEPS       16
1317
+  #endif
1292 1318
 
1293 1319
 #endif // TMC26X
1294 1320
 
@@ -1315,44 +1341,70 @@
1315 1341
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1316 1342
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1317 1343
 
1318
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1319
-  #define X_MICROSTEPS        16  // 0..256
1344
+  #if AXIS_IS_TMC(X)
1345
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1346
+    #define X_MICROSTEPS   16  // 0..256
1347
+  #endif
1320 1348
 
1321
-  #define Y_CURRENT          800
1322
-  #define Y_MICROSTEPS        16
1349
+  #if AXIS_IS_TMC(X2)
1350
+    #define X2_CURRENT    800
1351
+    #define X2_MICROSTEPS  16
1352
+  #endif
1323 1353
 
1324
-  #define Z_CURRENT          800
1325
-  #define Z_MICROSTEPS        16
1354
+  #if AXIS_IS_TMC(Y)
1355
+    #define Y_CURRENT     800
1356
+    #define Y_MICROSTEPS   16
1357
+  #endif
1326 1358
 
1327
-  #define X2_CURRENT         800
1328
-  #define X2_MICROSTEPS       16
1359
+  #if AXIS_IS_TMC(Y2)
1360
+    #define Y2_CURRENT    800
1361
+    #define Y2_MICROSTEPS  16
1362
+  #endif
1329 1363
 
1330
-  #define Y2_CURRENT         800
1331
-  #define Y2_MICROSTEPS       16
1364
+  #if AXIS_IS_TMC(Z)
1365
+    #define Z_CURRENT     800
1366
+    #define Z_MICROSTEPS   16
1367
+  #endif
1332 1368
 
1333
-  #define Z2_CURRENT         800
1334
-  #define Z2_MICROSTEPS       16
1369
+  #if AXIS_IS_TMC(Z2)
1370
+    #define Z2_CURRENT    800
1371
+    #define Z2_MICROSTEPS  16
1372
+  #endif
1335 1373
 
1336
-  #define Z3_CURRENT         800
1337
-  #define Z3_MICROSTEPS       16
1374
+  #if AXIS_IS_TMC(Z3)
1375
+    #define Z3_CURRENT    800
1376
+    #define Z3_MICROSTEPS  16
1377
+  #endif
1338 1378
 
1339
-  #define E0_CURRENT         800
1340
-  #define E0_MICROSTEPS       16
1379
+  #if AXIS_IS_TMC(E0)
1380
+    #define E0_CURRENT    800
1381
+    #define E0_MICROSTEPS  16
1382
+  #endif
1341 1383
 
1342
-  #define E1_CURRENT         800
1343
-  #define E1_MICROSTEPS       16
1384
+  #if AXIS_IS_TMC(E1)
1385
+    #define E1_CURRENT    800
1386
+    #define E1_MICROSTEPS  16
1387
+  #endif
1344 1388
 
1345
-  #define E2_CURRENT         800
1346
-  #define E2_MICROSTEPS       16
1389
+  #if AXIS_IS_TMC(E2)
1390
+    #define E2_CURRENT    800
1391
+    #define E2_MICROSTEPS  16
1392
+  #endif
1347 1393
 
1348
-  #define E3_CURRENT         800
1349
-  #define E3_MICROSTEPS       16
1394
+  #if AXIS_IS_TMC(E3)
1395
+    #define E3_CURRENT    800
1396
+    #define E3_MICROSTEPS  16
1397
+  #endif
1350 1398
 
1351
-  #define E4_CURRENT         800
1352
-  #define E4_MICROSTEPS       16
1399
+  #if AXIS_IS_TMC(E4)
1400
+    #define E4_CURRENT    800
1401
+    #define E4_MICROSTEPS  16
1402
+  #endif
1353 1403
 
1354
-  #define E5_CURRENT         800
1355
-  #define E5_MICROSTEPS       16
1404
+  #if AXIS_IS_TMC(E5)
1405
+    #define E5_CURRENT    800
1406
+    #define E5_MICROSTEPS  16
1407
+  #endif
1356 1408
 
1357 1409
   /**
1358 1410
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1522,84 +1574,111 @@
1522 1574
  */
1523 1575
 #if HAS_DRIVER(L6470)
1524 1576
 
1525
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1526
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1527
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1528
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1529
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1530
-
1531
-  #define X2_MICROSTEPS      128
1532
-  #define X2_OVERCURRENT    2000
1533
-  #define X2_STALLCURRENT   1500
1534
-  #define X2_MAX_VOLTAGE     127
1535
-  #define X2_CHAIN_POS         0
1536
-
1537
-  #define Y_MICROSTEPS       128
1538
-  #define Y_OVERCURRENT     2000
1539
-  #define Y_STALLCURRENT    1500
1540
-  #define Y_MAX_VOLTAGE      127
1541
-  #define Y_CHAIN_POS          0
1542
-
1543
-  #define Y2_MICROSTEPS      128
1544
-  #define Y2_OVERCURRENT    2000
1545
-  #define Y2_STALLCURRENT   1500
1546
-  #define Y2_MAX_VOLTAGE     127
1547
-  #define Y2_CHAIN_POS         0
1548
-
1549
-  #define Z_MICROSTEPS       128
1550
-  #define Z_OVERCURRENT     2000
1551
-  #define Z_STALLCURRENT    1500
1552
-  #define Z_MAX_VOLTAGE      127
1553
-  #define Z_CHAIN_POS          0
1554
-
1555
-  #define Z2_MICROSTEPS      128
1556
-  #define Z2_OVERCURRENT    2000
1557
-  #define Z2_STALLCURRENT   1500
1558
-  #define Z2_MAX_VOLTAGE     127
1559
-  #define Z2_CHAIN_POS         0
1560
-
1561
-  #define Z3_MICROSTEPS      128
1562
-  #define Z3_OVERCURRENT    2000
1563
-  #define Z3_STALLCURRENT   1500
1564
-  #define Z3_MAX_VOLTAGE     127
1565
-  #define Z3_CHAIN_POS         0
1566
-
1567
-  #define E0_MICROSTEPS      128
1568
-  #define E0_OVERCURRENT    2000
1569
-  #define E0_STALLCURRENT   1500
1570
-  #define E0_MAX_VOLTAGE     127
1571
-  #define E0_CHAIN_POS         0
1572
-
1573
-  #define E1_MICROSTEPS      128
1574
-  #define E1_OVERCURRENT    2000
1575
-  #define E1_STALLCURRENT   1500
1576
-  #define E1_MAX_VOLTAGE     127
1577
-  #define E1_CHAIN_POS         0
1578
-
1579
-  #define E2_MICROSTEPS      128
1580
-  #define E2_OVERCURRENT    2000
1581
-  #define E2_STALLCURRENT   1500
1582
-  #define E2_MAX_VOLTAGE     127
1583
-  #define E2_CHAIN_POS         0
1584
-
1585
-  #define E3_MICROSTEPS      128
1586
-  #define E3_OVERCURRENT    2000
1587
-  #define E3_STALLCURRENT   1500
1588
-  #define E3_MAX_VOLTAGE     127
1589
-  #define E3_CHAIN_POS         0
1590
-
1591
-  #define E4_MICROSTEPS      128
1592
-  #define E4_OVERCURRENT    2000
1593
-  #define E4_STALLCURRENT   1500
1594
-  #define E4_MAX_VOLTAGE     127
1595
-  #define E4_CHAIN_POS         0
1596
-
1597
-  #define E5_MICROSTEPS      128
1598
-  #define E5_OVERCURRENT    2000
1599
-  #define E5_STALLCURRENT   1500
1600
-  #define E5_MAX_VOLTAGE     127
1601
-  #define E5_CHAIN_POS         0
1577
+  //#define L6470_CHITCHAT        // Display additional status info
1602 1578
 
1579
+  #if AXIS_DRIVER_TYPE_X(L6470)
1580
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1581
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1582
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1583
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1584
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1585
+  #endif
1586
+
1587
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1588
+    #define X2_MICROSTEPS      128
1589
+    #define X2_OVERCURRENT    2000
1590
+    #define X2_STALLCURRENT   1500
1591
+    #define X2_MAX_VOLTAGE     127
1592
+    #define X2_CHAIN_POS         0
1593
+  #endif
1594
+
1595
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1596
+    #define Y_MICROSTEPS       128
1597
+    #define Y_OVERCURRENT     2000
1598
+    #define Y_STALLCURRENT    1500
1599
+    #define Y_MAX_VOLTAGE      127
1600
+    #define Y_CHAIN_POS          0
1601
+  #endif
1602
+
1603
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1604
+    #define Y2_MICROSTEPS      128
1605
+    #define Y2_OVERCURRENT    2000
1606
+    #define Y2_STALLCURRENT   1500
1607
+    #define Y2_MAX_VOLTAGE     127
1608
+    #define Y2_CHAIN_POS         0
1609
+  #endif
1610
+
1611
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1612
+    #define Z_MICROSTEPS       128
1613
+    #define Z_OVERCURRENT     2000
1614
+    #define Z_STALLCURRENT    1500
1615
+    #define Z_MAX_VOLTAGE      127
1616
+    #define Z_CHAIN_POS          0
1617
+  #endif
1618
+
1619
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1620
+    #define Z2_MICROSTEPS      128
1621
+    #define Z2_OVERCURRENT    2000
1622
+    #define Z2_STALLCURRENT   1500
1623
+    #define Z2_MAX_VOLTAGE     127
1624
+    #define Z2_CHAIN_POS         0
1625
+  #endif
1626
+
1627
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1628
+    #define Z3_MICROSTEPS      128
1629
+    #define Z3_OVERCURRENT    2000
1630
+    #define Z3_STALLCURRENT   1500
1631
+    #define Z3_MAX_VOLTAGE     127
1632
+    #define Z3_CHAIN_POS         0
1633
+  #endif
1634
+
1635
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1636
+    #define E0_MICROSTEPS      128
1637
+    #define E0_OVERCURRENT    2000
1638
+    #define E0_STALLCURRENT   1500
1639
+    #define E0_MAX_VOLTAGE     127
1640
+    #define E0_CHAIN_POS         0
1641
+  #endif
1642
+
1643
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1644
+    #define E1_MICROSTEPS      128
1645
+    #define E1_OVERCURRENT    2000
1646
+    #define E1_STALLCURRENT   1500
1647
+    #define E1_MAX_VOLTAGE     127
1648
+    #define E1_CHAIN_POS         0
1649
+  #endif
1650
+
1651
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1652
+    #define E2_MICROSTEPS      128
1653
+    #define E2_OVERCURRENT    2000
1654
+    #define E2_STALLCURRENT   1500
1655
+    #define E2_MAX_VOLTAGE     127
1656
+    #define E2_CHAIN_POS         0
1657
+  #endif
1658
+
1659
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1660
+    #define E3_MICROSTEPS      128
1661
+    #define E3_OVERCURRENT    2000
1662
+    #define E3_STALLCURRENT   1500
1663
+    #define E3_MAX_VOLTAGE     127
1664
+    #define E3_CHAIN_POS         0
1665
+  #endif
1666
+
1667
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1668
+    #define E4_MICROSTEPS      128
1669
+    #define E4_OVERCURRENT    2000
1670
+    #define E4_STALLCURRENT   1500
1671
+    #define E4_MAX_VOLTAGE     127
1672
+    #define E4_CHAIN_POS         0
1673
+  #endif
1674
+
1675
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1676
+    #define E5_MICROSTEPS      128
1677
+    #define E5_OVERCURRENT    2000
1678
+    #define E5_STALLCURRENT   1500
1679
+    #define E5_MAX_VOLTAGE     127
1680
+    #define E5_CHAIN_POS         0
1681
+  #endif
1603 1682
 
1604 1683
   /**
1605 1684
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1624,8 +1703,6 @@
1624 1703
     //#define L6470_STOP_ON_ERROR
1625 1704
   #endif
1626 1705
 
1627
-  #define L6470_CHITCHAT     // enable display of additional status info
1628
-
1629 1706
 #endif // L6470
1630 1707
 
1631 1708
 /**

+ 221
- 144
Marlin/src/config/examples/gCreate/gMax1.5+/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/makibox/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/tvrrug/Round2/Configuration_adv.h View File

@@ -1236,57 +1236,83 @@
1236 1236
  */
1237 1237
 #if HAS_DRIVER(TMC26X)
1238 1238
 
1239
-  #define X_MAX_CURRENT     1000 // in mA
1240
-  #define X_SENSE_RESISTOR    91 // in mOhms
1241
-  #define X_MICROSTEPS        16 // number of microsteps
1239
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1240
+    #define X_MAX_CURRENT     1000  // (mA)
1241
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1242
+    #define X_MICROSTEPS        16  // Number of microsteps
1243
+  #endif
1242 1244
 
1243
-  #define X2_MAX_CURRENT    1000
1244
-  #define X2_SENSE_RESISTOR   91
1245
-  #define X2_MICROSTEPS       16
1245
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1246
+    #define X2_MAX_CURRENT    1000
1247
+    #define X2_SENSE_RESISTOR   91
1248
+    #define X2_MICROSTEPS       16
1249
+  #endif
1246 1250
 
1247
-  #define Y_MAX_CURRENT     1000
1248
-  #define Y_SENSE_RESISTOR    91
1249
-  #define Y_MICROSTEPS        16
1251
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1252
+    #define Y_MAX_CURRENT     1000
1253
+    #define Y_SENSE_RESISTOR    91
1254
+    #define Y_MICROSTEPS        16
1255
+  #endif
1250 1256
 
1251
-  #define Y2_MAX_CURRENT    1000
1252
-  #define Y2_SENSE_RESISTOR   91
1253
-  #define Y2_MICROSTEPS       16
1257
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1258
+    #define Y2_MAX_CURRENT    1000
1259
+    #define Y2_SENSE_RESISTOR   91
1260
+    #define Y2_MICROSTEPS       16
1261
+  #endif
1254 1262
 
1255
-  #define Z_MAX_CURRENT     1000
1256
-  #define Z_SENSE_RESISTOR    91
1257
-  #define Z_MICROSTEPS        16
1263
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1264
+    #define Z_MAX_CURRENT     1000
1265
+    #define Z_SENSE_RESISTOR    91
1266
+    #define Z_MICROSTEPS        16
1267
+  #endif
1258 1268
 
1259
-  #define Z2_MAX_CURRENT    1000
1260
-  #define Z2_SENSE_RESISTOR   91
1261
-  #define Z2_MICROSTEPS       16
1269
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1270
+    #define Z2_MAX_CURRENT    1000
1271
+    #define Z2_SENSE_RESISTOR   91
1272
+    #define Z2_MICROSTEPS       16
1273
+  #endif
1262 1274
 
1263
-  #define Z3_MAX_CURRENT    1000
1264
-  #define Z3_SENSE_RESISTOR   91
1265
-  #define Z3_MICROSTEPS       16
1275
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1276
+    #define Z3_MAX_CURRENT    1000
1277
+    #define Z3_SENSE_RESISTOR   91
1278
+    #define Z3_MICROSTEPS       16
1279
+  #endif
1266 1280
 
1267
-  #define E0_MAX_CURRENT    1000
1268
-  #define E0_SENSE_RESISTOR   91
1269
-  #define E0_MICROSTEPS       16
1281
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1282
+    #define E0_MAX_CURRENT    1000
1283
+    #define E0_SENSE_RESISTOR   91
1284
+    #define E0_MICROSTEPS       16
1285
+  #endif
1270 1286
 
1271
-  #define E1_MAX_CURRENT    1000
1272
-  #define E1_SENSE_RESISTOR   91
1273
-  #define E1_MICROSTEPS       16
1287
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1288
+    #define E1_MAX_CURRENT    1000
1289
+    #define E1_SENSE_RESISTOR   91
1290
+    #define E1_MICROSTEPS       16
1291
+  #endif
1274 1292
 
1275
-  #define E2_MAX_CURRENT    1000
1276
-  #define E2_SENSE_RESISTOR   91
1277
-  #define E2_MICROSTEPS       16
1293
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1294
+    #define E2_MAX_CURRENT    1000
1295
+    #define E2_SENSE_RESISTOR   91
1296
+    #define E2_MICROSTEPS       16
1297
+  #endif
1278 1298
 
1279
-  #define E3_MAX_CURRENT    1000
1280
-  #define E3_SENSE_RESISTOR   91
1281
-  #define E3_MICROSTEPS       16
1299
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1300
+    #define E3_MAX_CURRENT    1000
1301
+    #define E3_SENSE_RESISTOR   91
1302
+    #define E3_MICROSTEPS       16
1303
+  #endif
1282 1304
 
1283
-  #define E4_MAX_CURRENT    1000
1284
-  #define E4_SENSE_RESISTOR   91
1285
-  #define E4_MICROSTEPS       16
1305
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1306
+    #define E4_MAX_CURRENT    1000
1307
+    #define E4_SENSE_RESISTOR   91
1308
+    #define E4_MICROSTEPS       16
1309
+  #endif
1286 1310
 
1287
-  #define E5_MAX_CURRENT    1000
1288
-  #define E5_SENSE_RESISTOR   91
1289
-  #define E5_MICROSTEPS       16
1311
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1312
+    #define E5_MAX_CURRENT    1000
1313
+    #define E5_SENSE_RESISTOR   91
1314
+    #define E5_MICROSTEPS       16
1315
+  #endif
1290 1316
 
1291 1317
 #endif // TMC26X
1292 1318
 
@@ -1313,44 +1339,70 @@
1313 1339
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1314 1340
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1315 1341
 
1316
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1317
-  #define X_MICROSTEPS        16  // 0..256
1342
+  #if AXIS_IS_TMC(X)
1343
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1344
+    #define X_MICROSTEPS   16  // 0..256
1345
+  #endif
1318 1346
 
1319
-  #define Y_CURRENT          800
1320
-  #define Y_MICROSTEPS        16
1347
+  #if AXIS_IS_TMC(X2)
1348
+    #define X2_CURRENT    800
1349
+    #define X2_MICROSTEPS  16
1350
+  #endif
1321 1351
 
1322
-  #define Z_CURRENT          800
1323
-  #define Z_MICROSTEPS        16
1352
+  #if AXIS_IS_TMC(Y)
1353
+    #define Y_CURRENT     800
1354
+    #define Y_MICROSTEPS   16
1355
+  #endif
1324 1356
 
1325
-  #define X2_CURRENT         800
1326
-  #define X2_MICROSTEPS       16
1357
+  #if AXIS_IS_TMC(Y2)
1358
+    #define Y2_CURRENT    800
1359
+    #define Y2_MICROSTEPS  16
1360
+  #endif
1327 1361
 
1328
-  #define Y2_CURRENT         800
1329
-  #define Y2_MICROSTEPS       16
1362
+  #if AXIS_IS_TMC(Z)
1363
+    #define Z_CURRENT     800
1364
+    #define Z_MICROSTEPS   16
1365
+  #endif
1330 1366
 
1331
-  #define Z2_CURRENT         800
1332
-  #define Z2_MICROSTEPS       16
1367
+  #if AXIS_IS_TMC(Z2)
1368
+    #define Z2_CURRENT    800
1369
+    #define Z2_MICROSTEPS  16
1370
+  #endif
1333 1371
 
1334
-  #define Z3_CURRENT         800
1335
-  #define Z3_MICROSTEPS       16
1372
+  #if AXIS_IS_TMC(Z3)
1373
+    #define Z3_CURRENT    800
1374
+    #define Z3_MICROSTEPS  16
1375
+  #endif
1336 1376
 
1337
-  #define E0_CURRENT         800
1338
-  #define E0_MICROSTEPS       16
1377
+  #if AXIS_IS_TMC(E0)
1378
+    #define E0_CURRENT    800
1379
+    #define E0_MICROSTEPS  16
1380
+  #endif
1339 1381
 
1340
-  #define E1_CURRENT         800
1341
-  #define E1_MICROSTEPS       16
1382
+  #if AXIS_IS_TMC(E1)
1383
+    #define E1_CURRENT    800
1384
+    #define E1_MICROSTEPS  16
1385
+  #endif
1342 1386
 
1343
-  #define E2_CURRENT         800
1344
-  #define E2_MICROSTEPS       16
1387
+  #if AXIS_IS_TMC(E2)
1388
+    #define E2_CURRENT    800
1389
+    #define E2_MICROSTEPS  16
1390
+  #endif
1345 1391
 
1346
-  #define E3_CURRENT         800
1347
-  #define E3_MICROSTEPS       16
1392
+  #if AXIS_IS_TMC(E3)
1393
+    #define E3_CURRENT    800
1394
+    #define E3_MICROSTEPS  16
1395
+  #endif
1348 1396
 
1349
-  #define E4_CURRENT         800
1350
-  #define E4_MICROSTEPS       16
1397
+  #if AXIS_IS_TMC(E4)
1398
+    #define E4_CURRENT    800
1399
+    #define E4_MICROSTEPS  16
1400
+  #endif
1351 1401
 
1352
-  #define E5_CURRENT         800
1353
-  #define E5_MICROSTEPS       16
1402
+  #if AXIS_IS_TMC(E5)
1403
+    #define E5_CURRENT    800
1404
+    #define E5_MICROSTEPS  16
1405
+  #endif
1354 1406
 
1355 1407
   /**
1356 1408
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1520,84 +1572,111 @@
1520 1572
  */
1521 1573
 #if HAS_DRIVER(L6470)
1522 1574
 
1523
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1524
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1525
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1526
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1527
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1528
-
1529
-  #define X2_MICROSTEPS      128
1530
-  #define X2_OVERCURRENT    2000
1531
-  #define X2_STALLCURRENT   1500
1532
-  #define X2_MAX_VOLTAGE     127
1533
-  #define X2_CHAIN_POS         0
1534
-
1535
-  #define Y_MICROSTEPS       128
1536
-  #define Y_OVERCURRENT     2000
1537
-  #define Y_STALLCURRENT    1500
1538
-  #define Y_MAX_VOLTAGE      127
1539
-  #define Y_CHAIN_POS          0
1540
-
1541
-  #define Y2_MICROSTEPS      128
1542
-  #define Y2_OVERCURRENT    2000
1543
-  #define Y2_STALLCURRENT   1500
1544
-  #define Y2_MAX_VOLTAGE     127
1545
-  #define Y2_CHAIN_POS         0
1546
-
1547
-  #define Z_MICROSTEPS       128
1548
-  #define Z_OVERCURRENT     2000
1549
-  #define Z_STALLCURRENT    1500
1550
-  #define Z_MAX_VOLTAGE      127
1551
-  #define Z_CHAIN_POS          0
1552
-
1553
-  #define Z2_MICROSTEPS      128
1554
-  #define Z2_OVERCURRENT    2000
1555
-  #define Z2_STALLCURRENT   1500
1556
-  #define Z2_MAX_VOLTAGE     127
1557
-  #define Z2_CHAIN_POS         0
1558
-
1559
-  #define Z3_MICROSTEPS      128
1560
-  #define Z3_OVERCURRENT    2000
1561
-  #define Z3_STALLCURRENT   1500
1562
-  #define Z3_MAX_VOLTAGE     127
1563
-  #define Z3_CHAIN_POS         0
1564
-
1565
-  #define E0_MICROSTEPS      128
1566
-  #define E0_OVERCURRENT    2000
1567
-  #define E0_STALLCURRENT   1500
1568
-  #define E0_MAX_VOLTAGE     127
1569
-  #define E0_CHAIN_POS         0
1570
-
1571
-  #define E1_MICROSTEPS      128
1572
-  #define E1_OVERCURRENT    2000
1573
-  #define E1_STALLCURRENT   1500
1574
-  #define E1_MAX_VOLTAGE     127
1575
-  #define E1_CHAIN_POS         0
1576
-
1577
-  #define E2_MICROSTEPS      128
1578
-  #define E2_OVERCURRENT    2000
1579
-  #define E2_STALLCURRENT   1500
1580
-  #define E2_MAX_VOLTAGE     127
1581
-  #define E2_CHAIN_POS         0
1582
-
1583
-  #define E3_MICROSTEPS      128
1584
-  #define E3_OVERCURRENT    2000
1585
-  #define E3_STALLCURRENT   1500
1586
-  #define E3_MAX_VOLTAGE     127
1587
-  #define E3_CHAIN_POS         0
1588
-
1589
-  #define E4_MICROSTEPS      128
1590
-  #define E4_OVERCURRENT    2000
1591
-  #define E4_STALLCURRENT   1500
1592
-  #define E4_MAX_VOLTAGE     127
1593
-  #define E4_CHAIN_POS         0
1594
-
1595
-  #define E5_MICROSTEPS      128
1596
-  #define E5_OVERCURRENT    2000
1597
-  #define E5_STALLCURRENT   1500
1598
-  #define E5_MAX_VOLTAGE     127
1599
-  #define E5_CHAIN_POS         0
1575
+  //#define L6470_CHITCHAT        // Display additional status info
1600 1576
 
1577
+  #if AXIS_DRIVER_TYPE_X(L6470)
1578
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1579
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1580
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1581
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1582
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1583
+  #endif
1584
+
1585
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1586
+    #define X2_MICROSTEPS      128
1587
+    #define X2_OVERCURRENT    2000
1588
+    #define X2_STALLCURRENT   1500
1589
+    #define X2_MAX_VOLTAGE     127
1590
+    #define X2_CHAIN_POS         0
1591
+  #endif
1592
+
1593
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1594
+    #define Y_MICROSTEPS       128
1595
+    #define Y_OVERCURRENT     2000
1596
+    #define Y_STALLCURRENT    1500
1597
+    #define Y_MAX_VOLTAGE      127
1598
+    #define Y_CHAIN_POS          0
1599
+  #endif
1600
+
1601
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1602
+    #define Y2_MICROSTEPS      128
1603
+    #define Y2_OVERCURRENT    2000
1604
+    #define Y2_STALLCURRENT   1500
1605
+    #define Y2_MAX_VOLTAGE     127
1606
+    #define Y2_CHAIN_POS         0
1607
+  #endif
1608
+
1609
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1610
+    #define Z_MICROSTEPS       128
1611
+    #define Z_OVERCURRENT     2000
1612
+    #define Z_STALLCURRENT    1500
1613
+    #define Z_MAX_VOLTAGE      127
1614
+    #define Z_CHAIN_POS          0
1615
+  #endif
1616
+
1617
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1618
+    #define Z2_MICROSTEPS      128
1619
+    #define Z2_OVERCURRENT    2000
1620
+    #define Z2_STALLCURRENT   1500
1621
+    #define Z2_MAX_VOLTAGE     127
1622
+    #define Z2_CHAIN_POS         0
1623
+  #endif
1624
+
1625
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1626
+    #define Z3_MICROSTEPS      128
1627
+    #define Z3_OVERCURRENT    2000
1628
+    #define Z3_STALLCURRENT   1500
1629
+    #define Z3_MAX_VOLTAGE     127
1630
+    #define Z3_CHAIN_POS         0
1631
+  #endif
1632
+
1633
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1634
+    #define E0_MICROSTEPS      128
1635
+    #define E0_OVERCURRENT    2000
1636
+    #define E0_STALLCURRENT   1500
1637
+    #define E0_MAX_VOLTAGE     127
1638
+    #define E0_CHAIN_POS         0
1639
+  #endif
1640
+
1641
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1642
+    #define E1_MICROSTEPS      128
1643
+    #define E1_OVERCURRENT    2000
1644
+    #define E1_STALLCURRENT   1500
1645
+    #define E1_MAX_VOLTAGE     127
1646
+    #define E1_CHAIN_POS         0
1647
+  #endif
1648
+
1649
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1650
+    #define E2_MICROSTEPS      128
1651
+    #define E2_OVERCURRENT    2000
1652
+    #define E2_STALLCURRENT   1500
1653
+    #define E2_MAX_VOLTAGE     127
1654
+    #define E2_CHAIN_POS         0
1655
+  #endif
1656
+
1657
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1658
+    #define E3_MICROSTEPS      128
1659
+    #define E3_OVERCURRENT    2000
1660
+    #define E3_STALLCURRENT   1500
1661
+    #define E3_MAX_VOLTAGE     127
1662
+    #define E3_CHAIN_POS         0
1663
+  #endif
1664
+
1665
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1666
+    #define E4_MICROSTEPS      128
1667
+    #define E4_OVERCURRENT    2000
1668
+    #define E4_STALLCURRENT   1500
1669
+    #define E4_MAX_VOLTAGE     127
1670
+    #define E4_CHAIN_POS         0
1671
+  #endif
1672
+
1673
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1674
+    #define E5_MICROSTEPS      128
1675
+    #define E5_OVERCURRENT    2000
1676
+    #define E5_STALLCURRENT   1500
1677
+    #define E5_MAX_VOLTAGE     127
1678
+    #define E5_CHAIN_POS         0
1679
+  #endif
1601 1680
 
1602 1681
   /**
1603 1682
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1622,8 +1701,6 @@
1622 1701
     //#define L6470_STOP_ON_ERROR
1623 1702
   #endif
1624 1703
 
1625
-  #define L6470_CHITCHAT     // enable display of additional status info
1626
-
1627 1704
 #endif // L6470
1628 1705
 
1629 1706
 /**

+ 221
- 144
Marlin/src/config/examples/wt150/Configuration_adv.h View File

@@ -1237,57 +1237,83 @@
1237 1237
  */
1238 1238
 #if HAS_DRIVER(TMC26X)
1239 1239
 
1240
-  #define X_MAX_CURRENT     1000 // in mA
1241
-  #define X_SENSE_RESISTOR    91 // in mOhms
1242
-  #define X_MICROSTEPS        16 // number of microsteps
1240
+  #if AXIS_DRIVER_TYPE_X(TMC26X)
1241
+    #define X_MAX_CURRENT     1000  // (mA)
1242
+    #define X_SENSE_RESISTOR    91  // (mOhms)
1243
+    #define X_MICROSTEPS        16  // Number of microsteps
1244
+  #endif
1243 1245
 
1244
-  #define X2_MAX_CURRENT    1000
1245
-  #define X2_SENSE_RESISTOR   91
1246
-  #define X2_MICROSTEPS       16
1246
+  #if AXIS_DRIVER_TYPE_X2(TMC26X)
1247
+    #define X2_MAX_CURRENT    1000
1248
+    #define X2_SENSE_RESISTOR   91
1249
+    #define X2_MICROSTEPS       16
1250
+  #endif
1247 1251
 
1248
-  #define Y_MAX_CURRENT     1000
1249
-  #define Y_SENSE_RESISTOR    91
1250
-  #define Y_MICROSTEPS        16
1252
+  #if AXIS_DRIVER_TYPE_Y(TMC26X)
1253
+    #define Y_MAX_CURRENT     1000
1254
+    #define Y_SENSE_RESISTOR    91
1255
+    #define Y_MICROSTEPS        16
1256
+  #endif
1251 1257
 
1252
-  #define Y2_MAX_CURRENT    1000
1253
-  #define Y2_SENSE_RESISTOR   91
1254
-  #define Y2_MICROSTEPS       16
1258
+  #if AXIS_DRIVER_TYPE_Y2(TMC26X)
1259
+    #define Y2_MAX_CURRENT    1000
1260
+    #define Y2_SENSE_RESISTOR   91
1261
+    #define Y2_MICROSTEPS       16
1262
+  #endif
1255 1263
 
1256
-  #define Z_MAX_CURRENT     1000
1257
-  #define Z_SENSE_RESISTOR    91
1258
-  #define Z_MICROSTEPS        16
1264
+  #if AXIS_DRIVER_TYPE_Z(TMC26X)
1265
+    #define Z_MAX_CURRENT     1000
1266
+    #define Z_SENSE_RESISTOR    91
1267
+    #define Z_MICROSTEPS        16
1268
+  #endif
1259 1269
 
1260
-  #define Z2_MAX_CURRENT    1000
1261
-  #define Z2_SENSE_RESISTOR   91
1262
-  #define Z2_MICROSTEPS       16
1270
+  #if AXIS_DRIVER_TYPE_Z2(TMC26X)
1271
+    #define Z2_MAX_CURRENT    1000
1272
+    #define Z2_SENSE_RESISTOR   91
1273
+    #define Z2_MICROSTEPS       16
1274
+  #endif
1263 1275
 
1264
-  #define Z3_MAX_CURRENT    1000
1265
-  #define Z3_SENSE_RESISTOR   91
1266
-  #define Z3_MICROSTEPS       16
1276
+  #if AXIS_DRIVER_TYPE_Z3(TMC26X)
1277
+    #define Z3_MAX_CURRENT    1000
1278
+    #define Z3_SENSE_RESISTOR   91
1279
+    #define Z3_MICROSTEPS       16
1280
+  #endif
1267 1281
 
1268
-  #define E0_MAX_CURRENT    1000
1269
-  #define E0_SENSE_RESISTOR   91
1270
-  #define E0_MICROSTEPS       16
1282
+  #if AXIS_DRIVER_TYPE_E0(TMC26X)
1283
+    #define E0_MAX_CURRENT    1000
1284
+    #define E0_SENSE_RESISTOR   91
1285
+    #define E0_MICROSTEPS       16
1286
+  #endif
1271 1287
 
1272
-  #define E1_MAX_CURRENT    1000
1273
-  #define E1_SENSE_RESISTOR   91
1274
-  #define E1_MICROSTEPS       16
1288
+  #if AXIS_DRIVER_TYPE_E1(TMC26X)
1289
+    #define E1_MAX_CURRENT    1000
1290
+    #define E1_SENSE_RESISTOR   91
1291
+    #define E1_MICROSTEPS       16
1292
+  #endif
1275 1293
 
1276
-  #define E2_MAX_CURRENT    1000
1277
-  #define E2_SENSE_RESISTOR   91
1278
-  #define E2_MICROSTEPS       16
1294
+  #if AXIS_DRIVER_TYPE_E2(TMC26X)
1295
+    #define E2_MAX_CURRENT    1000
1296
+    #define E2_SENSE_RESISTOR   91
1297
+    #define E2_MICROSTEPS       16
1298
+  #endif
1279 1299
 
1280
-  #define E3_MAX_CURRENT    1000
1281
-  #define E3_SENSE_RESISTOR   91
1282
-  #define E3_MICROSTEPS       16
1300
+  #if AXIS_DRIVER_TYPE_E3(TMC26X)
1301
+    #define E3_MAX_CURRENT    1000
1302
+    #define E3_SENSE_RESISTOR   91
1303
+    #define E3_MICROSTEPS       16
1304
+  #endif
1283 1305
 
1284
-  #define E4_MAX_CURRENT    1000
1285
-  #define E4_SENSE_RESISTOR   91
1286
-  #define E4_MICROSTEPS       16
1306
+  #if AXIS_DRIVER_TYPE_E4(TMC26X)
1307
+    #define E4_MAX_CURRENT    1000
1308
+    #define E4_SENSE_RESISTOR   91
1309
+    #define E4_MICROSTEPS       16
1310
+  #endif
1287 1311
 
1288
-  #define E5_MAX_CURRENT    1000
1289
-  #define E5_SENSE_RESISTOR   91
1290
-  #define E5_MICROSTEPS       16
1312
+  #if AXIS_DRIVER_TYPE_E5(TMC26X)
1313
+    #define E5_MAX_CURRENT    1000
1314
+    #define E5_SENSE_RESISTOR   91
1315
+    #define E5_MICROSTEPS       16
1316
+  #endif
1291 1317
 
1292 1318
 #endif // TMC26X
1293 1319
 
@@ -1314,44 +1340,70 @@
1314 1340
   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current
1315 1341
   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256
1316 1342
 
1317
-  #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current.
1318
-  #define X_MICROSTEPS        16  // 0..256
1343
+  #if AXIS_IS_TMC(X)
1344
+    #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1345
+    #define X_MICROSTEPS   16  // 0..256
1346
+  #endif
1319 1347
 
1320
-  #define Y_CURRENT          800
1321
-  #define Y_MICROSTEPS        16
1348
+  #if AXIS_IS_TMC(X2)
1349
+    #define X2_CURRENT    800
1350
+    #define X2_MICROSTEPS  16
1351
+  #endif
1322 1352
 
1323
-  #define Z_CURRENT          800
1324
-  #define Z_MICROSTEPS        16
1353
+  #if AXIS_IS_TMC(Y)
1354
+    #define Y_CURRENT     800
1355
+    #define Y_MICROSTEPS   16
1356
+  #endif
1325 1357
 
1326
-  #define X2_CURRENT         800
1327
-  #define X2_MICROSTEPS       16
1358
+  #if AXIS_IS_TMC(Y2)
1359
+    #define Y2_CURRENT    800
1360
+    #define Y2_MICROSTEPS  16
1361
+  #endif
1328 1362
 
1329
-  #define Y2_CURRENT         800
1330
-  #define Y2_MICROSTEPS       16
1363
+  #if AXIS_IS_TMC(Z)
1364
+    #define Z_CURRENT     800
1365
+    #define Z_MICROSTEPS   16
1366
+  #endif
1331 1367
 
1332
-  #define Z2_CURRENT         800
1333
-  #define Z2_MICROSTEPS       16
1368
+  #if AXIS_IS_TMC(Z2)
1369
+    #define Z2_CURRENT    800
1370
+    #define Z2_MICROSTEPS  16
1371
+  #endif
1334 1372
 
1335
-  #define Z3_CURRENT         800
1336
-  #define Z3_MICROSTEPS       16
1373
+  #if AXIS_IS_TMC(Z3)
1374
+    #define Z3_CURRENT    800
1375
+    #define Z3_MICROSTEPS  16
1376
+  #endif
1337 1377
 
1338
-  #define E0_CURRENT         800
1339
-  #define E0_MICROSTEPS       16
1378
+  #if AXIS_IS_TMC(E0)
1379
+    #define E0_CURRENT    800
1380
+    #define E0_MICROSTEPS  16
1381
+  #endif
1340 1382
 
1341
-  #define E1_CURRENT         800
1342
-  #define E1_MICROSTEPS       16
1383
+  #if AXIS_IS_TMC(E1)
1384
+    #define E1_CURRENT    800
1385
+    #define E1_MICROSTEPS  16
1386
+  #endif
1343 1387
 
1344
-  #define E2_CURRENT         800
1345
-  #define E2_MICROSTEPS       16
1388
+  #if AXIS_IS_TMC(E2)
1389
+    #define E2_CURRENT    800
1390
+    #define E2_MICROSTEPS  16
1391
+  #endif
1346 1392
 
1347
-  #define E3_CURRENT         800
1348
-  #define E3_MICROSTEPS       16
1393
+  #if AXIS_IS_TMC(E3)
1394
+    #define E3_CURRENT    800
1395
+    #define E3_MICROSTEPS  16
1396
+  #endif
1349 1397
 
1350
-  #define E4_CURRENT         800
1351
-  #define E4_MICROSTEPS       16
1398
+  #if AXIS_IS_TMC(E4)
1399
+    #define E4_CURRENT    800
1400
+    #define E4_MICROSTEPS  16
1401
+  #endif
1352 1402
 
1353
-  #define E5_CURRENT         800
1354
-  #define E5_MICROSTEPS       16
1403
+  #if AXIS_IS_TMC(E5)
1404
+    #define E5_CURRENT    800
1405
+    #define E5_MICROSTEPS  16
1406
+  #endif
1355 1407
 
1356 1408
   /**
1357 1409
    * Override default SPI pins for TMC2130 and TMC2660 drivers here.
@@ -1521,84 +1573,111 @@
1521 1573
  */
1522 1574
 #if HAS_DRIVER(L6470)
1523 1575
 
1524
-  #define X_MICROSTEPS       128 // number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128 & 128)
1525
-  #define X_OVERCURRENT     2000 // current in mA where the driver will detect an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1526
-  #define X_STALLCURRENT    1500 // current in mA where the driver will detect a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1527
-  #define X_MAX_VOLTAGE      127 // 0-255, max effective voltage seen by stepper
1528
-  #define X_CHAIN_POS          0 // position in SPI chain, 0 - not in chain, 1- nearest MOSI
1529
-
1530
-  #define X2_MICROSTEPS      128
1531
-  #define X2_OVERCURRENT    2000
1532
-  #define X2_STALLCURRENT   1500
1533
-  #define X2_MAX_VOLTAGE     127
1534
-  #define X2_CHAIN_POS         0
1535
-
1536
-  #define Y_MICROSTEPS       128
1537
-  #define Y_OVERCURRENT     2000
1538
-  #define Y_STALLCURRENT    1500
1539
-  #define Y_MAX_VOLTAGE      127
1540
-  #define Y_CHAIN_POS          0
1541
-
1542
-  #define Y2_MICROSTEPS      128
1543
-  #define Y2_OVERCURRENT    2000
1544
-  #define Y2_STALLCURRENT   1500
1545
-  #define Y2_MAX_VOLTAGE     127
1546
-  #define Y2_CHAIN_POS         0
1547
-
1548
-  #define Z_MICROSTEPS       128
1549
-  #define Z_OVERCURRENT     2000
1550
-  #define Z_STALLCURRENT    1500
1551
-  #define Z_MAX_VOLTAGE      127
1552
-  #define Z_CHAIN_POS          0
1553
-
1554
-  #define Z2_MICROSTEPS      128
1555
-  #define Z2_OVERCURRENT    2000
1556
-  #define Z2_STALLCURRENT   1500
1557
-  #define Z2_MAX_VOLTAGE     127
1558
-  #define Z2_CHAIN_POS         0
1559
-
1560
-  #define Z3_MICROSTEPS      128
1561
-  #define Z3_OVERCURRENT    2000
1562
-  #define Z3_STALLCURRENT   1500
1563
-  #define Z3_MAX_VOLTAGE     127
1564
-  #define Z3_CHAIN_POS         0
1565
-
1566
-  #define E0_MICROSTEPS      128
1567
-  #define E0_OVERCURRENT    2000
1568
-  #define E0_STALLCURRENT   1500
1569
-  #define E0_MAX_VOLTAGE     127
1570
-  #define E0_CHAIN_POS         0
1571
-
1572
-  #define E1_MICROSTEPS      128
1573
-  #define E1_OVERCURRENT    2000
1574
-  #define E1_STALLCURRENT   1500
1575
-  #define E1_MAX_VOLTAGE     127
1576
-  #define E1_CHAIN_POS         0
1577
-
1578
-  #define E2_MICROSTEPS      128
1579
-  #define E2_OVERCURRENT    2000
1580
-  #define E2_STALLCURRENT   1500
1581
-  #define E2_MAX_VOLTAGE     127
1582
-  #define E2_CHAIN_POS         0
1583
-
1584
-  #define E3_MICROSTEPS      128
1585
-  #define E3_OVERCURRENT    2000
1586
-  #define E3_STALLCURRENT   1500
1587
-  #define E3_MAX_VOLTAGE     127
1588
-  #define E3_CHAIN_POS         0
1589
-
1590
-  #define E4_MICROSTEPS      128
1591
-  #define E4_OVERCURRENT    2000
1592
-  #define E4_STALLCURRENT   1500
1593
-  #define E4_MAX_VOLTAGE     127
1594
-  #define E4_CHAIN_POS         0
1595
-
1596
-  #define E5_MICROSTEPS      128
1597
-  #define E5_OVERCURRENT    2000
1598
-  #define E5_STALLCURRENT   1500
1599
-  #define E5_MAX_VOLTAGE     127
1600
-  #define E5_CHAIN_POS         0
1576
+  //#define L6470_CHITCHAT        // Display additional status info
1601 1577
 
1578
+  #if AXIS_DRIVER_TYPE_X(L6470)
1579
+    #define X_MICROSTEPS     128  // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
1580
+    #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
1581
+    #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
1582
+    #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
1583
+    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
1584
+  #endif
1585
+
1586
+  #if AXIS_DRIVER_TYPE_X2(L6470)
1587
+    #define X2_MICROSTEPS      128
1588
+    #define X2_OVERCURRENT    2000
1589
+    #define X2_STALLCURRENT   1500
1590
+    #define X2_MAX_VOLTAGE     127
1591
+    #define X2_CHAIN_POS         0
1592
+  #endif
1593
+
1594
+  #if AXIS_DRIVER_TYPE_Y(L6470)
1595
+    #define Y_MICROSTEPS       128
1596
+    #define Y_OVERCURRENT     2000
1597
+    #define Y_STALLCURRENT    1500
1598
+    #define Y_MAX_VOLTAGE      127
1599
+    #define Y_CHAIN_POS          0
1600
+  #endif
1601
+
1602
+  #if AXIS_DRIVER_TYPE_Y2(L6470)
1603
+    #define Y2_MICROSTEPS      128
1604
+    #define Y2_OVERCURRENT    2000
1605
+    #define Y2_STALLCURRENT   1500
1606
+    #define Y2_MAX_VOLTAGE     127
1607
+    #define Y2_CHAIN_POS         0
1608
+  #endif
1609
+
1610
+  #if AXIS_DRIVER_TYPE_Z(L6470)
1611
+    #define Z_MICROSTEPS       128
1612
+    #define Z_OVERCURRENT     2000
1613
+    #define Z_STALLCURRENT    1500
1614
+    #define Z_MAX_VOLTAGE      127
1615
+    #define Z_CHAIN_POS          0
1616
+  #endif
1617
+
1618
+  #if AXIS_DRIVER_TYPE_Z2(L6470)
1619
+    #define Z2_MICROSTEPS      128
1620
+    #define Z2_OVERCURRENT    2000
1621
+    #define Z2_STALLCURRENT   1500
1622
+    #define Z2_MAX_VOLTAGE     127
1623
+    #define Z2_CHAIN_POS         0
1624
+  #endif
1625
+
1626
+  #if AXIS_DRIVER_TYPE_Z3(L6470)
1627
+    #define Z3_MICROSTEPS      128
1628
+    #define Z3_OVERCURRENT    2000
1629
+    #define Z3_STALLCURRENT   1500
1630
+    #define Z3_MAX_VOLTAGE     127
1631
+    #define Z3_CHAIN_POS         0
1632
+  #endif
1633
+
1634
+  #if AXIS_DRIVER_TYPE_E0(L6470)
1635
+    #define E0_MICROSTEPS      128
1636
+    #define E0_OVERCURRENT    2000
1637
+    #define E0_STALLCURRENT   1500
1638
+    #define E0_MAX_VOLTAGE     127
1639
+    #define E0_CHAIN_POS         0
1640
+  #endif
1641
+
1642
+  #if AXIS_DRIVER_TYPE_E1(L6470)
1643
+    #define E1_MICROSTEPS      128
1644
+    #define E1_OVERCURRENT    2000
1645
+    #define E1_STALLCURRENT   1500
1646
+    #define E1_MAX_VOLTAGE     127
1647
+    #define E1_CHAIN_POS         0
1648
+  #endif
1649
+
1650
+  #if AXIS_DRIVER_TYPE_E2(L6470)
1651
+    #define E2_MICROSTEPS      128
1652
+    #define E2_OVERCURRENT    2000
1653
+    #define E2_STALLCURRENT   1500
1654
+    #define E2_MAX_VOLTAGE     127
1655
+    #define E2_CHAIN_POS         0
1656
+  #endif
1657
+
1658
+  #if AXIS_DRIVER_TYPE_E3(L6470)
1659
+    #define E3_MICROSTEPS      128
1660
+    #define E3_OVERCURRENT    2000
1661
+    #define E3_STALLCURRENT   1500
1662
+    #define E3_MAX_VOLTAGE     127
1663
+    #define E3_CHAIN_POS         0
1664
+  #endif
1665
+
1666
+  #if AXIS_DRIVER_TYPE_E4(L6470)
1667
+    #define E4_MICROSTEPS      128
1668
+    #define E4_OVERCURRENT    2000
1669
+    #define E4_STALLCURRENT   1500
1670
+    #define E4_MAX_VOLTAGE     127
1671
+    #define E4_CHAIN_POS         0
1672
+  #endif
1673
+
1674
+  #if AXIS_DRIVER_TYPE_E5(L6470)
1675
+    #define E5_MICROSTEPS      128
1676
+    #define E5_OVERCURRENT    2000
1677
+    #define E5_STALLCURRENT   1500
1678
+    #define E5_MAX_VOLTAGE     127
1679
+    #define E5_CHAIN_POS         0
1680
+  #endif
1602 1681
 
1603 1682
   /**
1604 1683
    * Monitor L6470 drivers for error conditions like over temperature and over current.
@@ -1623,8 +1702,6 @@
1623 1702
     //#define L6470_STOP_ON_ERROR
1624 1703
   #endif
1625 1704
 
1626
-  #define L6470_CHITCHAT     // enable display of additional status info
1627
-
1628 1705
 #endif // L6470
1629 1706
 
1630 1707
 /**

Loading…
Cancel
Save