Browse Source

Fix and optimize MightyBoard (#20493)

grauerfuchs 3 years ago
parent
commit
e9677594ea
No account linked to committer's email address

+ 1
- 1
Marlin/Configuration_adv.h View File

@@ -1022,7 +1022,7 @@
1022 1022
 /**
1023 1023
  * I2C-based DIGIPOTs (e.g., Azteeg X3 Pro)
1024 1024
  */
1025
-//#define DIGIPOT_MCP4018             // Requires https://github.com/stawel/SlowSoftI2CMaster
1025
+//#define DIGIPOT_MCP4018             // Requires https://github.com/felias-fogg/SlowSoftI2CMaster
1026 1026
 //#define DIGIPOT_MCP4451
1027 1027
 #if EITHER(DIGIPOT_MCP4018, DIGIPOT_MCP4451)
1028 1028
   #define DIGIPOT_I2C_NUM_CHANNELS 8  // 5DPRINT:4   AZTEEG_X3_PRO:8   MKS_SBASE:5   MIGHTYBOARD_REVE:5

+ 9
- 9
Marlin/src/feature/digipot/digipot_mcp4018.cpp View File

@@ -27,7 +27,7 @@
27 27
 #include "digipot.h"
28 28
 
29 29
 #include <Stream.h>
30
-#include <SlowSoftI2CMaster.h>  // https://github.com/stawel/SlowSoftI2CMaster
30
+#include <SlowSoftI2CMaster.h>  // https://github.com/felias-fogg/SlowSoftI2CMaster
31 31
 
32 32
 // Settings for the I2C based DIGIPOT (MCP4018) based on WT150
33 33
 
@@ -46,21 +46,21 @@ static byte current_to_wiper(const float current) {
46 46
 }
47 47
 
48 48
 static SlowSoftI2CMaster pots[DIGIPOT_I2C_NUM_CHANNELS] = {
49
-  SlowSoftI2CMaster(DIGIPOTS_I2C_SDA_X, DIGIPOTS_I2C_SCL)
49
+  SlowSoftI2CMaster(DIGIPOTS_I2C_SDA_X, DIGIPOTS_I2C_SCL, ENABLED(DIGIPOT_ENABLE_I2C_PULLUPS))
50 50
   #if DIGIPOT_I2C_NUM_CHANNELS > 1
51
-    , SlowSoftI2CMaster(DIGIPOTS_I2C_SDA_Y, DIGIPOTS_I2C_SCL)
51
+    , SlowSoftI2CMaster(DIGIPOTS_I2C_SDA_Y, DIGIPOTS_I2C_SCL, ENABLED(DIGIPOT_ENABLE_I2C_PULLUPS))
52 52
     #if DIGIPOT_I2C_NUM_CHANNELS > 2
53
-      , SlowSoftI2CMaster(DIGIPOTS_I2C_SDA_Z, DIGIPOTS_I2C_SCL)
53
+      , SlowSoftI2CMaster(DIGIPOTS_I2C_SDA_Z, DIGIPOTS_I2C_SCL, ENABLED(DIGIPOT_ENABLE_I2C_PULLUPS))
54 54
       #if DIGIPOT_I2C_NUM_CHANNELS > 3
55
-        , SlowSoftI2CMaster(DIGIPOTS_I2C_SDA_E0, DIGIPOTS_I2C_SCL)
55
+        , SlowSoftI2CMaster(DIGIPOTS_I2C_SDA_E0, DIGIPOTS_I2C_SCL, ENABLED(DIGIPOT_ENABLE_I2C_PULLUPS))
56 56
         #if DIGIPOT_I2C_NUM_CHANNELS > 4
57
-          , SlowSoftI2CMaster(DIGIPOTS_I2C_SDA_E1, DIGIPOTS_I2C_SCL)
57
+          , SlowSoftI2CMaster(DIGIPOTS_I2C_SDA_E1, DIGIPOTS_I2C_SCL, ENABLED(DIGIPOT_ENABLE_I2C_PULLUPS))
58 58
           #if DIGIPOT_I2C_NUM_CHANNELS > 5
59
-            , SlowSoftI2CMaster(DIGIPOTS_I2C_SDA_E2, DIGIPOTS_I2C_SCL)
59
+            , SlowSoftI2CMaster(DIGIPOTS_I2C_SDA_E2, DIGIPOTS_I2C_SCL, ENABLED(DIGIPOT_ENABLE_I2C_PULLUPS))
60 60
             #if DIGIPOT_I2C_NUM_CHANNELS > 6
61
-              , SlowSoftI2CMaster(DIGIPOTS_I2C_SDA_E3, DIGIPOTS_I2C_SCL)
61
+              , SlowSoftI2CMaster(DIGIPOTS_I2C_SDA_E3, DIGIPOTS_I2C_SCL, ENABLED(DIGIPOT_ENABLE_I2C_PULLUPS))
62 62
               #if DIGIPOT_I2C_NUM_CHANNELS > 7
63
-                , SlowSoftI2CMaster(DIGIPOTS_I2C_SDA_E4, DIGIPOTS_I2C_SCL)
63
+                , SlowSoftI2CMaster(DIGIPOTS_I2C_SDA_E4, DIGIPOTS_I2C_SCL, ENABLED(DIGIPOT_ENABLE_I2C_PULLUPS))
64 64
               #endif
65 65
             #endif
66 66
           #endif

+ 1
- 0
Marlin/src/pins/mega/pins_MIGHTYBOARD_REVE.h View File

@@ -118,6 +118,7 @@
118 118
 #ifndef DIGIPOT_I2C_ADDRESS_A
119 119
   #define DIGIPOT_I2C_ADDRESS_A             0x2F  // unshifted slave address (5E <- 2F << 1)
120 120
 #endif
121
+#define DIGIPOT_ENABLE_I2C_PULLUPS                // MightyBoard doesn't have hardware I2C pin pull-ups.
121 122
 
122 123
 //
123 124
 // Temperature Sensors

+ 19
- 13
platformio.ini View File

@@ -457,7 +457,6 @@ board    = megaatmega2560
457 457
 [env:mega2560ext]
458 458
 platform            = atmelavr
459 459
 extends             = env:mega2560
460
-board               = megaatmega2560
461 460
 board_build.variant = megaextendedpins
462 461
 extra_scripts       = ${common.extra_scripts}
463 462
                       pre:buildroot/share/PlatformIO/scripts/copy_marlin_variant_to_framework.py
@@ -471,24 +470,31 @@ extends  = common_avr8
471 470
 board    = megaatmega1280
472 471
 
473 472
 #
474
-# MightyBoard ATmega2560 (MegaCore 100 pin boards variants)
473
+# MightyBoard AVR with extended pins
474
+#
475
+[mega_extended_optimized]
476
+extends             = common_avr8
477
+board_build.variant = megaextendedpins
478
+extra_scripts       = ${common.extra_scripts}
479
+                      pre:buildroot/share/PlatformIO/scripts/copy_marlin_variant_to_framework.py
480
+upload_speed        = 57600
481
+build_flags         = ${common.build_flags} -fno-tree-scev-cprop -fno-split-wide-types -Wl,--relax -mcall-prologues
482
+
483
+#
484
+# MightyBoard ATmega1280
475 485
 #
476 486
 [env:MightyBoard1280]
477
-platform      = atmelavr
478
-extends       = common_avr8
479
-board         = ATmega1280
480
-upload_speed  = 57600
487
+platform = atmelavr
488
+extends  = mega_extended_optimized
489
+board    = megamega1280
481 490
 
482 491
 #
483
-# MightyBoard ATmega2560 (MegaCore 100 pin boards variants)
492
+# MightyBoard ATmega2560
484 493
 #
485 494
 [env:MightyBoard2560]
486
-platform                  = atmelavr
487
-extends                   = common_avr8
488
-board                     = ATmega2560
489
-upload_protocol           = wiring
490
-upload_speed              = 57600
491
-board_upload.maximum_size = 253952
495
+platform = atmelavr
496
+extends  = mega_extended_optimized
497
+board    = megaatmega2560
492 498
 
493 499
 #
494 500
 # RAMBo

Loading…
Cancel
Save