65 #if defined (HAL_PCD_MODULE_ENABLED) || defined (HAL_HCD_MODULE_ENABLED) 341 if (++count > 200000)
365 if (++count > 200000)
462 static __IO uint32_t debug = 0;
766 uint32_t count32b= 0 , i= 0;
770 count32b = (len + 3) / 4;
771 for (i = 0; i < count32b; i++, src += 4)
773 USBx_DFIFO(ch_ep_num) = *((__packed uint32_t *)src);
795 uint32_t count32b = (len + 3) / 4;
797 for ( i = 0; i < count32b; i++, dest += 4 )
802 return ((
void *)dest);
870 for (i = 0; i < 15 ; i++)
954 return ((v & 0xffff0000) >> 16);
967 return ((v & 0xFFFF));
994 uint32_t v, msk, emp;
998 msk |= ((emp >> epnum) & 0x1) << 7;
1024 return ((USBx->
GINTSTS ) & 0x1);
1088 if (++count > 200000)
1101 if (++count > 200000)
1148 USBx_HC(i)->HCINT = 0xFFFFFFFF;
1166 USBx->
GRXFSIZ = (uint32_t )0x80;
1173 USBx->
GRXFSIZ = (uint32_t )0x200;
1227 __IO uint32_t hprt0;
1250 __IO uint32_t hprt0;
1278 __IO uint32_t hprt0;
1321 uint8_t dev_address,
1328 USBx_HC(ch_num)->HCINT = 0xFFFFFFFF;
1337 USB_OTG_HCINTMSK_STALLM |\
1338 USB_OTG_HCINTMSK_TXERRM |\
1339 USB_OTG_HCINTMSK_DTERRM |\
1340 USB_OTG_HCINTMSK_AHBERR |\
1341 USB_OTG_HCINTMSK_NAKM ;
1359 USB_OTG_HCINTMSK_STALLM |\
1360 USB_OTG_HCINTMSK_TXERRM |\
1361 USB_OTG_HCINTMSK_DTERRM |\
1362 USB_OTG_HCINTMSK_NAKM |\
1363 USB_OTG_HCINTMSK_AHBERR |\
1364 USB_OTG_HCINTMSK_FRMORM ;
1375 USB_OTG_HCINTMSK_ACKM |\
1376 USB_OTG_HCINTMSK_AHBERR |\
1377 USB_OTG_HCINTMSK_FRMORM ;
1418 #if defined (__CC_ARM) 1420 #elif defined (__GNUC__) 1421 #pragma GCC optimize ("O0") 1425 uint8_t is_oddframe = 0;
1426 uint16_t len_words = 0;
1427 uint16_t num_packets = 0;
1428 uint16_t max_hc_pkt_count = 256;
1429 uint32_t tmpreg = 0;
1433 if((dma == 0) && (hc->
do_ping == 1))
1450 if (num_packets > max_hc_pkt_count)
1452 num_packets = max_hc_pkt_count;
1476 is_oddframe = (
USBx_HOST->HFNUM & 0x01) ? 0 : 1;
1496 len_words = (hc->
xfer_len + 3) / 4;
1499 if(len_words > (USBx->
HNPTXSTS & 0xFFFF))
1508 len_words = (hc->
xfer_len + 3) / 4;
1510 if(len_words > (
USBx_HOST->HPTXSTS & 0xFFFF))
1555 if ((USBx->
HNPTXSTS & 0xFFFF) == 0)
1610 uint8_t num_packets = 1;
1611 uint32_t tmpreg = 0;
1614 USB_OTG_HCTSIZ_DOPING;
1617 tmpreg =
USBx_HC(ch_num)->HCCHAR;
1620 USBx_HC(ch_num)->HCCHAR = tmpreg;
1643 for (i = 0; i <= 15; i++)
1654 for (i = 0; i <= 15; i++)
#define USB_OTG_GRSTCTL_RXFFLSH
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_DAINTMSK_IEPM
#define USB_OTG_DOEPCTL_USBAEP
#define USB_OTG_HCINTMSK_XFRCM
HAL_StatusTypeDef USB_DisableGlobalInt(USB_OTG_GlobalTypeDef *USBx)
uint32_t USB_ReadDevInEPInterrupt(USB_OTG_GlobalTypeDef *USBx, uint8_t epnum)
PCD Initialization Structure definition.
uint32_t USB_GetHostSpeed(USB_OTG_GlobalTypeDef *USBx)
#define USB_OTG_GRSTCTL_TXFFLSH
#define USB_OTG_HCFG_FSLSPCS
void HAL_Delay(__IO uint32_t Delay)
This function provides accurate delay (in milliseconds) based on variable incremented.
#define USB_OTG_DSTS_ENUMSPD
#define USB_OTG_SPEED_HIGH
#define USB_OTG_DIEPTSIZ_XFRSIZ
#define USB_OTG_GUSBCFG_FDMOD
#define USB_OTG_OUT_ENDPOINT_BASE
uint32_t USB_HC_ReadInterrupt(USB_OTG_GlobalTypeDef *USBx)
#define DCFG_FRAME_INTERVAL_80
#define USB_OTG_DOEPCTL_STALL
#define USB_OTG_HCINTMSK_NYET
HAL_StatusTypeDef USB_HC_Init(USB_OTG_GlobalTypeDef *USBx, uint8_t ch_num, uint8_t epnum, uint8_t dev_address, uint8_t speed, uint8_t ep_type, uint16_t mps)
#define USB_OTG_DOEPCTL_EPENA
#define USB_OTG_HCCHAR_EPNUM
HAL_StatusTypeDef USB_DeactivateEndpoint(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep)
#define USB_OTG_GOTGCTL_BVALOVAL
#define USB_OTG_HPRT_PRST
HAL_StatusTypeDef USB_SetDevSpeed(USB_OTG_GlobalTypeDef *USBx, uint8_t speed)
#define USB_OTG_GINTMSK_USBSUSPM
HAL_StatusTypeDef USB_ActivateEndpoint(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep)
#define USB_OTG_DIEPCTL_EPDIS
#define USB_OTG_DOEPCTL_SD0PID_SEVNFRM
#define USB_OTG_DTHRCTL_ISOTHREN
#define USB_OTG_GUSBCFG_ULPIFSLS
HAL_StatusTypeDef USB_SetCurrentMode(USB_OTG_GlobalTypeDef *USBx, USB_OTG_ModeTypeDef mode)
#define USB_OTG_HPRT_POCCHNG
#define USB_OTG_DTHRCTL_RXTHRLEN_6
#define USB_OTG_HCINTMSK_BBERRM
#define USB_OTG_GINTMSK_NPTXFEM
#define USB_OTG_DCTL_SDIS
HAL_StatusTypeDef USB_EP0_OutStart(USB_OTG_GlobalTypeDef *USBx, uint8_t dma, uint8_t *psetup)
#define USB_OTG_HCTSIZ_PKTCNT
#define USB_OTG_GRSTCTL_CSRST
#define USB_OTG_DOEPTSIZ_XFRSIZ
#define USB_OTG_DTHRCTL_TXTHRLEN_6
#define USB_OTG_GINTSTS_DISCINT
#define USB_OTG_HCTSIZ_XFRSIZ
#define USB_OTG_GUSBCFG_TSDPS
HAL_StatusTypeDef USB_StopHost(USB_OTG_GlobalTypeDef *USBx)
uint32_t USB_ReadInterrupts(USB_OTG_GlobalTypeDef *USBx)
#define USB_OTG_DIEPTSIZ_MULCNT
HAL_StatusTypeDef USB_DevDisconnect(USB_OTG_GlobalTypeDef *USBx)
HAL_StatusTypeDef USB_EPSetStall(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep)
#define USB_OTG_DIEPMSK_TXFURM
HAL_StatusTypeDef USB_HostInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg)
#define USB_OTG_DIEPCTL_USBAEP
#define USB_OTG_HCCHAR_CHDIS
#define USB_OTG_HCCHAR_MPSIZ
#define USB_OTG_GAHBCFG_HBSTLEN_2
HAL_StatusTypeDef USB_EPStartXfer(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep, uint8_t dma)
#define USB_OTG_DIEPCTL_MPSIZ
uint32_t USB_ReadDevAllInEpInterrupt(USB_OTG_GlobalTypeDef *USBx)
#define USB_OTG_GAHBCFG_HBSTLEN_1
#define USB_OTG_HCCHAR_LSDEV
#define USB_OTG_DOEPTSIZ_STUPCNT
#define USB_OTG_HCFG_FSLSS
#define USB_OTG_GINTMSK_HCIM
#define USB_OTG_GUSBCFG_FHMOD
#define USB_OTG_HPRT_PENA
#define USB_OTG_GINTMSK_PRTIM
HAL_StatusTypeDef USB_ActivateSetup(USB_OTG_GlobalTypeDef *USBx)
#define USB_OTG_DAINTMSK_OEPM
#define USB_OTG_DIEPCTL_CNAK
#define USB_OTG_DOEPCTL_SNAK
#define USB_OTG_DTHRCTL_NONISOTHREN
HAL_StatusTypeDef USB_EP0StartXfer(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep, uint8_t dma)
#define USB_OTG_DOEPCTL_CNAK
HAL_StatusTypeDef USB_StopDevice(USB_OTG_GlobalTypeDef *USBx)
#define USB_OTG_SPEED_HIGH_IN_FULL
#define USB_OTG_GUSBCFG_ULPIEVBUSI
#define USB_OTG_DOEPCTL_SODDFRM
HAL_StatusTypeDef USB_ActivateDedicatedEndpoint(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep)
uint8_t USB_GetDevSpeed(USB_OTG_GlobalTypeDef *USBx)
#define USB_OTG_HCTSIZ_DPID
This file contains all the functions prototypes for the HAL module driver.
#define USB_OTG_GINTMSK_OTGINT
#define USB_OTG_GUSBCFG_ULPIEVBUSD
#define DSTS_ENUMSPD_FS_PHY_30MHZ_OR_60MHZ
#define DSTS_ENUMSPD_HS_PHY_30MHZ_OR_60MHZ
HAL_StatusTypeDef USB_InitFSLSPClkSel(USB_OTG_GlobalTypeDef *USBx, uint8_t freq)
#define USB_OTG_HPRT_PPWR
#define USB_OTG_GUSBCFG_PHYSEL
uint32_t vbus_sensing_enable
#define USB_OTG_GAHBCFG_DMAEN
HAL_StatusTypeDef USB_DevConnect(USB_OTG_GlobalTypeDef *USBx)
#define USB_OTG_HPTXFSIZ_PTXFD
#define USB_OTG_GINTMSK_RXFLVLM
#define USB_OTG_GINTMSK_SRQIM
#define USB_OTG_GCCFG_PWRDWN
#define USB_OTG_SPEED_FULL
#define USB_OTG_GINTMSK_PTXFEM
uint32_t USB_GetCurrentFrame(USB_OTG_GlobalTypeDef *USBx)
#define USB_OTG_SPEED_LOW
void USB_ClearInterrupts(USB_OTG_GlobalTypeDef *USBx, uint32_t interrupt)
HAL_StatusTypeDef USB_DoPing(USB_OTG_GlobalTypeDef *USBx, uint8_t ch_num)
#define USB_OTG_GINTMSK_WUIM
#define USB_OTG_DIEPCTL_STALL
HAL_StatusTypeDef USB_HC_StartXfer(USB_OTG_GlobalTypeDef *USBx, USB_OTG_HCTypeDef *hc, uint8_t dma)
#define DSTS_ENUMSPD_FS_PHY_48MHZ
#define USB_OTG_GINTMSK_USBRST
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_GINTMSK_IISOIXFRM
HAL_StatusTypeDef USB_EnableGlobalInt(USB_OTG_GlobalTypeDef *USBx)
#define USB_OTG_GOTGCTL_BVALOEN
#define USB_OTG_DTHRCTL_RXTHREN
#define USB_OTG_DIEPCTL_EPENA
#define USB_OTG_HPRT_PCDET
#define USB_OTG_HCCHAR_DAD
HAL_StatusTypeDef USB_EPClearStall(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep)
#define USB_OTG_DOEPTSIZ_PKTCNT
HAL_StatusTypeDef USB_HC_Halt(USB_OTG_GlobalTypeDef *USBx, uint8_t hc_num)
USB_OTG_ModeTypeDef
USB Mode definition.
#define USB_OTG_DOEPCTL_MPSIZ
#define USB_OTG_GAHBCFG_GINT
HAL_StatusTypeDef USB_DeactivateDedicatedEndpoint(USB_OTG_GlobalTypeDef *USBx, USB_OTG_EPTypeDef *ep)
#define USB_OTG_GINTMSK_SOFM
HAL_StatusTypeDef USB_ResetPort(USB_OTG_GlobalTypeDef *USBx)
#define USB_OTG_DCTL_CGINAK
#define USB_OTG_DIEPCTL_SNAK
#define USB_OTG_GRSTCTL_AHBIDL
#define USB_OTG_HCINTMSK_TXERRM
#define USB_OTG_GINTMSK_IEPINT
#define USB_OTG_DIEPTSIZ_PKTCNT
#define USB_OTG_HCINTMSK_ACKM
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_HCCHAR_CHENA
#define DSTS_ENUMSPD_LS_PHY_6MHZ
#define USB_OTG_GCCFG_VBDEN
void * USB_ReadPacket(USB_OTG_GlobalTypeDef *USBx, uint8_t *dest, uint16_t len)
#define USB_OTG_HCCHAR_EPTYP
#define HPRT0_PRTSPD_LOW_SPEED
#define USB_OTG_HFNUM_FRNUM
HAL_StatusTypeDef USB_FlushRxFifo(USB_OTG_GlobalTypeDef *USBx)
#define USB_OTG_HPRT_PSPD
#define USB_OTG_HCCHAR_EPDIR
HAL_StatusTypeDef USB_DriveVbus(USB_OTG_GlobalTypeDef *USBx, uint8_t state)
#define USB_OTG_DIEPCTL_SODDFRM
#define USB_OTG_EP_REG_SIZE
HAL_StatusTypeDef USB_SetDevAddress(USB_OTG_GlobalTypeDef *USBx, uint8_t address)
uint32_t use_external_vbus
#define USB_OTG_DIEPCTL_SD0PID_SEVNFRM
uint32_t USB_GetMode(USB_OTG_GlobalTypeDef *USBx)
#define USB_OTG_DOEPCTL_EPDIS
__IO uint32_t DIEPTXF0_HNPTXFSIZ
#define USB_OTG_HCCHAR_ODDFRM