cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F429IDiscovery USB device MSC device descriptor request failed (Windows error code 43)

Alex Amaral
Associate II
Posted on January 08, 2017 at 20:10

Hi all, I imported the basic USB device MSC project from version 4.18.0 of CubeMX and plan to interface this with an old IDE hard drive to make a USB drive reader. But with the device callbacks themselves still empty just to test the USB side I connected the board's user USB port and found that it's not enumerating properly with windows. Does anyone know what I have to edit from the basic template because most of the files are read-only and the Cube documentation for this middleware doesn't mention having to implement anything other than the storage itself.

I used the boards on-board 8 MHz clock to get the necessary 48 MHz for the USB with PLL settings /M=4, *N=120, /P=2 and /Q=5. I've increased my heap size in the STM32F429ZITx_FLASH.ld to 0x2710 as was suggested on another forum I saw. Other than this the code is straight from the Cube generated template so perhaps I've misunderstood something in the usbd_conf.c or usbd_desc.c files that were generated, as near as I can tell they seem complete so is there something I need to add to them in order to get the USB working?

Thanks in advance,

Alex.

#usb #stm32f4-cube #msc #stm32429i-eval-board
2 REPLIES 2
Imen.D
ST Employee
Posted on January 10, 2017 at 15:49

Hello,

Maybe you should check your hardware configuration following the datasheet related to your 

board to identify the assignments for each pin and 

check if you have

wired D+ and D- correctly.

In the USB MSC project within STM32F4 firmware package, 

you should followed the instructions in the 

readme file describing how to test the example and 

make the Hardware connection.

For more details about the STM32Cube USB Host library, please refer to

http://www.st.com/content/ccc/resource/technical/document/user_manual/b8/5a/28/c2/cf/b6/47/d6/DM00105256.pdf/files/DM00105256.pdf/jcr:content/translations/en.DM00105256.pdf

'STM32Cube USB Host library'.

Hope this helps you.

Best Regards

Imen

When your question is answered, please close this topic by clicking "Accept as Solution".
Thanks
Imen
Posted on January 10, 2017 at 23:24

I appreciate your reply but I am using the STM32F429IDiscovery board and I've configured it with Cube so there's no manual hardware configuration really to speak of, also there is no USB device MSC example in the 

STM32F4 firmware package for this specific chip so I don't believe I'd be able to use those hardware configurations. The device is recognised as a USB device by the PC but sends an error to the PC during the enumeration and descriptor stage so I doubt there's an issue with the signals, more likely either an error in the descriptors being generated by Cube or some incomplete code that the user is expected to produce, which is fine except that the documentation for the 'STM32Cube USB Device Library' doesn't mention what needs to be implemented by the user at this stage. In fact the documentation makes almost no mention of the 

usbd_desc.c file generated by Cube at all, this led me to believe that it was generated in it's complete state without the need for further editing but perhaps I am mistaken?

After some debugging it seems that the program is hanging in the MX_USB_DEVICE_Init() function in usbd_device.c and this is why the enumeration process never completes. I would just like to know if this is user error on my part and I've left something out or if the package is supposed to function without editing in this section.

Regards

Alex