This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Usb Hosting Error on STM32F429

Hello Everyone,
I'm following these steps ( www2.keil.com/.../ ) in order to understand USB Hosting and create my own application. Unfortunately i encountered a problem. I arrived at Step 3 and i added the Host support correctly but i can't access the usb stick. When i debug the USBH_MSC_DriveMount function , i found that wether the actual usb stick is connected or not , the finit function returns fsDriverError. I checked on Documentation and found out that it means it failed to initialize the drive but i couldn't find a way how to fix it or what it actually means.
I'll be glad if you could help me solve my problem and thank you .

I'm using STM32F429

Parents
  • Hello again,
    I Rechecked the Over Current Pin and the Power On/Off , they are both assigned correctly. If there's another group of pins that i have to check please let me know.

    This is my code

     void Thread (void const *argument)
             { static int result;
                     static FILE *f;
                     stats = USBH_Initialize (0);
                     while (1) {
                             result = USBH_MSC_DriveMount ("U0:");
             if (result == USBH_MSC_OK)
             { f = fopen ("Test.txt", "r");
             if (f) { fread (fbuf, sizeof (fbuf), 1, f);
             fclose (f);
             } }
             osDelay (1000);
             } }
    
    

    The USBH_Initialize (0) returns usbOk
    The USBH_MSC_DriveMount ("U0:") returns -1 (USBH_MSC_ERROR)
    Debugging the USBH_MSC_DriveMount ("U0:") shows that the finit function shows that it returns fsDriverError

    I didn't find a way to access the finit function but
    I checked the returns on both ARM_USBH_Initialize and ARM_USBH_PowerControl by checking register value at the end of the function. Both functions return ARM_DRIVER_OK.

    I hope this gives you a better idea on what the problem is and thank you for your time

Reply
  • Hello again,
    I Rechecked the Over Current Pin and the Power On/Off , they are both assigned correctly. If there's another group of pins that i have to check please let me know.

    This is my code

     void Thread (void const *argument)
             { static int result;
                     static FILE *f;
                     stats = USBH_Initialize (0);
                     while (1) {
                             result = USBH_MSC_DriveMount ("U0:");
             if (result == USBH_MSC_OK)
             { f = fopen ("Test.txt", "r");
             if (f) { fread (fbuf, sizeof (fbuf), 1, f);
             fclose (f);
             } }
             osDelay (1000);
             } }
    
    

    The USBH_Initialize (0) returns usbOk
    The USBH_MSC_DriveMount ("U0:") returns -1 (USBH_MSC_ERROR)
    Debugging the USBH_MSC_DriveMount ("U0:") shows that the finit function shows that it returns fsDriverError

    I didn't find a way to access the finit function but
    I checked the returns on both ARM_USBH_Initialize and ARM_USBH_PowerControl by checking register value at the end of the function. Both functions return ARM_DRIVER_OK.

    I hope this gives you a better idea on what the problem is and thank you for your time

Children