43.7. USB MSC U Disk

43.7.1. Overview

This example project shows access to a U disk (Attention: The Cluster Size of the USB disk can’t exceed 32KB, it is recommended that the format parameter is FAT32/32KB).

UDisk_Format
  • A usb host from MCU reads out all of folders and files in the root path of a U disk, and the test result of writing a test file will be output.

43.7.2. Board Setting

  • Connect a USB port on PC to the PWR DEBUG port on the development board with a USB Type-C cable

  • Connect a U disk to one of USB port on the development board with a USB Type-C to USB-A cable

43.7.3. Software Setting

  • In the CMakeLists.txt file, if sdk_compile_definitions(-DFATFS_ONLY_NONCACHEABLE_BUF=1) is commented, FATFS supports data transfer by using cacheable buffer. If sdk_compile_definitions(-DFATFS_ONLY_NONCACHEABLE_BUF=1) is uncommented, FATFS only supports data transfer by using noncacheable buffer.

  • When sdk_compile_definitions(-DFATFS_ONLY_NONCACHEABLE_BUF=1) is commented, it is recommended to align cache line size for the buffer address, otherwise it will affect transmission performance.

43.7.4. Project Configuration

  • File CMakeLists.txt

    When BOARD_TUH_RHPORT is defined as 0, it means to use USB0.

    When BOARD_TUH_RHPORT is defined as 1, it means to use USB1.

  • The property of USB host can be configured by “tusb_config.h” or “CMakeListx.txt”

43.7.5. Running the example

When the project runs correctly

  • View the U disk information and the result of writing a test file

    1646400992752.png