48#if defined (HAL_PCD_MODULE_ENABLED) || defined (HAL_HCD_MODULE_ENABLED)
49#if defined (USB_OTG_FS) || defined (USB_OTG_HS)
56#if defined (USB_OTG_FS) || defined (USB_OTG_HS)
86 if (
cfg.phy_itface == USB_OTG_ULPI_PHY)
95 if (
cfg.use_external_vbus == 1U)
101 ret = USB_CoreReset(USBx);
109 ret = USB_CoreReset(USBx);
111 if (
cfg.battery_charging_enable == 0U)
123 if (
cfg.dma_enable == 1U)
130 USBx->
GAHBCFG |= USB_OTG_GAHBCFG_HBSTLEN_INCR4;
145 uint32_t hclk, uint8_t speed)
153 if (speed == USBD_FS_SPEED)
155 if ((hclk >= 14200000U) && (hclk < 15000000U))
160 else if ((hclk >= 15000000U) && (hclk < 16000000U))
165 else if ((hclk >= 16000000U) && (hclk < 17200000U))
170 else if ((hclk >= 17200000U) && (hclk < 18500000U))
175 else if ((hclk >= 18500000U) && (hclk < 20000000U))
180 else if ((hclk >= 20000000U) && (hclk < 21800000U))
185 else if ((hclk >= 21800000U) && (hclk < 24000000U))
190 else if ((hclk >= 24000000U) && (hclk < 27700000U))
195 else if ((hclk >= 27700000U) && (hclk < 32000000U))
206 else if (speed == USBD_HS_SPEED)
208 UsbTrd = USBD_HS_TRDT_VALUE;
212 UsbTrd = USBD_DEFAULT_TRDT_VALUE;
260 if (mode == USB_HOST_MODE)
268 }
while ((USB_GetMode(USBx) != (uint32_t)USB_HOST_MODE) && (ms < HAL_USB_CURRENT_MODE_MAX_DELAY_MS));
270 else if (mode == USB_DEVICE_MODE)
278 }
while ((USB_GetMode(USBx) != (uint32_t)USB_DEVICE_MODE) && (ms < HAL_USB_CURRENT_MODE_MAX_DELAY_MS));
285 if (ms == HAL_USB_CURRENT_MODE_MAX_DELAY_MS)
304 uint32_t USBx_BASE = (uint32_t)USBx;
307 for (i = 0U; i < 15U; i++)
313 if (
cfg.vbus_sensing_enable == 0U)
333 if (
cfg.phy_itface == USB_OTG_ULPI_PHY)
335 if (
cfg.speed == USBD_HS_SPEED)
338 (void)USB_SetDevSpeed(USBx, USB_OTG_SPEED_HIGH);
343 (void)USB_SetDevSpeed(USBx, USB_OTG_SPEED_HIGH_IN_FULL);
349 (void)USB_SetDevSpeed(USBx, USB_OTG_SPEED_FULL);
353 if (USB_FlushTxFifo(USBx, 0x10U) !=
HAL_OK)
358 if (USB_FlushRxFifo(USBx) !=
HAL_OK)
364 USBx_DEVICE->DIEPMSK = 0U;
365 USBx_DEVICE->DOEPMSK = 0U;
366 USBx_DEVICE->DAINTMSK = 0U;
368 for (i = 0U; i <
cfg.dev_endpoints; i++)
383 USBx_INEP(i)->DIEPCTL = 0U;
386 USBx_INEP(i)->DIEPTSIZ = 0U;
387 USBx_INEP(i)->DIEPINT = 0xFB7FU;
390 for (i = 0U; i <
cfg.dev_endpoints; i++)
405 USBx_OUTEP(i)->DOEPCTL = 0U;
408 USBx_OUTEP(i)->DOEPTSIZ = 0U;
409 USBx_OUTEP(i)->DOEPINT = 0xFB7FU;
421 if (
cfg.dma_enable == 0U)
432 if (
cfg.Sof_enable != 0U)
437 if (
cfg.vbus_sensing_enable == 1U)
462 if (
count > HAL_USB_TIMEOUT)
476 if (
count > HAL_USB_TIMEOUT)
499 if (
count > HAL_USB_TIMEOUT)
513 if (
count > HAL_USB_TIMEOUT)
535 uint32_t USBx_BASE = (uint32_t)USBx;
537 USBx_DEVICE->DCFG |= speed;
551 uint32_t USBx_BASE = (uint32_t)USBx;
555 if (DevEnumSpeed == DSTS_ENUMSPD_HS_PHY_30MHZ_OR_60MHZ)
557 speed = USBD_HS_SPEED;
559 else if ((DevEnumSpeed == DSTS_ENUMSPD_FS_PHY_30MHZ_OR_60MHZ) ||
560 (DevEnumSpeed == DSTS_ENUMSPD_FS_PHY_48MHZ))
562 speed = USBD_FS_SPEED;
572#if defined (HAL_PCD_MODULE_ENABLED)
581 uint32_t USBx_BASE = (uint32_t)USBx;
582 uint32_t epnum = (uint32_t)ep->num;
591 ((uint32_t)ep->type << 18) | (epnum << 22) |
603 ((uint32_t)ep->type << 18) |
619 uint32_t USBx_BASE = (uint32_t)USBx;
620 uint32_t epnum = (uint32_t)ep->num;
628 ((uint32_t)ep->type << 18) | (epnum << 22) |
640 ((uint32_t)ep->type << 18) | (epnum << 22) |
658 uint32_t USBx_BASE = (uint32_t)USBx;
659 uint32_t epnum = (uint32_t)ep->num;
686 USBx_DEVICE->DEACHMSK &= ~(
USB_OTG_DAINTMSK_OEPM & ((uint32_t)(1UL << (ep->num & EP_ADDR_MSK)) << 16));
687 USBx_DEVICE->DAINTMSK &= ~(
USB_OTG_DAINTMSK_OEPM & ((uint32_t)(1UL << (ep->num & EP_ADDR_MSK)) << 16));
705 uint32_t USBx_BASE = (uint32_t)USBx;
706 uint32_t epnum = (uint32_t)ep->num;
717 USBx_INEP(epnum)->DIEPCTL &= ~ USB_OTG_DIEPCTL_USBAEP;
729 USBx_DEVICE->DAINTMSK &= ~(
USB_OTG_DAINTMSK_OEPM & ((uint32_t)(1UL << (ep->num & EP_ADDR_MSK)) << 16));
747 uint32_t USBx_BASE = (uint32_t)USBx;
748 uint32_t epnum = (uint32_t)ep->num;
755 if (ep->xfer_len == 0U)
773 if (ep->xfer_len > ep->maxpacket)
775 ep->xfer_len = ep->maxpacket;
782 pktcnt = (uint16_t)((ep->xfer_len + ep->maxpacket - 1U) / ep->maxpacket);
785 if (ep->type == EP_TYPE_ISOC)
797 if ((uint32_t)ep->dma_addr != 0U)
799 USBx_INEP(epnum)->DIEPDMA = (uint32_t)(ep->dma_addr);
802 if (ep->type == EP_TYPE_ISOC)
804 if ((USBx_DEVICE->DSTS & (1UL << 8)) == 0U)
822 if (ep->type != EP_TYPE_ISOC)
825 if (ep->xfer_len > 0U)
827 USBx_DEVICE->DIEPEMPMSK |= 1UL << (ep->num & EP_ADDR_MSK);
832 if ((USBx_DEVICE->DSTS & (1UL << 8)) == 0U)
841 (void)USB_WritePacket(USBx, ep->xfer_buff, ep->num, (uint16_t)ep->xfer_len, dma);
856 if (ep->xfer_len > 0U)
858 ep->xfer_len = ep->maxpacket;
862 ep->xfer_size = ep->maxpacket;
869 if (ep->xfer_len == 0U)
876 pktcnt = (uint16_t)((ep->xfer_len + ep->maxpacket - 1U) / ep->maxpacket);
877 ep->xfer_size = ep->maxpacket * pktcnt;
886 if ((uint32_t)ep->xfer_buff != 0U)
888 USBx_OUTEP(epnum)->DOEPDMA = (uint32_t)(ep->xfer_buff);
892 if (ep->type == EP_TYPE_ISOC)
894 if ((USBx_DEVICE->DSTS & (1UL << 8)) == 0U)
920 __IO uint32_t RegVal;
922 uint32_t USBx_BASE = (uint32_t)USBx;
938 if (
count > 0xF0000U)
955 if (dma_enable == 0U)
961 if (
count > 0xF0000U)
980 if (
count > 0xF0000U)
998 if (
count > 0xF0000U)
1024 uint32_t USBx_BASE = (uint32_t)USBx;
1025 uint32_t epnum = (uint32_t)ep->num;
1027 if (ep->is_in == 1U)
1055 uint32_t USBx_BASE = (uint32_t)USBx;
1056 uint32_t epnum = (uint32_t)ep->num;
1058 if (ep->is_in == 1U)
1061 if ((ep->type == EP_TYPE_INTR) || (ep->type == EP_TYPE_BULK))
1069 if ((ep->type == EP_TYPE_INTR) || (ep->type == EP_TYPE_BULK))
1092 uint8_t ch_ep_num, uint16_t len, uint8_t dma)
1094 uint32_t USBx_BASE = (uint32_t)USBx;
1095 uint8_t *pSrc = src;
1101 count32b = ((uint32_t)len + 3U) / 4U;
1102 for (i = 0U; i < count32b; i++)
1124 uint32_t USBx_BASE = (uint32_t)USBx;
1125 uint8_t *pDest = dest;
1128 uint32_t count32b = (uint32_t)len >> 2U;
1129 uint16_t remaining_bytes = len % 4U;
1131 for (i = 0U; i < count32b; i++)
1141 if (remaining_bytes != 0U)
1148 *(uint8_t *)pDest = (uint8_t)(pData >> (8U * (uint8_t)(i)));
1152 }
while (remaining_bytes != 0U);
1155 return ((
void *)pDest);
1166 uint32_t USBx_BASE = (uint32_t)USBx;
1170 for (i = 0U; i < 15U; i++)
1172 USBx_INEP(i)->DIEPINT = 0xFB7FU;
1173 USBx_OUTEP(i)->DOEPINT = 0xFB7FU;
1177 USBx_DEVICE->DIEPMSK = 0U;
1178 USBx_DEVICE->DOEPMSK = 0U;
1179 USBx_DEVICE->DAINTMSK = 0U;
1182 ret = USB_FlushRxFifo(USBx);
1188 ret = USB_FlushTxFifo(USBx, 0x10U);
1206 uint32_t USBx_BASE = (uint32_t)USBx;
1221 uint32_t USBx_BASE = (uint32_t)USBx;
1238 uint32_t USBx_BASE = (uint32_t)USBx;
1271 uint32_t USBx_BASE = (uint32_t)USBx;
1274 tmpreg = USBx_HC(chnum)->HCINT;
1275 tmpreg &= USBx_HC(chnum)->HCINTMSK;
1287 uint32_t USBx_BASE = (uint32_t)USBx;
1290 tmpreg = USBx_DEVICE->DAINT;
1291 tmpreg &= USBx_DEVICE->DAINTMSK;
1293 return ((tmpreg & 0xffff0000U) >> 16);
1303 uint32_t USBx_BASE = (uint32_t)USBx;
1306 tmpreg = USBx_DEVICE->DAINT;
1307 tmpreg &= USBx_DEVICE->DAINTMSK;
1309 return ((tmpreg & 0xFFFFU));
1321 uint32_t USBx_BASE = (uint32_t)USBx;
1324 tmpreg = USBx_OUTEP((uint32_t)epnum)->DOEPINT;
1325 tmpreg &= USBx_DEVICE->DOEPMSK;
1339 uint32_t USBx_BASE = (uint32_t)USBx;
1344 msk = USBx_DEVICE->DIEPMSK;
1345 emp = USBx_DEVICE->DIEPEMPMSK;
1346 msk |= ((emp >> (epnum & EP_ADDR_MSK)) & 0x1U) << 7;
1347 tmpreg = USBx_INEP((uint32_t)epnum)->DIEPINT & msk;
1373 return ((USBx->
GINTSTS) & 0x1U);
1383 uint32_t USBx_BASE = (uint32_t)USBx;
1405 uint32_t USBx_BASE = (uint32_t)USBx;
1406 uint32_t gSNPSiD = *(
__IO const uint32_t *)(&USBx->
CID + 0x1U);
1408 if (gSNPSiD > USB_OTG_CORE_ID_300A)
1416 USBx_OUTEP(0U)->DOEPTSIZ = 0U;
1418 USBx_OUTEP(0U)->DOEPTSIZ |= (3U * 8U);
1423 USBx_OUTEP(0U)->DOEPDMA = (uint32_t)psetup;
1445 if (
count > HAL_USB_TIMEOUT)
1466 if (
count > HAL_USB_TIMEOUT)
1486 uint32_t USBx_BASE = (uint32_t)USBx;
1501 if (
cfg.speed == USBH_FSLS_SPEED)
1519 if (USB_FlushTxFifo(USBx, 0x10U) !=
HAL_OK)
1524 if (USB_FlushRxFifo(USBx) !=
HAL_OK)
1530 for (i = 0U; i <
cfg.Host_channels; i++)
1532 USBx_HC(i)->HCINT = CLEAR_INTERRUPT_MASK;
1533 USBx_HC(i)->HCINTMSK = 0U;
1540 USBx->
GINTSTS = CLEAR_INTERRUPT_MASK;
1547 if (
cfg.dma_enable == 0U)
1572 uint32_t USBx_BASE = (uint32_t)USBx;
1577 if (freq == HCFG_48_MHZ)
1579 USBx_HOST->HFIR = HFIR_48_MHZ;
1581 else if (freq == HCFG_6_MHZ)
1583 USBx_HOST->HFIR = HFIR_6_MHZ;
1602 uint32_t USBx_BASE = (uint32_t)USBx;
1604 __IO uint32_t hprt0 = 0U;
1629 uint32_t USBx_BASE = (uint32_t)USBx;
1630 __IO uint32_t hprt0 = 0U;
1659 uint32_t USBx_BASE = (uint32_t)USBx;
1660 __IO uint32_t hprt0 = 0U;
1673 uint32_t USBx_BASE = (uint32_t)USBx;
1678#if defined (HAL_HCD_MODULE_ENABLED)
1704 uint8_t epnum, uint8_t dev_address, uint8_t speed,
1705 uint8_t ep_type, uint16_t mps)
1708 uint32_t USBx_BASE = (uint32_t)USBx;
1709 uint32_t HCcharEpDir;
1710 uint32_t HCcharLowSpeed;
1711 uint32_t HostCoreSpeed;
1714 USBx_HC((uint32_t)ch_num)->HCINT = CLEAR_INTERRUPT_MASK;
1728 if ((epnum & 0x80U) == 0x80U)
1748 if ((epnum & 0x80U) == 0x80U)
1761 if ((epnum & 0x80U) == 0x80U)
1773 USBx_HC((uint32_t)ch_num)->HCSPLT = 0U;
1779 USBx_HOST->HAINTMSK |= 1UL << (ch_num & 0xFU);
1785 if ((epnum & 0x80U) == 0x80U)
1794 HostCoreSpeed = USB_GetHostSpeed(USBx);
1797 if ((speed == HPRT0_PRTSPD_LOW_SPEED) && (HostCoreSpeed != HPRT0_PRTSPD_LOW_SPEED))
1803 HCcharLowSpeed = 0U;
1806 USBx_HC((uint32_t)ch_num)->HCCHAR = (((uint32_t)dev_address << 22) &
USB_OTG_HCCHAR_DAD) |
1812 if ((ep_type == EP_TYPE_INTR) || (ep_type == EP_TYPE_ISOC))
1832 uint32_t USBx_BASE = (uint32_t)USBx;
1833 uint32_t ch_num = (uint32_t)hc->ch_num;
1834 __IO uint32_t tmpreg;
1835 uint8_t is_oddframe;
1837 uint16_t num_packets;
1838 uint16_t max_hc_pkt_count = HC_MAX_PKT_CNT;
1843 if (((hc->ep_type == EP_TYPE_CTRL) || (hc->ep_type == EP_TYPE_BULK)) && (hc->do_ssplit == 0U))
1853 if ((hc->speed == USBH_HS_SPEED) && (hc->do_ping == 1U))
1855 (void)USB_DoPing(USBx, hc->ch_num);
1860 if (hc->do_ssplit == 1U)
1865 if (hc->ep_is_in != 0U)
1867 hc->XferSize = (uint32_t)num_packets * hc->max_packet;
1871 if (hc->ep_type == EP_TYPE_ISOC)
1873 if (hc->xfer_len > ISO_SPLT_MPS)
1876 hc->XferSize = hc->max_packet;
1877 hc->xfer_len = hc->XferSize;
1879 if ((hc->iso_splt_xactPos == HCSPLT_BEGIN) || (hc->iso_splt_xactPos == HCSPLT_MIDDLE))
1881 hc->iso_splt_xactPos = HCSPLT_MIDDLE;
1885 hc->iso_splt_xactPos = HCSPLT_BEGIN;
1890 hc->XferSize = hc->xfer_len;
1892 if ((hc->iso_splt_xactPos != HCSPLT_BEGIN) && (hc->iso_splt_xactPos != HCSPLT_MIDDLE))
1894 hc->iso_splt_xactPos = HCSPLT_FULL;
1898 hc->iso_splt_xactPos = HCSPLT_END;
1904 if ((dma == 1U) && (hc->xfer_len > hc->max_packet))
1906 hc->XferSize = (uint32_t)num_packets * hc->max_packet;
1910 hc->XferSize = hc->xfer_len;
1918 if (hc->xfer_len > 0U)
1920 num_packets = (uint16_t)((hc->xfer_len + hc->max_packet - 1U) / hc->max_packet);
1922 if (num_packets > max_hc_pkt_count)
1924 num_packets = max_hc_pkt_count;
1925 hc->XferSize = (uint32_t)num_packets * hc->max_packet;
1937 if (hc->ep_is_in != 0U)
1939 hc->XferSize = (uint32_t)num_packets * hc->max_packet;
1943 hc->XferSize = hc->xfer_len;
1955 USBx_HC(ch_num)->HCDMA = (uint32_t)hc->xfer_buff;
1958 is_oddframe = (((uint32_t)USBx_HOST->HFNUM & 0x01U) != 0U) ? 0U : 1U;
1960 USBx_HC(ch_num)->HCCHAR |= (uint32_t)is_oddframe << 29;
1962 if (hc->do_ssplit == 1U)
1972 if ((hc->do_csplit == 1U) && (hc->ep_is_in == 0U))
1978 if (((hc->ep_type == EP_TYPE_ISOC) || (hc->ep_type == EP_TYPE_INTR)) &&
1979 (hc->do_csplit == 1U) && (hc->ep_is_in == 1U))
1985 if ((hc->ep_type == EP_TYPE_ISOC) && (hc->ep_is_in == 0U))
1988 switch (hc->iso_splt_xactPos)
2018 USBx_HC((uint32_t)ch_num)->HCSPLT = 0U;
2022 tmpreg = USBx_HC(ch_num)->HCCHAR;
2026 if (hc->ep_is_in != 0U)
2035 USBx_HC(ch_num)->HCCHAR = tmpreg;
2042 if ((hc->ep_is_in == 0U) && (hc->xfer_len > 0U) && (hc->do_csplit == 0U))
2044 switch (hc->ep_type)
2050 len_words = (uint16_t)((hc->xfer_len + 3U) / 4U);
2053 if (len_words > (USBx->
HNPTXSTS & 0xFFFFU))
2063 len_words = (uint16_t)((hc->xfer_len + 3U) / 4U);
2065 if (len_words > (USBx_HOST->HPTXSTS & 0xFFFFU))
2077 (void)USB_WritePacket(USBx, hc->xfer_buff, hc->ch_num, (uint16_t)hc->xfer_len, 0);
2090 uint32_t USBx_BASE = (uint32_t)USBx;
2092 return ((USBx_HOST->HAINT) & 0xFFFFU);
2104 uint32_t USBx_BASE = (uint32_t)USBx;
2105 uint32_t hcnum = (uint32_t)hc_num;
2116 ((ChannelEna == 0U) || (((HcEpType == HCCHAR_ISOC) || (HcEpType == HCCHAR_INTR)))))
2122 if ((HcEpType == HCCHAR_CTRL) || (HcEpType == HCCHAR_BULK))
2128 if ((USBx->
HNPTXSTS & (0xFFUL << 16)) == 0U)
2156 if ((USBx_HOST->HPTXSTS & (0xFFUL << 16)) == 0U)
2191 __IO uint32_t tmpreg;
2192 uint32_t USBx_BASE = (uint32_t)USBx;
2195 tmpreg = USBx_HC(ch_num)->HCCHAR;
2200 USBx_HC(ch_num)->HCCHAR = tmpreg;
2216 uint32_t USBx_BASE = (uint32_t)USBx;
2217 uint32_t chnum = (uint32_t)ch_num;
2218 uint32_t num_packets = 1U;
2225 tmpreg = USBx_HC(chnum)->HCCHAR;
2228 USBx_HC(chnum)->HCCHAR = tmpreg;
2241 uint32_t USBx_BASE = (uint32_t)USBx;
2246 (void)USB_DisableGlobalInt(USBx);
2249 if (USB_FlushTxFifo(USBx, 0x10U) !=
HAL_OK)
2254 if (USB_FlushRxFifo(USBx) !=
HAL_OK)
2260 for (i = 0U; i <= 15U; i++)
2262 value = USBx_HC(i)->HCCHAR;
2266 USBx_HC(i)->HCCHAR =
value;
2270 for (i = 0U; i <= 15U; i++)
2272 value = USBx_HC(i)->HCCHAR;
2276 USBx_HC(i)->HCCHAR =
value;
2290 USBx_HOST->HAINT = CLEAR_INTERRUPT_MASK;
2291 USBx->
GINTSTS = CLEAR_INTERRUPT_MASK;
2293 (void)USB_EnableGlobalInt(USBx);
2305 uint32_t USBx_BASE = (uint32_t)USBx;
2323 uint32_t USBx_BASE = (uint32_t)USBx;
#define __UNALIGNED_UINT32_WRITE(addr, val)
#define __UNALIGNED_UINT32_READ(addr)
#define __IO
Defines 'read / write' permissions.
static ActuatorControllerState state
void HAL_Delay(uint32_t Delay)
This function provides minimum delay (in milliseconds) based on variable incremented.
#define USB_OTG_HCINTMSK_STALLM
STALL response received interrupt mask.
#define USB_OTG_GUSBCFG_FDMOD
Forced peripheral mode.
#define USB_OTG_DIEPCTL_SNAK
Set NAK.
#define USB_OTG_HCINTMSK_NYET
response received interrupt mask
#define USB_OTG_DOEPCTL_SNAK
Set NAK.
#define USB_OTG_GINTMSK_USBRST
USB reset mask.
#define USB_OTG_DOEPCTL_SD0PID_SEVNFRM
Set DATA0 PID.
#define USB_OTG_HCSPLT_XACTPOS_1
0x00008000
#define USB_OTG_DOEPCTL_MPSIZ
Bit 1.
#define USB_OTG_GOTGCTL_BVALOEN
B-peripheral session valid override enable.
#define USB_OTG_HCCHAR_MC_0
0x00100000
#define USB_OTG_GINTMSK_OTGINT
OTG interrupt mask.
#define USB_OTG_DCTL_SDIS
Soft disconnect.
#define USB_OTG_GCCFG_VBDEN
Secondary detection (SD) mode enable.
#define USB_OTG_HPRT_PCDET
Port connect detected.
#define USB_OTG_HCCHAR_EPTYP
Endpoint type.
#define USB_OTG_HCCHAR_CHENA
Channel enable.
#define USB_OTG_GINTMSK_HCIM
Host channels interrupt mask.
#define USB_OTG_DCTL_CGINAK
Clear global IN NAK.
#define USB_OTG_HPRT_PPWR
Port power.
#define USB_OTG_HCCHAR_LSDEV
Low-speed device.
#define USB_OTG_GUSBCFG_PHYSEL
USB 2.0 high-speed ULPI PHY or USB 1.1 full-speed serial transceiver select.
#define USB_OTG_HCINTMSK_ACKM
ACK response received/transmitted interrupt mask.
#define USB_OTG_DCTL_CGONAK
Clear global OUT NAK.
#define USB_OTG_GINTMSK_PTXFEM
Periodic TxFIFO empty mask.
#define USB_OTG_GINTSTS_BOUTNAKEFF
Global OUT NAK effective.
#define USB_OTG_HCTSIZ_DOPING
Do PING.
#define USB_OTG_DIEPCTL_EPTYP
Endpoint type.
#define USB_OTG_GAHBCFG_HBSTLEN
Burst length/type.
#define USB_OTG_HCCHAR_EPDIR
Endpoint direction.
#define USB_OTG_DOEPINT_EPDISD
Endpoint disabled interrupt.
#define USB_OTG_HCCHAR_CHDIS
Channel disable.
#define USB_OTG_GUSBCFG_ULPIEVBUSI
ULPI external VBUS indicator.
#define USB_OTG_GINTMSK_NPTXFEM
Nonperiodic TxFIFO empty mask.
#define USB_OTG_DIEPTSIZ_MULCNT
Packet count.
#define USB_OTG_GAHBCFG_DMAEN
DMA enable.
#define USB_OTG_GCCFG_PWRDWN
Power down.
#define USB_OTG_DOEPCTL_EPTYP
Endpoint type.
#define USB_OTG_HCINTMSK_NAKM
NAK response received interrupt mask.
#define USB_OTG_DIEPCTL_USBAEP
USB active endpoint.
#define USB_OTG_HCINTMSK_TXERRM
Transaction error mask.
#define USB_OTG_DIEPTSIZ_XFRSIZ
Transfer size.
#define USB_OTG_HPRT_PRST
Port reset.
#define USB_OTG_HPRT_PSPD
Port speed.
#define USB_OTG_DOEPTSIZ_STUPCNT
SETUP packet count.
#define USB_OTG_DOEPCTL_STALL
STALL handshake.
#define USB_OTG_GINTMSK_ENUMDNEM
Enumeration done mask.
#define USB_OTG_DIEPTSIZ_PKTCNT
Packet count.
#define USB_OTG_HCTSIZ_DPID
Data PID.
#define USB_OTG_DCTL_SGONAK
Set global OUT NAK.
#define USB_OTG_PCGCCTL_STOPCLK
SETUP packet count.
#define USB_OTG_DOEPCTL_SODDFRM
Set odd frame.
#define USB_OTG_HCINTMSK_DTERRM
Data toggle error mask.
#define USB_OTG_HPRT_PENCHNG
Port enable/disable change.
#define USB_OTG_GINTMSK_PXFRM_IISOOXFRM
Incomplete periodic transfer mask.
#define USB_OTG_HPTXFSIZ_PTXFD
Host periodic TxFIFO depth.
#define USB_OTG_DOEPCTL_EPENA
Endpoint enable.
#define USB_OTG_GINTMSK_SRQIM
Session request/new session detected interrupt mask.
#define USB_OTG_HCFG_FSLSPCS
FS/LS PHY clock select.
#define USB_OTG_DIEPMSK_TXFURM
FIFO underrun mask.
#define USB_OTG_DCTL_RWUSIG
Remote wakeup signaling.
#define USB_OTG_HCINTMSK_CHHM
Channel halted mask.
#define USB_OTG_DSTS_SUSPSTS
Suspend status.
#define USB_OTG_HPRT_PENA
Port enable.
#define USB_OTG_HCSPLT_HUBADDR_Pos
#define USB_OTG_HCSPLT_XACTPOS_Pos
#define USB_OTG_HCFG_FSLSS
FS- and LS-only support.
#define USB_OTG_HCTSIZ_XFRSIZ
Transfer size.
#define USB_OTG_GINTMSK_IISOIXFRM
Incomplete isochronous IN transfer mask.
#define USB_OTG_GUSBCFG_ULPIFSLS
ULPI FS/LS select.
#define USB_OTG_HCINTMSK_BBERRM
Babble error mask.
#define USB_OTG_DIEPCTL_EPDIS
Endpoint disable.
#define USB_OTG_HCSPLT_SPLITEN
Split enable.
#define USB_OTG_HCINTMSK_XFRCM
Transfer completed mask.
#define USB_OTG_NPTXFD
Nonperiodic TxFIFO depth.
#define USB_OTG_GINTMSK_USBSUSPM
USB suspend mask.
#define USB_OTG_GINTMSK_IEPINT
IN endpoints interrupt mask.
#define USB_OTG_GINTSTS_DISCINT
Disconnect detected interrupt.
#define USB_OTG_DAINTMSK_IEPM
IN EP interrupt mask bits.
#define USB_OTG_HCTSIZ_PKTCNT
Packet count.
#define USB_OTG_HFNUM_FRNUM
Frame number.
#define USB_OTG_DIEPCTL_STALL
STALL handshake.
#define USB_OTG_HCSPLT_COMPLSPLT
Do complete split.
#define USB_OTG_GINTMSK_WUIM
Resume/remote wakeup detected interrupt mask.
#define USB_OTG_DIEPCTL_CNAK
Clear NAK.
#define USB_OTG_GINTMSK_PRTIM
Host port interrupt mask.
#define USB_OTG_DOEPTSIZ_XFRSIZ
Transfer size.
#define USB_OTG_GINTMSK_GONAKEFFM
Global OUT NAK effective mask.
#define USB_OTG_GINTMSK_SOFM
Start of frame mask.
#define USB_OTG_HPRT_POCCHNG
Port overcurrent change.
#define USB_OTG_DOEPCTL_CNAK
Clear NAK.
#define USB_OTG_GINTSTS_RXFLVL
RxFIFO nonempty.
#define USB_OTG_DIEPCTL_MPSIZ
Maximum packet size.
#define USB_OTG_GUSBCFG_TSDPS
TermSel DLine pulsing selection.
#define USB_OTG_DOEPCTL_USBAEP
USB active endpoint.
#define USB_OTG_GRSTCTL_AHBIDL
AHB master idle.
#define USB_OTG_GUSBCFG_FHMOD
Forced host mode.
#define USB_OTG_DIEPCTL_SD0PID_SEVNFRM
Set DATA0 PID.
#define USB_OTG_HCSPLT_XACTPOS
XACTPOS.
#define USB_OTG_GRSTCTL_TXFFLSH
TxFIFO flush.
#define USB_OTG_GRSTCTL_RXFFLSH
RxFIFO flush.
#define USB_OTG_GINTMSK_RXFLVLM
Receive FIFO nonempty mask.
#define USB_OTG_DAINTMSK_OEPM
OUT EP interrupt mask bits.
#define USB_OTG_HCCHAR_DAD
Device address.
#define USB_OTG_HCINTMSK_FRMORM
Frame overrun mask.
#define USB_OTG_DIEPCTL_TXFNUM
TxFIFO number.
#define USB_OTG_GRSTCTL_CSRST
Core soft reset.
#define USB_OTG_DIEPCTL_EPENA
Endpoint enable.
#define USB_OTG_GCCFG_BCDEN
Battery charging detector (BCD) enable.
#define USB_OTG_HCCHAR_ODDFRM
Odd frame.
#define USB_OTG_PCGCCTL_GATECLK
Bit 0.
#define USB_OTG_HCCHAR_EPNUM
Endpoint number.
#define USB_OTG_HCSPLT_XACTPOS_0
0x00004000
#define USB_OTG_DOEPTSIZ_PKTCNT
Packet count.
#define USB_OTG_DIEPCTL_SODDFRM
Set odd frame.
#define USB_OTG_GUSBCFG_TRDT
USB turnaround time.
#define USB_OTG_GOTGCTL_BVALOVAL
B-peripheral session valid override value.
#define USB_OTG_DOEPCTL_EPDIS
Endpoint disable.
#define USB_OTG_HCINTMSK_AHBERR
AHB error.
#define USB_OTG_DSTS_ENUMSPD
Enumerated speed.
#define USB_OTG_HCCHAR_MPSIZ
Maximum packet size.
#define USB_OTG_DCFG_DAD
Device address.
#define USB_OTG_GUSBCFG_ULPIEVBUSD
ULPI External VBUS Drive.
#define USB_OTG_GAHBCFG_GINT
Global interrupt mask.
#define USB_OTG_GINTMSK_OEPINT
OUT endpoints interrupt mask.
size_type count(const key_type &key) const
This file contains all the functions prototypes for the HAL module driver.
HAL_StatusTypeDef
HAL Status structures definition.
__IO uint32_t GDFIFOCFG
DFIFO Software Config Register 05Ch.
__IO uint32_t GRXSTSP
Receive Sts Q Read & POP Register 020h.
__IO uint32_t GINTSTS
Core Interrupt Register 014h.
__IO uint32_t GUSBCFG
Core USB Configuration Register 00Ch.
__IO uint32_t GAHBCFG
Core AHB Configuration Register 008h.
__IO uint32_t GINTMSK
Core Interrupt Mask Register 018h.
__IO uint32_t GOTGCTL
USB_OTG Control and Status Register 000h.
__IO uint32_t CID
User ID Register 03Ch.
__IO uint32_t GRSTCTL
Core Reset Register 010h.
__IO uint32_t DIEPTXF[0x0F]
dev Periodic Transmit FIFO
__IO uint32_t HNPTXSTS
Non Periodic Tx FIFO/Queue Sts reg 02Ch.
__IO uint32_t GCCFG
General Purpose IO Register 038h.
__IO uint32_t DIEPTXF0_HNPTXFSIZ
EP0 / Non Periodic Tx FIFO Size Register 028h.
__IO uint32_t HPTXFSIZ
Host Periodic Tx FIFO Size Reg 100h.
__IO uint32_t GRXFSIZ
Receive FIFO Size Register 024h.