I would like you to develop a project for the STM32F407 using USB High Speed (USB HS) with an external ULPI Phy. I need 2 USB endpoints available, one supporting USB Mass Storage and one for HID. Both endpoints should be available at the same time.
The HID endpoint will be used for transferring data to and from the STM32 from a PC so the USB descriptor for this endpoint should allow a large packet of data to be transferred in each direction.
The USB Mass Storage will use a micro SD card via SDIO. This should be optimized to increase the speed of file transfers to the PC. I can currently get about 1.5 MB/s for file transfers but the micro sd cards and USB HS can support much faster data transfer so I would like to increase the performance to get the fastest transfers possible.
I would also like to have FatFS available so the STM32 can write files on the micro sd card. This will only be done when the Mass Storage Device is not connected to the PC.
The endpoints should be configurable so i can turn them on or off based on the state of the device.
The project should be written in Eclipse development environment and the code should be cleanly written. You will need to provide me with all source code and project files and any configuration information required so i can get the project working. You will need to purchase the waveshare development board so you can develop and debug the project.
Development Board: Waveshare Open407V [url removed, login to view]
[url removed, login to view]
Development Environment: Eclipse
STM32F407 (Open 407 development board)
Eclipse development Enviroment
USB HS via External ULPI Phy
2 USB Endpoints available at the same time and configurable so one or both can be turned off
- Mass Storage
HID used to transfer data to and from PC to STM32, large packet size in descriptor
Mass storage uses micro SD card via SDIO
FatFs available so files can be written to the micro SD card by the STM32F407
Optimize USB HS and Mass Storage to allow fastest file/data transfer
- Experience with STM32F407
- Experience with USB HS
- Experience with multiple USB Endpoints
- Experience with optimizing USB data transfer speed
- Experience with optimizing SDIO performance with micro SD cards.