Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Archim2 USB Hang Fix #24314

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Marlin/Configuration_adv.h
Original file line number Diff line number Diff line change
Expand Up @@ -1585,6 +1585,8 @@
//#define USE_UHS2_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)
*/
Expand Down
9 changes: 7 additions & 2 deletions Marlin/src/pins/sam/pins_ARCHIM2.h
Original file line number Diff line number Diff line change
Expand Up @@ -245,8 +245,6 @@
#define LCD_PINS_D5 54 // D54 PA16_SCK1
#define LCD_PINS_D6 68 // D68 PA1_CANRX0
#define LCD_PINS_D7 34 // D34 PC2_PWML0

#define SD_DETECT_PIN 2 // D2 PB25_TIOA0
#endif

#if ANY(IS_ULTIPANEL, TOUCH_UI_ULTIPANEL, TOUCH_UI_FTDI_EVE)
Expand All @@ -255,3 +253,10 @@
#define BTN_EN2 13 // D13 PB27_TIOB0
#define BTN_ENC 16 // D16 PA13_TXD1 // the click
#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 changes: 11 additions & 11 deletions Marlin/src/sd/usb_flashdrive/Sd2Card_FlashDrive.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -159,18 +159,18 @@ void DiskIODriver_USBFlash::idle() {
static uint8_t laststate = 232;
if (task_state != laststate) {
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) {
UHS_USB_DEBUG(IDLE);
UHS_USB_DEBUG(RESET_DEVICE);
UHS_USB_DEBUG(RESET_NOT_COMPLETE);
UHS_USB_DEBUG(DEBOUNCE);
UHS_USB_DEBUG(DEBOUNCE_NOT_COMPLETE);
UHS_USB_DEBUG(WAIT_SOF);
UHS_USB_DEBUG(ERROR);
UHS_USB_DEBUG(CONFIGURING);
UHS_USB_DEBUG(CONFIGURING_DONE);
UHS_USB_DEBUG(RUNNING);
UHS_USB_DEBUG(IDLE, "IDLE");
UHS_USB_DEBUG(RESET_DEVICE, "RESET_DEVICE");
UHS_USB_DEBUG(RESET_NOT_COMPLETE, "RESET_NOT_COMPLETE");
UHS_USB_DEBUG(DEBOUNCE, "DEBOUNCE");
UHS_USB_DEBUG(DEBOUNCE_NOT_COMPLETE, "DEBOUNCE_NOT_COMPLETE");
UHS_USB_DEBUG(WAIT_SOF, "WAIT_SOF");
UHS_USB_DEBUG(ERROR, "ERROR");
UHS_USB_DEBUG(CONFIGURING, "CONFIGURING");
UHS_USB_DEBUG(CONFIGURING_DONE, "CONFIGURING_DONE");
UHS_USB_DEBUG(RUNNING, "RUNNING");
default:
SERIAL_ECHOLNPGM("UHS_USB_HOST_STATE: ", task_state);
break;
Expand Down