Browse Source

🐛 Fix Archim2 USB Hang (#24314)

FB4S_WIFI
InsanityAutomation 2 years ago
committed by Scott Lahteine
parent
commit
53a57ff7bf
  1. 2
      Marlin/Configuration_adv.h
  2. 9
      Marlin/src/pins/sam/pins_ARCHIM2.h
  3. 22
      Marlin/src/sd/usb_flashdrive/Sd2Card_FlashDrive.cpp

2
Marlin/Configuration_adv.h

@ -1605,6 +1605,8 @@
//#define USE_UHS2_USB //#define USE_UHS2_USB
//#define USE_UHS3_USB //#define USE_UHS3_USB
#define DISABLE_DUE_SD_MMC // Disable USB Host access to USB Drive to prevent hangs on block access for DUE platform
/** /**
* Native USB Host supported by some boards (USB OTG) * Native USB Host supported by some boards (USB OTG)
*/ */

9
Marlin/src/pins/sam/pins_ARCHIM2.h

@ -245,8 +245,6 @@
#define LCD_PINS_D5 54 // D54 PA16_SCK1 #define LCD_PINS_D5 54 // D54 PA16_SCK1
#define LCD_PINS_D6 68 // D68 PA1_CANRX0 #define LCD_PINS_D6 68 // D68 PA1_CANRX0
#define LCD_PINS_D7 34 // D34 PC2_PWML0 #define LCD_PINS_D7 34 // D34 PC2_PWML0
#define SD_DETECT_PIN 2 // D2 PB25_TIOA0
#endif #endif
#if ANY(IS_ULTIPANEL, TOUCH_UI_ULTIPANEL, TOUCH_UI_FTDI_EVE) #if ANY(IS_ULTIPANEL, TOUCH_UI_ULTIPANEL, TOUCH_UI_FTDI_EVE)
@ -255,3 +253,10 @@
#define BTN_EN2 13 // D13 PB27_TIOB0 #define BTN_EN2 13 // D13 PB27_TIOB0
#define BTN_ENC 16 // D16 PA13_TXD1 // the click #define BTN_ENC 16 // D16 PA13_TXD1 // the click
#endif #endif
#if ANY(HAS_WIRED_LCD, TOUCH_UI_ULTIPANEL, TOUCH_UI_FTDI_EVE, USB_FLASH_DRIVE_SUPPORT)
#define SD_DETECT_PIN 2 // D2 PB25_TIOA0
#if ENABLED(USB_FLASH_DRIVE_SUPPORT)
#define DISABLE_DUE_SD_MMC
#endif
#endif

22
Marlin/src/sd/usb_flashdrive/Sd2Card_FlashDrive.cpp

@ -159,18 +159,18 @@ void DiskIODriver_USBFlash::idle() {
static uint8_t laststate = 232; static uint8_t laststate = 232;
if (task_state != laststate) { if (task_state != laststate) {
laststate = task_state; laststate = task_state;
#define UHS_USB_DEBUG(x) case UHS_STATE(x): SERIAL_ECHOLNPGM(#x); break #define UHS_USB_DEBUG(x,y) case UHS_STATE(x): SERIAL_ECHOLNPGM(y); break
switch (task_state) { switch (task_state) {
UHS_USB_DEBUG(IDLE); UHS_USB_DEBUG(IDLE, "IDLE");
UHS_USB_DEBUG(RESET_DEVICE); UHS_USB_DEBUG(RESET_DEVICE, "RESET_DEVICE");
UHS_USB_DEBUG(RESET_NOT_COMPLETE); UHS_USB_DEBUG(RESET_NOT_COMPLETE, "RESET_NOT_COMPLETE");
UHS_USB_DEBUG(DEBOUNCE); UHS_USB_DEBUG(DEBOUNCE, "DEBOUNCE");
UHS_USB_DEBUG(DEBOUNCE_NOT_COMPLETE); UHS_USB_DEBUG(DEBOUNCE_NOT_COMPLETE, "DEBOUNCE_NOT_COMPLETE");
UHS_USB_DEBUG(WAIT_SOF); UHS_USB_DEBUG(WAIT_SOF, "WAIT_SOF");
UHS_USB_DEBUG(ERROR); UHS_USB_DEBUG(ERROR, "ERROR");
UHS_USB_DEBUG(CONFIGURING); UHS_USB_DEBUG(CONFIGURING, "CONFIGURING");
UHS_USB_DEBUG(CONFIGURING_DONE); UHS_USB_DEBUG(CONFIGURING_DONE, "CONFIGURING_DONE");
UHS_USB_DEBUG(RUNNING); UHS_USB_DEBUG(RUNNING, "RUNNING");
default: default:
SERIAL_ECHOLNPGM("UHS_USB_HOST_STATE: ", task_state); SERIAL_ECHOLNPGM("UHS_USB_HOST_STATE: ", task_state);
break; break;

Loading…
Cancel
Save