87 #ifdef HAL_PCD_MODULE_ENABLED 96 #define PCD_MIN(a, b) (((a) < (b)) ? (a) : (b)) 97 #define PCD_MAX(a, b) (((a) > (b)) ? (a) : (b)) 163 for (i = 0; i < 15 ; i++)
176 for (i = 0; i < 15 ; i++)
319 uint32_t i = 0, ep_intr = 0, epint = 0, epnum = 0;
320 uint32_t fifoemptymsk = 0, temp = 0;
322 uint32_t hclk = 200000000;
416 fifoemptymsk = 0x1 << epnum;
456 PCD_WriteEmptyTxFifo(hpcd , epnum);
568 if((hclk >= 14200000)&&(hclk < 15000000))
574 else if((hclk >= 15000000)&&(hclk < 16000000))
580 else if((hclk >= 16000000)&&(hclk < 17200000))
586 else if((hclk >= 17200000)&&(hclk < 18500000))
592 else if((hclk >= 18500000)&&(hclk < 20000000))
598 else if((hclk >= 20000000)&&(hclk < 21800000))
604 else if((hclk >= 21800000)&&(hclk < 24000000))
610 else if((hclk >= 24000000)&&(hclk < 27700000))
616 else if((hclk >= 27700000)&&(hclk < 32000000))
650 else if (((temp & USB_OTG_GRXSTSP_PKTSTS) >> 17) ==
STS_SETUP_UPDT)
939 if ((ep_addr & 0x80) == 0x80)
941 ep = &hpcd->
IN_ep[ep_addr & 0x7F];
945 ep = &hpcd->
OUT_ep[ep_addr & 0x7F];
947 ep->
num = ep_addr & 0x7F;
949 ep->
is_in = (0x80 & ep_addr) != 0;
980 if ((ep_addr & 0x80) == 0x80)
982 ep = &hpcd->
IN_ep[ep_addr & 0x7F];
986 ep = &hpcd->
OUT_ep[ep_addr & 0x7F];
988 ep->
num = ep_addr & 0x7F;
990 ep->
is_in = (0x80 & ep_addr) != 0;
1011 ep = &hpcd->
OUT_ep[ep_addr & 0x7F];
1018 ep->
num = ep_addr & 0x7F;
1027 if ((ep_addr & 0x7F) == 0 )
1062 ep = &hpcd->
IN_ep[ep_addr & 0x7F];
1069 ep->
num = ep_addr & 0x7F;
1078 if ((ep_addr & 0x7F) == 0 )
1102 if ((0x80 & ep_addr) == 0x80)
1104 ep = &hpcd->
IN_ep[ep_addr & 0x7F];
1108 ep = &hpcd->
OUT_ep[ep_addr];
1112 ep->
num = ep_addr & 0x7F;
1113 ep->
is_in = ((ep_addr & 0x80) == 0x80);
1118 if((ep_addr & 0x7F) == 0)
1137 if ((0x80 & ep_addr) == 0x80)
1139 ep = &hpcd->
IN_ep[ep_addr & 0x7F];
1143 ep = &hpcd->
OUT_ep[ep_addr];
1147 ep->
num = ep_addr & 0x7F;
1148 ep->
is_in = ((ep_addr & 0x80) == 0x80);
1167 if ((ep_addr & 0x80) == 0x80)
1264 uint32_t fifoemptymsk = 0;
1266 ep = &hpcd->
IN_ep[epnum];
1275 len32b = (len + 3) / 4;
1288 len32b = (len + 3) / 4;
1298 fifoemptymsk = 0x1 << epnum;
HAL_StatusTypeDef USB_FlushTxFifo(USB_OTG_GlobalTypeDef *USBx, uint32_t num)
HAL_StatusTypeDef USB_DevInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef Init)
#define USB_OTG_GINTSTS_OTGINT
__IO uint32_t DIEPTXF[0x0F]
#define USB_OTG_DCTL_RWUSIG
#define USB_OTG_DOEPINT_XFRC
#define USB_OTG_DIEPMSK_TOM
#define USB_OTG_FS_MAX_PACKET_SIZE
#define USB_OTG_GINTSTS_RXFLVL
#define USB_OTG_GINTSTS_IISOIXFR
PCD_StateTypeDef
PCD State structure definition.
uint32_t USB_ReadDevInEPInterrupt(USB_OTG_GlobalTypeDef *USBx, uint8_t epnum)
#define USB_OTG_GINTSTS_USBSUSP
HAL_StatusTypeDef HAL_PCD_Stop(PCD_HandleTypeDef *hpcd)
void HAL_PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum)
ISOINIncomplete callback.
#define assert_param(expr)
Include module's header file.
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)
#define USB_OTG_SPEED_HIGH
HAL_StatusTypeDef HAL_PCD_Start(PCD_HandleTypeDef *hpcd)
HAL_StatusTypeDef HAL_PCDEx_ActivateLPM(PCD_HandleTypeDef *hpcd)
#define USB_OTG_GINTSTS_LPMINT
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)
#define USB_OTG_GINTSTS_MMIS
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.
#define __HAL_PCD_DISABLE(__HANDLE__)
HAL_StatusTypeDef USB_DeactivateEndpoint(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep)
#define __HAL_UNLOCK(__HANDLE__)
#define USB_OTG_GLPMCFG_BESL
HAL_StatusTypeDef HAL_PCD_EP_ClrStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr)
void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd)
Suspend callback.
HAL_StatusTypeDef USB_ActivateEndpoint(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep)
#define CLEAR_IN_EP_INTR(__EPNUM__, __INTERRUPT__)
HAL_StatusTypeDef HAL_PCD_DevDisconnect(PCD_HandleTypeDef *hpcd)
HAL_StatusTypeDef USB_SetCurrentMode(USB_OTG_GlobalTypeDef *USBx, USB_OTG_ModeTypeDef mode)
#define USBD_HS_TRDT_VALUE
#define __HAL_PCD_ENABLE(__HANDLE__)
uint32_t use_dedicated_ep1
HAL_StatusTypeDef USB_EP0_OutStart(USB_OTG_GlobalTypeDef *USBx, uint8_t dma, uint8_t *psetup)
#define USB_OTG_DIEPMSK_EPDM
#define USB_OTG_DIEPINT_EPDISD
void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd)
Disconnect callback.
#define USB_OTG_DOEPTSIZ_XFRSIZ
void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd)
HAL_StatusTypeDef HAL_PCD_DeInit(PCD_HandleTypeDef *hpcd)
#define USB_OTG_DIEPINT_TXFE
#define USB_OTG_GRXSTSP_PKTSTS
void HAL_PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum)
DataOut Stage callback.
HAL_StatusTypeDef USB_DevDisconnect(USB_OTG_GlobalTypeDef *USBx)
HAL_StatusTypeDef USB_EPSetStall(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep)
#define USB_OTG_GUSBCFG_TRDT
#define USB_OTG_GINTSTS_SOF
#define USB_OTG_DIEPINT_XFRC
#define USB_OTG_DOEPMSK_OTEPSPRM
void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd)
SOF callback.
#define __HAL_PCD_IS_INVALID_INTERRUPT(__HANDLE__)
HAL_StatusTypeDef USB_EPStartXfer(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep, uint8_t dma)
#define IS_PCD_ALL_INSTANCE(INSTANCE)
uint32_t USB_ReadDevAllInEpInterrupt(USB_OTG_GlobalTypeDef *USBx)
#define USB_OTG_DOEPINT_OTEPDIS
#define __HAL_LOCK(__HANDLE__)
#define USB_OTG_GINTSTS_USBRST
HAL_StatusTypeDef USB_ActivateSetup(USB_OTG_GlobalTypeDef *USBx)
HAL_StatusTypeDef USB_EP0StartXfer(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep, uint8_t dma)
#define USB_OTG_GRXSTSP_BCNT
HAL_StatusTypeDef USB_StopDevice(USB_OTG_GlobalTypeDef *USBx)
void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum)
DataIn Stage callback.
HAL_StatusTypeDef HAL_PCD_EP_Flush(PCD_HandleTypeDef *hpcd, uint8_t ep_addr)
uint8_t USB_GetDevSpeed(USB_OTG_GlobalTypeDef *USBx)
uint16_t HAL_PCD_EP_GetRxCount(PCD_HandleTypeDef *hpcd, uint8_t ep_addr)
This file contains all the functions prototypes for the HAL module driver.
#define __HAL_PCD_GET_FLAG(__HANDLE__, __INTERRUPT__)
HAL_StatusTypeDef USB_DevConnect(USB_OTG_GlobalTypeDef *USBx)
HAL_StatusTypeDef HAL_PCD_EP_Open(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint16_t ep_mps, uint8_t ep_type)
#define USB_OTG_SPEED_FULL
#define USB_OTG_GINTSTS_SRQINT
#define USB_OTG_GINTSTS_PXFR_INCOMPISOOUT
PCD_LPM_StateTypeDef LPM_State
#define USB_UNMASK_INTERRUPT(__INSTANCE__, __INTERRUPT__)
void HAL_PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd)
SetupStage callback.
PCD Handle Structure definition.
HAL_StatusTypeDef USB_WritePacket(USB_OTG_GlobalTypeDef *USBx, uint8_t *src, uint8_t ch_ep_num, uint16_t len, uint8_t dma)
uint32_t USB_ReadDevAllOutEpInterrupt(USB_OTG_GlobalTypeDef *USBx)
#define USB_OTG_GINTSTS_WKUINT
uint32_t HAL_RCC_GetHCLKFreq(void)
#define USB_OTG_GINTSTS_IEPINT
#define CLEAR_OUT_EP_INTR(__EPNUM__, __INTERRUPT__)
void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd)
Reset callback.
#define USB_OTG_MODE_DEVICE
#define USB_OTG_DOEPINT_STUP
#define USB_OTG_DIEPINT_INEPNE
#define USB_OTG_DIEPINT_TOC
void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd)
ConnectCallback callback.
HAL_StatusTypeDef USB_EPClearStall(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep)
#define __HAL_PCD_CLEAR_FLAG(__HANDLE__, __INTERRUPT__)
#define USB_OTG_DSTS_SUSPSTS
#define USB_OTG_GOTGINT_SEDET
void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd)
Initializes the PCD MSP.
void HAL_PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum)
ISOOUTIncomplete callback.
#define USB_OTG_GRXSTSP_EPNUM
__IO PCD_StateTypeDef State
void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg)
#define USB_OTG_DOEPMSK_XFRCM
HAL_StatusTypeDef HAL_PCD_ActivateRemoteWakeup(PCD_HandleTypeDef *hpcd)
void HAL_PCD_MspDeInit(PCD_HandleTypeDef *hpcd)
De-Initializes the PCD MSP.
PCD_StateTypeDef HAL_PCD_GetState(PCD_HandleTypeDef *hpcd)
#define USB_OTG_DOEPMSK_EPDM
uint32_t USB_ReadDevOutEPInterrupt(USB_OTG_GlobalTypeDef *USBx, uint8_t epnum)
HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef Init)
HAL_StatusTypeDef
HAL Status structures definition.
#define USB_OTG_DOEPMSK_STUPM
#define USB_OTG_DIEPINT_ITTXFE
#define USB_OTG_DOEPINT_OTEPSPR
void * USB_ReadPacket(USB_OTG_GlobalTypeDef *USBx, uint8_t *dest, uint16_t len)
HAL_StatusTypeDef HAL_PCD_DeActivateRemoteWakeup(PCD_HandleTypeDef *hpcd)
#define USB_OTG_GINTSTS_OEPINT
#define USB_OTG_DIEPMSK_XFRCM
HAL_StatusTypeDef USB_FlushRxFifo(USB_OTG_GlobalTypeDef *USBx)
#define USB_MASK_INTERRUPT(__INSTANCE__, __INTERRUPT__)
#define USB_OTG_GINTSTS_ENUMDNE
#define USB_OTG_DTXFSTS_INEPTFSAV
HAL_StatusTypeDef USB_SetDevAddress(USB_OTG_GlobalTypeDef *USBx, uint8_t address)
uint32_t USB_GetMode(USB_OTG_GlobalTypeDef *USBx)
#define USB_OTG_HS_MAX_PACKET_SIZE