Просмотр исходного кода

🔧 Improve SD_DETECT_STATE default (#21885)

Scott Lahteine 4 лет назад
Родитель
Сommit
69473daa3d
Аккаунт пользователя с таким Email не найден

+ 10
- 13
Marlin/src/inc/Conditionals_post.h Просмотреть файл

@@ -330,11 +330,6 @@
330 330
  */
331 331
 #if ENABLED(SDSUPPORT)
332 332
 
333
-  // Extender cable doesn't support SD_DETECT_PIN
334
-  #if ENABLED(NO_SD_DETECT)
335
-    #undef SD_DETECT_PIN
336
-  #endif
337
-
338 333
   #if HAS_SD_HOST_DRIVE && SD_CONNECTION_IS(ONBOARD)
339 334
     //
340 335
     // The external SD card is not used. Hardware SPI is used to access the card.
@@ -345,18 +340,20 @@
345 340
     #define HAS_SHARED_MEDIA 1
346 341
   #endif
347 342
 
348
-  #if PIN_EXISTS(SD_DETECT)
349
-    #if HAS_LCD_MENU && (SD_CONNECTION_IS(LCD) || !defined(SDCARD_CONNECTION))
350
-      #undef SD_DETECT_STATE
351
-      #if ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
352
-        #define SD_DETECT_STATE HIGH
353
-      #endif
354
-    #endif
355
-    #ifndef SD_DETECT_STATE
343
+  // Set SD_DETECT_STATE based on hardware if not overridden
344
+  #if PIN_EXISTS(SD_DETECT) && !defined(SD_DETECT_STATE)
345
+    #if BOTH(HAS_LCD_MENU, ELB_FULL_GRAPHIC_CONTROLLER) && (SD_CONNECTION_IS(LCD) || !defined(SDCARD_CONNECTION))
346
+      #define SD_DETECT_STATE HIGH
347
+    #else
356 348
       #define SD_DETECT_STATE LOW
357 349
     #endif
358 350
   #endif
359 351
 
352
+  // Extender cable doesn't support SD_DETECT_PIN
353
+  #if ENABLED(NO_SD_DETECT)
354
+    #undef SD_DETECT_PIN
355
+  #endif
356
+
360 357
   #if DISABLED(USB_FLASH_DRIVE_SUPPORT) || BOTH(MULTI_VOLUME, VOLUME_SD_ONBOARD)
361 358
     #if ENABLED(SDIO_SUPPORT)
362 359
       #define NEED_SD2CARD_SDIO 1

+ 7
- 0
Marlin/src/inc/SanityCheck.h Просмотреть файл

@@ -761,6 +761,13 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
761 761
 #endif
762 762
 
763 763
 /**
764
+ * SD Card Settings
765
+ */
766
+#if ALL(SDSUPPORT, ELB_FULL_GRAPHIC_CONTROLLER, HAS_LCD_MENU) && PIN_EXISTS(SD_DETECT) && SD_DETECT_STATE != HIGH && (SD_CONNECTION_IS(LCD) || !defined(SDCARD_CONNECTION))
767
+  #error "SD_DETECT_STATE must be set HIGH for SD on the ELB_FULL_GRAPHIC_CONTROLLER."
768
+#endif
769
+
770
+/**
764 771
  * SD File Sorting
765 772
  */
766 773
 #if ENABLED(SDCARD_SORT_ALPHA)

+ 5
- 2
Marlin/src/pins/stm32f4/pins_BTT_OCTOPUS_V1_0.h Просмотреть файл

@@ -349,8 +349,11 @@
349 349
 //
350 350
 #if SD_CONNECTION_IS(ONBOARD)
351 351
   #define SDIO_SUPPORT                            // Use SDIO for onboard SD
352
-  #undef SD_DETECT_STATE
353
-  #define SD_DETECT_STATE                   HIGH
352
+  #ifndef SD_DETECT_STATE
353
+    #define SD_DETECT_STATE HIGH
354
+  #elif SD_DETECT_STATE == LOW
355
+    #error "BOARD_BTT_OCTOPUS_V1_0 onboard SD requires SD_DETECT_STATE set to HIGH."
356
+  #endif
354 357
   #define SD_DETECT_PIN                     PC14
355 358
 #elif SD_CONNECTION_IS(LCD)
356 359
 

Загрузка…
Отмена
Сохранить