HAL PCD Overview

Introducing PCD

group PCD_Introduction

  • This introduction is under development.

Module and files

The following diagram illustrates the PCD module and its associated files.

Module and files diagram

Component diagram

The following diagram illustrates the software components involved in the PCD module. It shows the interactions between the user application, HAL drivers, low-level drivers, and the hardware components.



@startuml

<style>

componentDiagram {

   arrow {

      FontSize 8

   }

}

</style>



title PCD Software Component Diagram

package "MW" {

    [USB_Device_MW]

}



package "HAL" {

    [HAL_SERVICE]

    [HAL_PCD]

}



package "Low Layer" {

    [usb_drd_core]

    [usb_otg_core]

    [CMSIS]

    [PCD OTG Interrupt routine service]

    [PCD DRD Interrupt routine service]



}



package "HW" {

    [STM32_HW]

}



[Appli] --> [HAL_PCD] : HAL PCD Init & Config

[Appli] --> [USB_Device_MW]: HAL PCD Start & Stop

[USB_Device_MW] --> [HAL_PCD]: HAL PCD Start & Stop

[USB_Device_MW] <-- [HAL_PCD] : PCD callback

[HAL_PCD] --> [usb_otg_core] : LL PCD API

[HAL_PCD] --> [usb_drd_core] : LL PCD API

[HAL_PCD] -l-> [HAL_SERVICE] : HAL_GetTick

[HAL_PCD] <-- [PCD OTG Interrupt routine service]

[HAL_PCD] <-- [PCD DRD Interrupt routine service]

[usb_otg_core] --> [CMSIS]:PCD register def

[usb_drd_core] --> [CMSIS]:PCD register def

[STM32_HW] -u--> [PCD OTG Interrupt routine service]: PCDx Irq

[STM32_HW] -u--> [PCD DRD Interrupt routine service]: PCDx Irq

[STM32_HW] <-u-- [usb_drd_core] : PCD registers R/W

[STM32_HW] <-u-- [usb_otg_core] : PCD registers R/W



@enduml