HAL HCD Overview

Introducing HCD

group HCD_Introduction

  • This introduction is under development.

Module and files

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

Module and files diagram

Component diagram

The following diagram illustrates the software components involved in the HCD 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 HCD Software Component Diagram



package "HAL" {

    [HAL_SERVICE]

    [HAL_HCD]

    [HAL_DMA]

}



package "Low Layer" {

    [usb_drd_core|usb_otg_core]

    [CMSIS]

    [HCD Interrupt routine service]

    [DMA Interrupt routine service]

}



package "HW" {

    [STM32_HW]

}



[Appli] --> [HAL_HCD] : HAL HCD API

[Appli] <-- [HAL_HCD] : HCD callback

[HAL_HCD] --> [usb_drd_core|usb_otg_core] : LL HCD API

[HAL_HCD] -r-> [HAL_DMA] : Configure DMA

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

[HAL_HCD] <-- [HCD Interrupt routine service]

[HAL_HCD] <-r- [HAL_DMA]:Half transfer complete\nTransfer complete\nError

[usb_drd_core|usb_otg_core] --> [CMSIS]:HCD register def

[HAL_DMA] <-d- [DMA Interrupt routine service]

[STM32_HW] -u--> [HCD Interrupt routine service]: HCDx Irq

[STM32_HW] -u--> [DMA Interrupt routine service] : DMA Channel Irq

[STM32_HW] <-u-- [usb_drd_core|usb_otg_core] : HCD registers R/W

@enduml