Harmony v3 Drivers and Middleware on PIC32MZ EF MCUs using FreeRTOS: Step 3

Last modified by Microchip on 2023/11/09 09:07

Configure USB High-Speed Driver

  • Under the Available Components tab, expand Harmony > Drivers.
  • Double-click on USB High Speed Driver to add the USB driver to the project.

Harmony > Drivers menu​​​​​

sys time activation​​​​​

USB driver project graph​​​​

  • Click on USB High Speed Driver to verify the default MPLAB® Harmony Configurator (MHC) values.

USB driver configuration options


  • Associate SYS_TIME system service with CORE TIMER peripheral by right-clicking on the red diamond highlighted in the accompanying image.

core timer instance​​​​

core timer linked project graph​​​​

  • Click on SYS_TIME to verify the default MHC values.

sys_time configuration​​

  • Click on CORE TIMER to verify the default MHC values.

core_timer configuration​​

Back to Top

Configure USB Host Middleware and File System Service

Under the Available Components tab, expand Harmony > System Services.

  • Double-click on FILE SYSTEM to add the File System Service to the project.

Harmony > System Services menu​​​

file system linked project graph​​

  • Associate the FILE SYSTEM Service with the Mass Storage Device (MSD) Client Driver by right-clicking on the red diamond highlighted in the accompanying image.

MSD driver instance​​​

USB host activation​​​

MSD driver project graph linked​​​

  • Click on File System, check the box next to Use File System Auto Mount Feature, and select SYS_FS_MEDIA_TYPE_MSD for Media Type.

file system configuration​​​

  • Click on MSD Client Driver to verify the default MHC values.

MSD client driver configuration​​​

  • Click on USB_HOST to verify the default MHC values.

USB host configuration​​​

Select the Clock Diagram tab and configure the USB clock setup.

  • Enable Primary Oscillator Mode (POSCMOD) as External Clock (EC) mode.

  • Setup Primary Oscillator clock speed as 12 MHz.
  • Select USB PLL Input Frequency Select bit (UPLLFSEL) as 12 MHz.

USB clock configuration set up​​​

Select the Pin Settings tab, scroll down to GPIO pin RJ13 (Pin Number 28) in the Pin ID column, and configure RJ13 as VBUS_AH to enable USB VBus.

USB vbus pin set up


VBUS needs to be enabled manually through a GPIO pin. The USB Host Application Programming Interface (API) periodically checks for VBUS status and VBUS is used to power any connected peripheral by supplying a +5 V voltage from the USB Host.

Back to Top