Browse Source

Fix and optimize MightyBoard (#20493)

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

+ 1
- 1
Marlin/Configuration_adv.h View File

1022
 /**
1022
 /**
1023
  * I2C-based DIGIPOTs (e.g., Azteeg X3 Pro)
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
 //#define DIGIPOT_MCP4451
1026
 //#define DIGIPOT_MCP4451
1027
 #if EITHER(DIGIPOT_MCP4018, DIGIPOT_MCP4451)
1027
 #if EITHER(DIGIPOT_MCP4018, DIGIPOT_MCP4451)
1028
   #define DIGIPOT_I2C_NUM_CHANNELS 8  // 5DPRINT:4   AZTEEG_X3_PRO:8   MKS_SBASE:5   MIGHTYBOARD_REVE:5
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
 #include "digipot.h"
27
 #include "digipot.h"
28
 
28
 
29
 #include <Stream.h>
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
 // Settings for the I2C based DIGIPOT (MCP4018) based on WT150
32
 // Settings for the I2C based DIGIPOT (MCP4018) based on WT150
33
 
33
 
46
 }
46
 }
47
 
47
 
48
 static SlowSoftI2CMaster pots[DIGIPOT_I2C_NUM_CHANNELS] = {
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
   #if DIGIPOT_I2C_NUM_CHANNELS > 1
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
     #if DIGIPOT_I2C_NUM_CHANNELS > 2
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
       #if DIGIPOT_I2C_NUM_CHANNELS > 3
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
         #if DIGIPOT_I2C_NUM_CHANNELS > 4
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
           #if DIGIPOT_I2C_NUM_CHANNELS > 5
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
             #if DIGIPOT_I2C_NUM_CHANNELS > 6
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
               #if DIGIPOT_I2C_NUM_CHANNELS > 7
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
               #endif
64
               #endif
65
             #endif
65
             #endif
66
           #endif
66
           #endif

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

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

+ 19
- 13
platformio.ini View File

457
 [env:mega2560ext]
457
 [env:mega2560ext]
458
 platform            = atmelavr
458
 platform            = atmelavr
459
 extends             = env:mega2560
459
 extends             = env:mega2560
460
-board               = megaatmega2560
461
 board_build.variant = megaextendedpins
460
 board_build.variant = megaextendedpins
462
 extra_scripts       = ${common.extra_scripts}
461
 extra_scripts       = ${common.extra_scripts}
463
                       pre:buildroot/share/PlatformIO/scripts/copy_marlin_variant_to_framework.py
462
                       pre:buildroot/share/PlatformIO/scripts/copy_marlin_variant_to_framework.py
471
 board    = megaatmega1280
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
 [env:MightyBoard1280]
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
 [env:MightyBoard2560]
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
 # RAMBo
500
 # RAMBo

Loading…
Cancel
Save