STM32F769IDiscovery  1.00
uDANTE Audio Networking with STM32F7 DISCO board
stm32f7xx_hal_pcd.h
Go to the documentation of this file.
1 
38 /* Define to prevent recursive inclusion -------------------------------------*/
39 #ifndef __STM32F7xx_HAL_PCD_H
40 #define __STM32F7xx_HAL_PCD_H
41 
42 #ifdef __cplusplus
43  extern "C" {
44 #endif
45 
46 /* Includes ------------------------------------------------------------------*/
47 #include "stm32f7xx_ll_usb.h"
48 
57 /* Exported types ------------------------------------------------------------*/
65 typedef enum
66 {
73 
74 /* Device LPM suspend state */
75 typedef enum
76 {
77  LPM_L0 = 0x00U, /* on */
78  LPM_L1 = 0x01U, /* LPM L1 sleep */
79  LPM_L2 = 0x02U, /* suspend */
80  LPM_L3 = 0x03U, /* off */
82 
86 
90 typedef struct
91 {
92  PCD_TypeDef *Instance;
93  PCD_InitTypeDef Init;
94  PCD_EPTypeDef IN_ep[15];
95  PCD_EPTypeDef OUT_ep[15];
97  __IO PCD_StateTypeDef State;
98  uint32_t Setup[12];
99  PCD_LPM_StateTypeDef LPM_State;
100  uint32_t BESL;
101  uint32_t lpm_active;
103  void *pData;
105 
110 /* Include PCD HAL Extension module */
111 #include "stm32f7xx_hal_pcd_ex.h"
112 
113 /* Exported constants --------------------------------------------------------*/
121 #define PCD_SPEED_HIGH 0U
122 #define PCD_SPEED_HIGH_IN_FULL 1U
123 #define PCD_SPEED_FULL 2U
124 
131 #define PCD_PHY_ULPI 1U
132 #define PCD_PHY_EMBEDDED 2U
133 
140 #ifndef USBD_HS_TRDT_VALUE
141  #define USBD_HS_TRDT_VALUE 9U
142 #endif /* USBD_HS_TRDT_VALUE */
143 #ifndef USBD_FS_TRDT_VALUE
144  #define USBD_FS_TRDT_VALUE 5U
145 #endif /* USBD_HS_TRDT_VALUE */
146 
155 /* Exported macros -----------------------------------------------------------*/
160 #define __HAL_PCD_ENABLE(__HANDLE__) USB_EnableGlobalInt ((__HANDLE__)->Instance)
161 #define __HAL_PCD_DISABLE(__HANDLE__) USB_DisableGlobalInt ((__HANDLE__)->Instance)
162 
163 #define __HAL_PCD_GET_FLAG(__HANDLE__, __INTERRUPT__) ((USB_ReadInterrupts((__HANDLE__)->Instance) & (__INTERRUPT__)) == (__INTERRUPT__))
164 #define __HAL_PCD_CLEAR_FLAG(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->GINTSTS) = (__INTERRUPT__))
165 #define __HAL_PCD_IS_INVALID_INTERRUPT(__HANDLE__) (USB_ReadInterrupts((__HANDLE__)->Instance) == 0)
166 
167 
168 #define __HAL_PCD_UNGATE_PHYCLOCK(__HANDLE__) *(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE) &= \
169  ~(USB_OTG_PCGCCTL_STOPCLK)
170 
171 #define __HAL_PCD_GATE_PHYCLOCK(__HANDLE__) *(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE) |= USB_OTG_PCGCCTL_STOPCLK
172 
173 #define __HAL_PCD_IS_PHY_SUSPENDED(__HANDLE__) ((*(__IO uint32_t *)((uint32_t)((__HANDLE__)->Instance) + USB_OTG_PCGCCTL_BASE))&0x10)
174 
175 #define USB_OTG_FS_WAKEUP_EXTI_RISING_EDGE ((uint32_t)0x08U)
176 #define USB_OTG_FS_WAKEUP_EXTI_FALLING_EDGE ((uint32_t)0x0CU)
177 #define USB_OTG_FS_WAKEUP_EXTI_RISING_FALLING_EDGE ((uint32_t)0x10U)
178 
179 #define USB_OTG_HS_WAKEUP_EXTI_RISING_EDGE ((uint32_t)0x08U)
180 #define USB_OTG_HS_WAKEUP_EXTI_FALLING_EDGE ((uint32_t)0x0CU)
181 #define USB_OTG_HS_WAKEUP_EXTI_RISING_FALLING_EDGE ((uint32_t)0x10U)
182 
183 #define USB_OTG_HS_WAKEUP_EXTI_LINE ((uint32_t)0x00100000U)
184 #define USB_OTG_FS_WAKEUP_EXTI_LINE ((uint32_t)0x00040000U)
186 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_IT() EXTI->IMR |= (USB_OTG_HS_WAKEUP_EXTI_LINE)
187 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_DISABLE_IT() EXTI->IMR &= ~(USB_OTG_HS_WAKEUP_EXTI_LINE)
188 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_GET_FLAG() EXTI->PR & (USB_OTG_HS_WAKEUP_EXTI_LINE)
189 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_CLEAR_FLAG() EXTI->PR = (USB_OTG_HS_WAKEUP_EXTI_LINE)
190 
191 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_RISING_EDGE() EXTI->FTSR &= ~(USB_OTG_HS_WAKEUP_EXTI_LINE);\
192  EXTI->RTSR |= USB_OTG_HS_WAKEUP_EXTI_LINE
193 
194 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_FALLING_EDGE() EXTI->FTSR |= (USB_OTG_HS_WAKEUP_EXTI_LINE);\
195  EXTI->RTSR &= ~(USB_OTG_HS_WAKEUP_EXTI_LINE)
196 
197 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_RISING_FALLING_EDGE() EXTI->RTSR &= ~(USB_OTG_HS_WAKEUP_EXTI_LINE);\
198  EXTI->FTSR &= ~(USB_OTG_HS_WAKEUP_EXTI_LINE;)\
199  EXTI->RTSR |= USB_OTG_HS_WAKEUP_EXTI_LINE;\
200  EXTI->FTSR |= USB_OTG_HS_WAKEUP_EXTI_LINE
201 
202 #define __HAL_USB_OTG_HS_WAKEUP_EXTI_GENERATE_SWIT() (EXTI->SWIER |= USB_OTG_FS_WAKEUP_EXTI_LINE)
203 
204 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_IT() EXTI->IMR |= USB_OTG_FS_WAKEUP_EXTI_LINE
205 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_DISABLE_IT() EXTI->IMR &= ~(USB_OTG_FS_WAKEUP_EXTI_LINE)
206 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_GET_FLAG() EXTI->PR & (USB_OTG_FS_WAKEUP_EXTI_LINE)
207 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_CLEAR_FLAG() EXTI->PR = USB_OTG_FS_WAKEUP_EXTI_LINE
208 
209 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_RISING_EDGE() EXTI->FTSR &= ~(USB_OTG_FS_WAKEUP_EXTI_LINE);\
210  EXTI->RTSR |= USB_OTG_FS_WAKEUP_EXTI_LINE
211 
212 
213 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_FALLING_EDGE() EXTI->FTSR |= (USB_OTG_FS_WAKEUP_EXTI_LINE);\
214  EXTI->RTSR &= ~(USB_OTG_FS_WAKEUP_EXTI_LINE)
215 
216 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_ENABLE_RISING_FALLING_EDGE() EXTI->RTSR &= ~(USB_OTG_FS_WAKEUP_EXTI_LINE);\
217  EXTI->FTSR &= ~(USB_OTG_FS_WAKEUP_EXTI_LINE);\
218  EXTI->RTSR |= USB_OTG_FS_WAKEUP_EXTI_LINE;\
219  EXTI->FTSR |= USB_OTG_FS_WAKEUP_EXTI_LINE
220 
221 #define __HAL_USB_OTG_FS_WAKEUP_EXTI_GENERATE_SWIT() (EXTI->SWIER |= USB_OTG_FS_WAKEUP_EXTI_LINE)
222 
226 /* Exported functions --------------------------------------------------------*/
231 /* Initialization/de-initialization functions ********************************/
243 /* I/O operation functions ***************************************************/
244 /* Non-Blocking mode: Interrupt */
251 
267 /* Peripheral Control functions **********************************************/
274 HAL_StatusTypeDef HAL_PCD_EP_Open(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint16_t ep_mps, uint8_t ep_type);
276 HAL_StatusTypeDef HAL_PCD_EP_Receive(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint32_t len);
277 HAL_StatusTypeDef HAL_PCD_EP_Transmit(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint32_t len);
278 uint16_t HAL_PCD_EP_GetRxCount(PCD_HandleTypeDef *hpcd, uint8_t ep_addr);
288 /* Peripheral State functions ************************************************/
292 PCD_StateTypeDef HAL_PCD_GetState(PCD_HandleTypeDef *hpcd);
301 /* Private macros ------------------------------------------------------------*/
308 #define IS_PCD_ALL_INSTANCE(INSTANCE) (((INSTANCE) == USB_OTG_FS) || \
309  ((INSTANCE) == USB_OTG_HS))
310 
326 #ifdef __cplusplus
327 }
328 #endif
329 
330 
331 #endif /* __STM32F7xx_HAL_PCD_H */
332 
333 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
PCD_StateTypeDef
PCD State structure definition.
PCD Initialization Structure definition.
HAL_StatusTypeDef HAL_PCD_Stop(PCD_HandleTypeDef *hpcd)
void HAL_PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum)
ISOINIncomplete callback.
Definition: usbd_conf.c:328
HAL_StatusTypeDef HAL_PCD_SetAddress(PCD_HandleTypeDef *hpcd, uint8_t address)
HAL_StatusTypeDef HAL_PCD_EP_Transmit(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint32_t len)
HAL_StatusTypeDef HAL_PCD_Start(PCD_HandleTypeDef *hpcd)
HAL_StatusTypeDef HAL_PCD_EP_Receive(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint32_t len)
HAL_StatusTypeDef HAL_PCD_Init(PCD_HandleTypeDef *hpcd)
HAL_StatusTypeDef HAL_PCD_DevConnect(PCD_HandleTypeDef *hpcd)
HAL_StatusTypeDef HAL_PCD_EP_SetStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr)
HAL_StatusTypeDef HAL_PCD_EP_Close(PCD_HandleTypeDef *hpcd, uint8_t ep_addr)
void HAL_PCD_ResumeCallback(PCD_HandleTypeDef *hpcd)
Resume callback.
Definition: usbd_conf.c:306
HAL_StatusTypeDef HAL_PCD_EP_ClrStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr)
void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd)
Suspend callback.
Definition: usbd_conf.c:296
HAL_LockTypeDef
HAL Lock structures definition.
HAL_StatusTypeDef HAL_PCD_DevDisconnect(PCD_HandleTypeDef *hpcd)
void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd)
Disconnect callback.
Definition: usbd_conf.c:348
void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd)
HAL_StatusTypeDef HAL_PCD_DeInit(PCD_HandleTypeDef *hpcd)
PCD_TypeDef * Instance
PCD_LPM_StateTypeDef
void HAL_PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum)
DataOut Stage callback.
Definition: usbd_conf.c:234
void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd)
SOF callback.
Definition: usbd_conf.c:255
USB_OTG_Core_Registers.
Definition: stm32f745xx.h:974
HAL_LockTypeDef Lock
USB_OTG_CfgTypeDef PCD_InitTypeDef
#define __IO
Definition: core_cm0.h:213
USB_OTG_GlobalTypeDef PCD_TypeDef
void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum)
DataIn Stage callback.
Definition: usbd_conf.c:245
HAL_StatusTypeDef HAL_PCD_EP_Flush(PCD_HandleTypeDef *hpcd, uint8_t ep_addr)
uint16_t HAL_PCD_EP_GetRxCount(PCD_HandleTypeDef *hpcd, uint8_t ep_addr)
HAL_StatusTypeDef HAL_PCD_EP_Open(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint16_t ep_mps, uint8_t ep_type)
PCD_LPM_StateTypeDef LPM_State
Header file of PCD HAL module.
void HAL_PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd)
SetupStage callback.
Definition: usbd_conf.c:223
PCD Handle Structure definition.
void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd)
Reset callback.
Definition: usbd_conf.c:265
Header file of USB Core HAL module.
void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd)
ConnectCallback callback.
Definition: usbd_conf.c:338
void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd)
Initializes the PCD MSP.
Definition: usbd_conf.c:69
void HAL_PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum)
ISOOUTIncomplete callback.
Definition: usbd_conf.c:317
PCD_HandleTypeDef hpcd
Definition: usbd_conf.c:55
__IO PCD_StateTypeDef State
HAL_StatusTypeDef HAL_PCD_ActivateRemoteWakeup(PCD_HandleTypeDef *hpcd)
void HAL_PCD_MspDeInit(PCD_HandleTypeDef *hpcd)
De-Initializes the PCD MSP.
Definition: usbd_conf.c:198
PCD_StateTypeDef HAL_PCD_GetState(PCD_HandleTypeDef *hpcd)
PCD_InitTypeDef Init
HAL_StatusTypeDef
HAL Status structures definition.
HAL_StatusTypeDef HAL_PCD_DeActivateRemoteWakeup(PCD_HandleTypeDef *hpcd)
USB_OTG_EPTypeDef PCD_EPTypeDef