Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
cubexHal.pdf
Скачиваний:
110
Добавлен:
10.02.2016
Размер:
16.16 Mб
Скачать

UM1725

HAL PCD Generic Driver

40 HAL PCD Generic Driver

40.1PCD Firmware driver registers structures

40.1.1PCD_HandleTypeDef

Data Fields

PCD_TypeDef * Instance

PCD_InitTypeDef Init

PCD_EPTypeDef IN_ep

PCD_EPTypeDef OUT_ep

HAL_LockTypeDef Lock

__IO PCD_StateTypeDef State

uint32_t Setup

void * pData

Field Documentation

PCD_TypeDef* PCD_HandleTypeDef::Instance

Register base address

PCD_InitTypeDef PCD_HandleTypeDef::Init

PCD required parameters

PCD_EPTypeDef PCD_HandleTypeDef::IN_ep[15]

IN endpoint parameters

PCD_EPTypeDef PCD_HandleTypeDef::OUT_ep[15]

OUT endpoint parameters

HAL_LockTypeDef PCD_HandleTypeDef::Lock

PCD peripheral status

__IO PCD_StateTypeDef PCD_HandleTypeDef::State

PCD communication state

uint32_t PCD_HandleTypeDef::Setup[12]

Setup packet buffer

void* PCD_HandleTypeDef::pData

Pointer to upper stack Handler

40.2PCD Firmware driver API description

40.2.1How to use this driver

The PCD HAL driver can be used as follows:

1.Declare a PCD_HandleTypeDef handle structure, for example: PCD_HandleTypeDef hpcd;

2.Fill parameters of Init structure in HCD handle

3.Call HAL_PCD_Init() API to initialize the HCD peripheral (Core, Device core, ...)

4.Initialize the PCD low level resources through the HAL_PCD_MspInit() API: a. Enable the PCD/USB Low Level interface clock using

__OTGFS-OTG_CLK_ENABLE()/__OTGHS-OTG_CLK_ENABLE();

DOCID025834 Rev 2

501/900

HAL PCD Generic Driver

UM1725

__OTGHSULPI_CLK_ENABLE(); (For High Speed Mode)

b.Initialize the related GPIO clocks

c.Configure PCD pin-out

d.Configure PCD NVIC interrupt

5.Associate the Upper USB device stack to the HAL PCD Driver:

a.hpcd.pData = pdev;

6.Enable HCD transmission and reception:

a.HAL_PCD_Start();

40.2.2Initialization and de-initialization functions

This section provides functions allowing to:

This section contains the following APIs:

HAL_PCD_Init()

HAL_PCD_DeInit()

HAL_PCD_MspInit()

HAL_PCD_MspDeInit()

40.2.3IO operation functions

This subsection provides a set of functions allowing to manage the PCD data transfers. This section contains the following APIs:

HAL_PCD_Start()

HAL_PCD_Stop()

HAL_PCD_IRQHandler()

HAL_PCD_DataOutStageCallback()

HAL_PCD_DataInStageCallback()

HAL_PCD_SetupStageCallback()

HAL_PCD_SOFCallback()

HAL_PCD_ResetCallback()

HAL_PCD_SuspendCallback()

HAL_PCD_ResumeCallback()

HAL_PCD_ISOOUTIncompleteCallback()

HAL_PCD_ISOINIncompleteCallback()

HAL_PCD_ConnectCallback()

HAL_PCD_DisconnectCallback()

40.2.4Peripheral Control functions

This subsection provides a set of functions allowing to control the PCD data transfers. This section contains the following APIs:

HAL_PCD_DevConnect()

HAL_PCD_DevDisconnect()

HAL_PCD_SetAddress()

HAL_PCD_EP_Open()

HAL_PCD_EP_Close()

HAL_PCD_EP_Receive()

HAL_PCD_EP_GetRxCount()

HAL_PCD_EP_Transmit()

HAL_PCD_EP_SetStall()

HAL_PCD_EP_ClrStall()

HAL_PCD_EP_Flush()

502/900

DOCID025834 Rev 2

UM1725

HAL PCD Generic Driver

HAL_PCD_ActivateRemoteWakeup()

HAL_PCD_DeActivateRemoteWakeup()

40.2.5Peripheral State functions

This subsection permits to get in run-time the status of the peripheral and the data flow.

This section contains the following APIs:

HAL_PCD_GetState()

40.2.6HAL_PCD_Init

Function Name

HAL_StatusTypeDef HAL_PCD_Init (PCD_HandleTypeDef *

 

hpcd)

Function Description

Initializes the PCD according to the specified parameters in the

 

PCD_InitTypeDef and create the associated handle.

Parameters

 

hpcd: PCD handle

Return values

 

HAL status

40.2.7HAL_PCD_DeInit

Function Name

HAL_StatusTypeDef HAL_PCD_DeInit (PCD_HandleTypeDef *

 

hpcd)

Function Description

DeInitializes the PCD peripheral.

Parameters

 

hpcd: PCD handle

Return values

 

HAL status

40.2.8HAL_PCD_MspInit

Function Name

void HAL_PCD_MspInit (PCD_HandleTypeDef * hpcd)

Function Description

Initializes the PCD MSP.

Parameters

 

hpcd: PCD handle

Return values

 

None

40.2.9HAL_PCD_MspDeInit

Function Name

void HAL_PCD_MspDeInit (PCD_HandleTypeDef * hpcd)

Function Description

DeInitializes PCD MSP.

Parameters

 

hpcd: PCD handle

Return values

 

None

40.2.10 HAL_PCD_Start

Function Name

HAL_StatusTypeDef HAL_PCD_Start (PCD_HandleTypeDef *

 

hpcd)

 

Function Description

Start The USB OTG Device.

 

Parameters

hpcd: PCD handle

 

 

DOCID025834 Rev 2

503/900

HAL PCD Generic Driver

UM1725

Return values

HAL status

40.2.11 HAL_PCD_Stop

Function Name

HAL_StatusTypeDef HAL_PCD_Stop (PCD_HandleTypeDef *

 

hpcd)

Function Description

Stop The USB OTG Device.

Parameters

 

hpcd: PCD handle

Return values

 

HAL status

40.2.12HAL_PCD_IRQHandler

Function Name

void HAL_PCD_IRQHandler (PCD_HandleTypeDef * hpcd)

Function Description

This function handles PCD interrupt request.

Parameters

 

hpcd: PCD handle

Return values

 

HAL status

40.2.13HAL_PCD_DataOutStageCallback

Function Name

void HAL_PCD_DataOutStageCallback (PCD_HandleTypeDef *

 

hpcd, uint8_t epnum)

Function Description

Data OUT stage callbacks.

Parameters

 

hpcd: PCD handle

 

 

epnum: endpoint number

Return values

 

None

40.2.14HAL_PCD_DataInStageCallback

Function Name

void HAL_PCD_DataInStageCallback (PCD_HandleTypeDef *

 

hpcd, uint8_t epnum)

Function Description

Data IN stage callbacks.

Parameters

 

hpcd: PCD handle

 

 

epnum: endpoint number

Return values

 

None

40.2.15HAL_PCD_SetupStageCallback

Function Name

void HAL_PCD_SetupStageCallback (PCD_HandleTypeDef *

 

hpcd)

Function Description

Setup stage callback.

Parameters

 

hpcd: PCD handle

Return values

 

None

40.2.16HAL_PCD_SOFCallback

Function Name

void HAL_PCD_SOFCallback (PCD_HandleTypeDef * hpcd)

504/900

DOCID025834 Rev 2

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]