AnsweredAssumed Answered

MSC BOT state machine problem

Question asked by ntavish on Nov 5, 2012
Latest reply on Aug 6, 2014 by calasans.filipe
Hi, I have been using the the MSD class driver for usb host on an STM32f4 board. The host seems to work fine for some time, but after say 200 read/write ops it gets stuck at:

void USBH_Process(..................)
......
      case HOST_CLASS:  
    /* process class state machine */
    status = phost->class_cb->Machine(pdev, phost);
.......
static USBH_Status USBH_MSC_Handle(...........)
         case USBH_MSC_BOT_USB_TRANSFERS:  <- stuck here
      /* Process the BOT state machine */
      USBH_MSC_HandleBOTXfer(pdev , phost);
..........
void USBH_MSC_HandleBOTXfer (.................)
           switch (USBH_MSC_BOTXferParam.BOTState)
           {
                   ....
                   case USBH_MSC_BOT_DATAIN_STATE:      <-stuck here

I tried a few ways to manually rest this state but i was unable to figure out how, it would either keep on enumerating or something like that. How do I reset the state so it isnt stuck here? I can remove and put on power to the usb host port but I would keep that as a last resort.

Outcomes