nRF5 SDK v14.2.0
Macros | Enumerations | Functions

nRF52840 only: Hardware access layer for Universal Serial Bus Device (USBD) peripheral. More...

Macros

#define NRF_USBD_FRAMECNTR_SIZE   ( (USBD_FRAMECNTR_FRAMECNTR_Msk >> USBD_FRAMECNTR_FRAMECNTR_Pos) + 1UL )
 Frame counter size. More...
 
#define NRF_USBD_EPISO_FIRST   8
 First isochronous endpoint number. More...
 
#define NRF_USBD_EPIN_CNT   9
 Total number of IN endpoints. More...
 
#define NRF_USBD_EPOUT_CNT   9
 Total number of OUT endpoints. More...
 
#define NRF_USBD_EP_DIR_Msk   (1U << 7)
 Mask of the direction bit in endpoint number.
 
#define NRF_USBD_EP_DIR_IN   (1U << 7)
 The value of direction bit for IN endpoint direction.
 
#define NRF_USBD_EP_DIR_OUT   (0U << 7)
 The value of direction bit for OUT endpoint direction.
 
#define NRF_USBD_EPIN(epnr)   (((uint8_t)(epnr)) | NRF_USBD_EP_DIR_IN)
 Macro for making IN endpoint identifier from endpoint number. More...
 
#define NRF_USBD_EPOUT(epnr)   (((uint8_t)(epnr)) | NRF_USBD_EP_DIR_OUT)
 Macro for making OUT endpoint identifier from endpoint number. More...
 
#define NRF_USBD_EP_NR_GET(ep)   ((uint8_t)(((uint8_t)(ep)) & 0xFU))
 Macro for extracting the endpoint number from endpoint identifier. More...
 
#define NRF_USBD_EPIN_CHECK(ep)   ( (((uint8_t)(ep)) & NRF_USBD_EP_DIR_Msk) == NRF_USBD_EP_DIR_IN )
 Macro for checking endpoint direction. More...
 
#define NRF_USBD_EPOUT_CHECK(ep)   ( (((uint8_t)(ep)) & NRF_USBD_EP_DIR_Msk) == NRF_USBD_EP_DIR_OUT )
 Macro for checking endpoint direction. More...
 
#define NRF_USBD_EPISO_CHECK(ep)   (NRF_USBD_EP_NR_GET(ep) >= NRF_USBD_EPISO_FIRST)
 Macro for checking if endpoint is isochronous. More...
 
#define NRF_USBD_EP_VALIDATE(ep)
 Macro for checking if given number is valid endpoint number. More...
 
#define NRF_USBD_EPISOOUT_NO_DATA   ((size_t)(-1))
 Not isochronous data frame received. More...
 

Enumerations

enum  nrf_usbd_task_t {
  NRF_USBD_TASK_STARTEPIN0 = offsetof(NRF_USBD_Type, TASKS_STARTEPIN[0] ),
  NRF_USBD_TASK_STARTEPIN1 = offsetof(NRF_USBD_Type, TASKS_STARTEPIN[1] ),
  NRF_USBD_TASK_STARTEPIN2 = offsetof(NRF_USBD_Type, TASKS_STARTEPIN[2] ),
  NRF_USBD_TASK_STARTEPIN3 = offsetof(NRF_USBD_Type, TASKS_STARTEPIN[3] ),
  NRF_USBD_TASK_STARTEPIN4 = offsetof(NRF_USBD_Type, TASKS_STARTEPIN[4] ),
  NRF_USBD_TASK_STARTEPIN5 = offsetof(NRF_USBD_Type, TASKS_STARTEPIN[5] ),
  NRF_USBD_TASK_STARTEPIN6 = offsetof(NRF_USBD_Type, TASKS_STARTEPIN[6] ),
  NRF_USBD_TASK_STARTEPIN7 = offsetof(NRF_USBD_Type, TASKS_STARTEPIN[7] ),
  NRF_USBD_TASK_STARTISOIN = offsetof(NRF_USBD_Type, TASKS_STARTISOIN ),
  NRF_USBD_TASK_STARTEPOUT0 = offsetof(NRF_USBD_Type, TASKS_STARTEPOUT[0]),
  NRF_USBD_TASK_STARTEPOUT1 = offsetof(NRF_USBD_Type, TASKS_STARTEPOUT[1]),
  NRF_USBD_TASK_STARTEPOUT2 = offsetof(NRF_USBD_Type, TASKS_STARTEPOUT[2]),
  NRF_USBD_TASK_STARTEPOUT3 = offsetof(NRF_USBD_Type, TASKS_STARTEPOUT[3]),
  NRF_USBD_TASK_STARTEPOUT4 = offsetof(NRF_USBD_Type, TASKS_STARTEPOUT[4]),
  NRF_USBD_TASK_STARTEPOUT5 = offsetof(NRF_USBD_Type, TASKS_STARTEPOUT[5]),
  NRF_USBD_TASK_STARTEPOUT6 = offsetof(NRF_USBD_Type, TASKS_STARTEPOUT[6]),
  NRF_USBD_TASK_STARTEPOUT7 = offsetof(NRF_USBD_Type, TASKS_STARTEPOUT[7]),
  NRF_USBD_TASK_STARTISOOUT = offsetof(NRF_USBD_Type, TASKS_STARTISOOUT ),
  NRF_USBD_TASK_EP0RCVOUT = offsetof(NRF_USBD_Type, TASKS_EP0RCVOUT ),
  NRF_USBD_TASK_EP0STATUS = offsetof(NRF_USBD_Type, TASKS_EP0STATUS ),
  NRF_USBD_TASK_EP0STALL = offsetof(NRF_USBD_Type, TASKS_EP0STALL ),
  NRF_USBD_TASK_DRIVEDPDM = offsetof(NRF_USBD_Type, TASKS_DPDMDRIVE ),
  NRF_USBD_TASK_NODRIVEDPDM = offsetof(NRF_USBD_Type, TASKS_DPDMNODRIVE )
}
 USBD tasks. More...
 
enum  nrf_usbd_event_t {
  NRF_USBD_EVENT_USBRESET = offsetof(NRF_USBD_Type, EVENTS_USBRESET ),
  NRF_USBD_EVENT_STARTED = offsetof(NRF_USBD_Type, EVENTS_STARTED ),
  NRF_USBD_EVENT_ENDEPIN0 = offsetof(NRF_USBD_Type, EVENTS_ENDEPIN[0] ),
  NRF_USBD_EVENT_ENDEPIN1 = offsetof(NRF_USBD_Type, EVENTS_ENDEPIN[1] ),
  NRF_USBD_EVENT_ENDEPIN2 = offsetof(NRF_USBD_Type, EVENTS_ENDEPIN[2] ),
  NRF_USBD_EVENT_ENDEPIN3 = offsetof(NRF_USBD_Type, EVENTS_ENDEPIN[3] ),
  NRF_USBD_EVENT_ENDEPIN4 = offsetof(NRF_USBD_Type, EVENTS_ENDEPIN[4] ),
  NRF_USBD_EVENT_ENDEPIN5 = offsetof(NRF_USBD_Type, EVENTS_ENDEPIN[5] ),
  NRF_USBD_EVENT_ENDEPIN6 = offsetof(NRF_USBD_Type, EVENTS_ENDEPIN[6] ),
  NRF_USBD_EVENT_ENDEPIN7 = offsetof(NRF_USBD_Type, EVENTS_ENDEPIN[7] ),
  NRF_USBD_EVENT_EP0DATADONE = offsetof(NRF_USBD_Type, EVENTS_EP0DATADONE),
  NRF_USBD_EVENT_ENDISOIN0 = offsetof(NRF_USBD_Type, EVENTS_ENDISOIN ),
  NRF_USBD_EVENT_ENDEPOUT0 = offsetof(NRF_USBD_Type, EVENTS_ENDEPOUT[0]),
  NRF_USBD_EVENT_ENDEPOUT1 = offsetof(NRF_USBD_Type, EVENTS_ENDEPOUT[1]),
  NRF_USBD_EVENT_ENDEPOUT2 = offsetof(NRF_USBD_Type, EVENTS_ENDEPOUT[2]),
  NRF_USBD_EVENT_ENDEPOUT3 = offsetof(NRF_USBD_Type, EVENTS_ENDEPOUT[3]),
  NRF_USBD_EVENT_ENDEPOUT4 = offsetof(NRF_USBD_Type, EVENTS_ENDEPOUT[4]),
  NRF_USBD_EVENT_ENDEPOUT5 = offsetof(NRF_USBD_Type, EVENTS_ENDEPOUT[5]),
  NRF_USBD_EVENT_ENDEPOUT6 = offsetof(NRF_USBD_Type, EVENTS_ENDEPOUT[6]),
  NRF_USBD_EVENT_ENDEPOUT7 = offsetof(NRF_USBD_Type, EVENTS_ENDEPOUT[7]),
  NRF_USBD_EVENT_ENDISOOUT0 = offsetof(NRF_USBD_Type, EVENTS_ENDISOOUT ),
  NRF_USBD_EVENT_SOF = offsetof(NRF_USBD_Type, EVENTS_SOF ),
  NRF_USBD_EVENT_USBEVENT = offsetof(NRF_USBD_Type, EVENTS_USBEVENT ),
  NRF_USBD_EVENT_EP0SETUP = offsetof(NRF_USBD_Type, EVENTS_EP0SETUP ),
  NRF_USBD_EVENT_DATAEP = offsetof(NRF_USBD_Type, EVENTS_EPDATA ),
  NRF_USBD_EVENT_ACCESSFAULT = offsetof(NRF_USBD_Type, EVENTS_ACCESSFAULT)
}
 USBD events. More...
 
enum  nrf_usbd_short_mask_t {
  NRF_USBD_SHORT_EP0DATADONE_STARTEPIN0_MASK = USBD_SHORTS_EP0DATADONE_STARTEPIN0_Msk,
  NRF_USBD_SHORT_EP0DATADONE_STARTEPOUT0_MASK = USBD_SHORTS_EP0DATADONE_STARTEPOUT0_Msk,
  NRF_USBD_SHORT_EP0DATADONE_EP0STATUS_MASK = USBD_SHORTS_EP0DATADONE_EP0STATUS_Msk,
  NRF_USBD_SHORT_ENDEPOUT0_EP0STATUS_MASK = USBD_SHORTS_ENDEPOUT0_EP0STATUS_Msk,
  NRF_USBD_SHORT_ENDEPOUT0_EP0RCVOUT_MASK = USBD_SHORTS_ENDEPOUT0_EP0RCVOUT_Msk
}
 USBD shorts. More...
 
enum  nrf_usbd_int_mask_t {
  NRF_USBD_INT_USBRESET_MASK = USBD_INTEN_USBRESET_Msk,
  NRF_USBD_INT_STARTED_MASK = USBD_INTEN_STARTED_Msk,
  NRF_USBD_INT_ENDEPIN0_MASK = USBD_INTEN_ENDEPIN0_Msk,
  NRF_USBD_INT_ENDEPIN1_MASK = USBD_INTEN_ENDEPIN1_Msk,
  NRF_USBD_INT_ENDEPIN2_MASK = USBD_INTEN_ENDEPIN2_Msk,
  NRF_USBD_INT_ENDEPIN3_MASK = USBD_INTEN_ENDEPIN3_Msk,
  NRF_USBD_INT_ENDEPIN4_MASK = USBD_INTEN_ENDEPIN4_Msk,
  NRF_USBD_INT_ENDEPIN5_MASK = USBD_INTEN_ENDEPIN5_Msk,
  NRF_USBD_INT_ENDEPIN6_MASK = USBD_INTEN_ENDEPIN6_Msk,
  NRF_USBD_INT_ENDEPIN7_MASK = USBD_INTEN_ENDEPIN7_Msk,
  NRF_USBD_INT_EP0DATADONE_MASK = USBD_INTEN_EP0DATADONE_Msk,
  NRF_USBD_INT_ENDISOIN0_MASK = USBD_INTEN_ENDISOIN_Msk,
  NRF_USBD_INT_ENDEPOUT0_MASK = USBD_INTEN_ENDEPOUT0_Msk,
  NRF_USBD_INT_ENDEPOUT1_MASK = USBD_INTEN_ENDEPOUT1_Msk,
  NRF_USBD_INT_ENDEPOUT2_MASK = USBD_INTEN_ENDEPOUT2_Msk,
  NRF_USBD_INT_ENDEPOUT3_MASK = USBD_INTEN_ENDEPOUT3_Msk,
  NRF_USBD_INT_ENDEPOUT4_MASK = USBD_INTEN_ENDEPOUT4_Msk,
  NRF_USBD_INT_ENDEPOUT5_MASK = USBD_INTEN_ENDEPOUT5_Msk,
  NRF_USBD_INT_ENDEPOUT6_MASK = USBD_INTEN_ENDEPOUT6_Msk,
  NRF_USBD_INT_ENDEPOUT7_MASK = USBD_INTEN_ENDEPOUT7_Msk,
  NRF_USBD_INT_ENDISOOUT0_MASK = USBD_INTEN_ENDISOOUT_Msk,
  NRF_USBD_INT_SOF_MASK = USBD_INTEN_SOF_Msk,
  NRF_USBD_INT_USBEVENT_MASK = USBD_INTEN_USBEVENT_Msk,
  NRF_USBD_INT_EP0SETUP_MASK = USBD_INTEN_EP0SETUP_Msk,
  NRF_USBD_INT_DATAEP_MASK = USBD_INTEN_EPDATA_Msk,
  NRF_USBD_INT_ACCESSFAULT_MASK = USBD_INTEN_ACCESSFAULT_Msk
}
 USBD interrupts. More...
 
enum  nrf_usbd_eventcause_mask_t {
  NRF_USBD_EVENTCAUSE_ISOOUTCRC_MASK = USBD_EVENTCAUSE_ISOOUTCRC_Msk,
  NRF_USBD_EVENTCAUSE_SUSPEND_MASK = USBD_EVENTCAUSE_SUSPEND_Msk,
  NRF_USBD_EVENTCAUSE_RESUME_MASK = USBD_EVENTCAUSE_RESUME_Msk,
  NRF_USBD_EVENTCAUSE_READY_MASK = USBD_EVENTCAUSE_READY_Msk,
  NRF_USBD_EVENTCAUSE_WUREQ_MASK = (1U << 10)
}
 EVENTCAUSE register bit masks. More...
 
enum  nrf_usbd_busstate_t {
  NRF_USBD_BUSSTATE_DM_MASK = USBD_BUSSTATE_DM_Msk,
  NRF_USBD_BUSSTATE_DP_MASK = USBD_BUSSTATE_DP_Msk,
  NRF_USBD_BUSSTATE_DPDM_LL = (USBD_BUSSTATE_DM_Low << USBD_BUSSTATE_DM_Pos) | (USBD_BUSSTATE_DP_Low << USBD_BUSSTATE_DP_Pos),
  NRF_USBD_BUSSTATE_DPDM_HL = (USBD_BUSSTATE_DM_Low << USBD_BUSSTATE_DM_Pos) | (USBD_BUSSTATE_DP_High << USBD_BUSSTATE_DP_Pos),
  NRF_USBD_BUSSTATE_DPDM_LH = (USBD_BUSSTATE_DM_High << USBD_BUSSTATE_DM_Pos) | (USBD_BUSSTATE_DP_Low << USBD_BUSSTATE_DP_Pos),
  NRF_USBD_BUSSTATE_DPDM_HH = (USBD_BUSSTATE_DM_High << USBD_BUSSTATE_DM_Pos) | (USBD_BUSSTATE_DP_High << USBD_BUSSTATE_DP_Pos),
  NRF_USBD_BUSSTATE_J = NRF_USBD_BUSSTATE_DPDM_HL,
  NRF_USBD_BUSSTATE_K = NRF_USBD_BUSSTATE_DPDM_LH,
  NRF_USBD_BUSSTATE_SE0 = NRF_USBD_BUSSTATE_DPDM_LL,
  NRF_USBD_BUSSTATE_SE1 = NRF_USBD_BUSSTATE_DPDM_HH
}
 BUSSTATE register bit masks. More...
 
enum  nrf_usbd_dpdmvalue_t {
  NRF_USBD_DPDMVALUE_RESUME = USBD_DPDMVALUE_STATE_Resume,
  NRF_USBD_DPDMVALUE_J = USBD_DPDMVALUE_STATE_J,
  NRF_USBD_DPMVALUE_K = USBD_DPDMVALUE_STATE_K
}
 DPDMVALUE register. More...
 
enum  nrf_usbd_dtoggle_t {
  NRF_USBD_DTOGGLE_NOP = USBD_DTOGGLE_VALUE_Nop,
  NRF_USBD_DTOGGLE_DATA0 = USBD_DTOGGLE_VALUE_Data0,
  NRF_USBD_DTOGGLE_DATA1 = USBD_DTOGGLE_VALUE_Data1
}
 Dtoggle value or operation. More...
 
enum  nrf_usbd_epstatus_mask_t {
  NRF_USBD_EPSTATUS_EPIN0_MASK = USBD_EPSTATUS_EPIN0_Msk,
  NRF_USBD_EPSTATUS_EPIN1_MASK = USBD_EPSTATUS_EPIN1_Msk,
  NRF_USBD_EPSTATUS_EPIN2_MASK = USBD_EPSTATUS_EPIN2_Msk,
  NRF_USBD_EPSTATUS_EPIN3_MASK = USBD_EPSTATUS_EPIN3_Msk,
  NRF_USBD_EPSTATUS_EPIN4_MASK = USBD_EPSTATUS_EPIN4_Msk,
  NRF_USBD_EPSTATUS_EPIN5_MASK = USBD_EPSTATUS_EPIN5_Msk,
  NRF_USBD_EPSTATUS_EPIN6_MASK = USBD_EPSTATUS_EPIN6_Msk,
  NRF_USBD_EPSTATUS_EPIN7_MASK = USBD_EPSTATUS_EPIN7_Msk,
  NRF_USBD_EPSTATUS_EPOUT0_MASK = USBD_EPSTATUS_EPOUT0_Msk,
  NRF_USBD_EPSTATUS_EPOUT1_MASK = USBD_EPSTATUS_EPOUT1_Msk,
  NRF_USBD_EPSTATUS_EPOUT2_MASK = USBD_EPSTATUS_EPOUT2_Msk,
  NRF_USBD_EPSTATUS_EPOUT3_MASK = USBD_EPSTATUS_EPOUT3_Msk,
  NRF_USBD_EPSTATUS_EPOUT4_MASK = USBD_EPSTATUS_EPOUT4_Msk,
  NRF_USBD_EPSTATUS_EPOUT5_MASK = USBD_EPSTATUS_EPOUT5_Msk,
  NRF_USBD_EPSTATUS_EPOUT6_MASK = USBD_EPSTATUS_EPOUT6_Msk,
  NRF_USBD_EPSTATUS_EPOUT7_MASK = USBD_EPSTATUS_EPOUT7_Msk
}
 EPSTATUS bit masks.
 
enum  nrf_usbd_dataepstatus_mask_t {
  NRF_USBD_EPDATASTATUS_EPIN1_MASK = USBD_EPDATASTATUS_EPIN1_Msk,
  NRF_USBD_EPDATASTATUS_EPIN2_MASK = USBD_EPDATASTATUS_EPIN2_Msk,
  NRF_USBD_EPDATASTATUS_EPIN3_MASK = USBD_EPDATASTATUS_EPIN3_Msk,
  NRF_USBD_EPDATASTATUS_EPIN4_MASK = USBD_EPDATASTATUS_EPIN4_Msk,
  NRF_USBD_EPDATASTATUS_EPIN5_MASK = USBD_EPDATASTATUS_EPIN5_Msk,
  NRF_USBD_EPDATASTATUS_EPIN6_MASK = USBD_EPDATASTATUS_EPIN6_Msk,
  NRF_USBD_EPDATASTATUS_EPIN7_MASK = USBD_EPDATASTATUS_EPIN7_Msk,
  NRF_USBD_EPDATASTATUS_EPOUT1_MASK = USBD_EPDATASTATUS_EPOUT1_Msk,
  NRF_USBD_EPDATASTATUS_EPOUT2_MASK = USBD_EPDATASTATUS_EPOUT2_Msk,
  NRF_USBD_EPDATASTATUS_EPOUT3_MASK = USBD_EPDATASTATUS_EPOUT3_Msk,
  NRF_USBD_EPDATASTATUS_EPOUT4_MASK = USBD_EPDATASTATUS_EPOUT4_Msk,
  NRF_USBD_EPDATASTATUS_EPOUT5_MASK = USBD_EPDATASTATUS_EPOUT5_Msk,
  NRF_USBD_EPDATASTATUS_EPOUT6_MASK = USBD_EPDATASTATUS_EPOUT6_Msk,
  NRF_USBD_EPDATASTATUS_EPOUT7_MASK = USBD_EPDATASTATUS_EPOUT7_Msk
}
 DATAEPSTATUS bit masks.
 
enum  nrf_usbd_isosplit_t {
  NRF_USBD_ISOSPLIT_OneDir = USBD_ISOSPLIT_SPLIT_OneDir,
  NRF_USBD_ISOSPLIT_Half = USBD_ISOSPLIT_SPLIT_HalfIN
}
 ISOSPLIT configurations. More...
 

Functions

__STATIC_INLINE void nrf_usbd_task_trigger (nrf_usbd_task_t task)
 Function for activating a specific USBD task. More...
 
__STATIC_INLINE uint32_t nrf_usbd_task_address_get (nrf_usbd_task_t task)
 Function for returning the address of a specific USBD task register. More...
 
__STATIC_INLINE void nrf_usbd_event_clear (nrf_usbd_event_t event)
 Function for clearing a specific event. More...
 
__STATIC_INLINE bool nrf_usbd_event_check (nrf_usbd_event_t event)
 Function for returning the state of a specific event. More...
 
__STATIC_INLINE bool nrf_usbd_event_get_and_clear (nrf_usbd_event_t event)
 Function for getting and clearing the state of specific event. More...
 
__STATIC_INLINE uint32_t nrf_usbd_event_address_get (nrf_usbd_event_t event)
 Function for returning the address of a specific USBD event register. More...
 
__STATIC_INLINE void nrf_usbd_shorts_enable (uint32_t short_mask)
 Function for setting a shortcut. More...
 
__STATIC_INLINE void nrf_usbd_shorts_disable (uint32_t short_mask)
 Function for clearing shortcuts. More...
 
__STATIC_INLINE uint32_t nrf_usbd_shorts_get (void)
 Get the shorts mask. More...
 
__STATIC_INLINE void nrf_usbd_int_enable (uint32_t int_mask)
 Function for enabling selected interrupts. More...
 
__STATIC_INLINE bool nrf_usbd_int_enable_check (uint32_t int_mask)
 Function for retrieving the state of selected interrupts. More...
 
__STATIC_INLINE uint32_t nrf_usbd_int_enable_get (void)
 Function for retrieving the information about enabled interrupts. More...
 
__STATIC_INLINE void nrf_usbd_int_disable (uint32_t int_mask)
 Function for disabling selected interrupts. More...
 
__STATIC_INLINE void nrf_usbd_enable (void)
 Function for enabling USBD.
 
__STATIC_INLINE void nrf_usbd_disable (void)
 Function for disabling USBD.
 
__STATIC_INLINE uint32_t nrf_usbd_eventcause_get (void)
 Function for getting EVENTCAUSE register. More...
 
__STATIC_INLINE void nrf_usbd_eventcause_clear (uint32_t flags)
 Function for clearing EVENTCAUSE flags. More...
 
__STATIC_INLINE uint32_t nrf_usbd_eventcause_get_and_clear (void)
 Function for getting EVENTCAUSE register and clear flags that are set. More...
 
__STATIC_INLINE nrf_usbd_busstate_t nrf_usbd_busstate_get (void)
 Function for getting BUSSTATE register value. More...
 
__STATIC_INLINE uint32_t nrf_usbd_haltedep (uint8_t ep)
 Function for getting HALTEDEPIN register value. More...
 
__STATIC_INLINE bool nrf_usbd_ep_is_stall (uint8_t ep)
 Function for checking if selected endpoint is stalled. More...
 
__STATIC_INLINE uint32_t nrf_usbd_epstatus_get (void)
 Function for getting EPSTATUS register value. More...
 
__STATIC_INLINE void nrf_usbd_epstatus_clear (uint32_t flags)
 Function for clearing EPSTATUS register value. More...
 
__STATIC_INLINE uint32_t nrf_usbd_epstatus_get_and_clear (void)
 Function for getting and clearing EPSTATUS register value. More...
 
__STATIC_INLINE uint32_t nrf_usbd_epdatastatus_get (void)
 Function for getting DATAEPSTATUS register value. More...
 
__STATIC_INLINE void nrf_usbd_epdatastatus_clear (uint32_t flags)
 Function for clearing DATAEPSTATUS register value. More...
 
__STATIC_INLINE uint32_t nrf_usbd_epdatastatus_get_and_clear (void)
 Function for getting and clearing DATAEPSTATUS register value. More...
 
__STATIC_INLINE size_t nrf_usbd_epout_size_get (uint8_t ep)
 Function for getting number of received bytes on selected endpoint. More...
 
__STATIC_INLINE size_t nrf_usbd_episoout_size_get (uint8_t ep)
 Function for getting number of received bytes on isochronous endpoint. More...
 
__STATIC_INLINE void nrf_usbd_epout_clear (uint8_t ep)
 Function for clearing out endpoint to accept any new incoming traffic. More...
 
__STATIC_INLINE void nrf_usbd_pullup_enable (void)
 Function for enabling USB pullup.
 
__STATIC_INLINE void nrf_usbd_pullup_disable (void)
 Function for disabling USB pullup.
 
__STATIC_INLINE bool nrf_usbd_pullup_check (void)
 Function for returning current USB pullup state. More...
 
__STATIC_INLINE void nrf_usbd_dpdmvalue_set (nrf_usbd_dpdmvalue_t val)
 Function for configuring the value to be forced on the bus on DRIVEDPDM task. More...
 
__STATIC_INLINE void nrf_usbd_dtoggle_set (uint8_t ep, nrf_usbd_dtoggle_t op)
 Function for setting data toggle. More...
 
__STATIC_INLINE nrf_usbd_dtoggle_t nrf_usbd_dtoggle_get (uint8_t ep)
 Function for getting data toggle. More...
 
__STATIC_INLINE bool nrf_usbd_ep_enable_check (uint8_t ep)
 Function for checking if endpoint is enabled. More...
 
__STATIC_INLINE void nrf_usbd_ep_enable (uint8_t ep)
 Function for enabling selected endpoint. More...
 
__STATIC_INLINE void nrf_usbd_ep_disable (uint8_t ep)
 Function for disabling selected endpoint. More...
 
__STATIC_INLINE void nrf_usbd_ep_all_disable (void)
 Function for disabling all endpoints. More...
 
__STATIC_INLINE void nrf_usbd_ep_stall (uint8_t ep)
 Function for stalling selected endpoint. More...
 
__STATIC_INLINE void nrf_usbd_ep_unstall (uint8_t ep)
 Function for unstalling selected endpoint. More...
 
__STATIC_INLINE void nrf_usbd_isosplit_set (nrf_usbd_isosplit_t split)
 Function for configuration of isochronous buffer splitting. More...
 
__STATIC_INLINE nrf_usbd_isosplit_t nrf_usbd_isosplit_get (void)
 Function for getting the isochronous buffer splitting configuration. More...
 
__STATIC_INLINE uint32_t nrf_usbd_framecntr_get (void)
 Function for getting current frame counter. More...
 
__STATIC_INLINE void nrf_usbd_lowpower_enable (void)
 Function for entering into low power mode. More...
 
__STATIC_INLINE void nrf_usbd_lowpower_disable (void)
 Function for exiting from low power mode. More...
 
__STATIC_INLINE bool nrf_usbd_lowpower_check (void)
 Function for checking the state of the low power mode. More...
 
__STATIC_INLINE void nrf_usbd_ep_easydma_set (uint8_t ep, uint32_t ptr, uint32_t maxcnt)
 Function for configuring EasyDMA channel. More...
 
__STATIC_INLINE uint32_t nrf_usbd_ep_amount_get (uint8_t ep)
 Function for getting number of transferred bytes. More...
 

Setup command frame functions

Functions for setup command frame parts access

__STATIC_INLINE uint8_t nrf_usbd_setup_bmrequesttype_get (void)
 Function for reading BMREQUESTTYPE - part of SETUP packet. More...
 
__STATIC_INLINE uint8_t nrf_usbd_setup_brequest_get (void)
 Function for reading BMREQUEST - part of SETUP packet. More...
 
__STATIC_INLINE uint16_t nrf_usbd_setup_wvalue_get (void)
 Function for reading WVALUE - part of SETUP packet. More...
 
__STATIC_INLINE uint16_t nrf_usbd_setup_windex_get (void)
 Function for reading WINDEX - part of SETUP packet. More...
 
__STATIC_INLINE uint16_t nrf_usbd_setup_wlength_get (void)
 Function for reading WLENGTH - part of SETUP packet. More...
 

Detailed Description

nRF52840 only: Hardware access layer for Universal Serial Bus Device (USBD) peripheral.

Macro Definition Documentation

#define NRF_USBD_EP_NR_GET (   ep)    ((uint8_t)(((uint8_t)(ep)) & 0xFU))

Macro for extracting the endpoint number from endpoint identifier.

Macro that strips out the information about endpoint direction.

Parameters
[in]epEndpoint identifier
Returns
Endpoint number
#define NRF_USBD_EP_VALIDATE (   ep)
Value:

Macro for checking if given number is valid endpoint number.

Parameters
epEndpoint number to check
Return values
trueThe endpoint is valid
falseThe endpoint is not valid
#define NRF_USBD_EPIN (   epnr)    (((uint8_t)(epnr)) | NRF_USBD_EP_DIR_IN)

Macro for making IN endpoint identifier from endpoint number.

Macro that sets direction bit to make IN endpoint

Parameters
[in]epnrEndpoint number
Returns
IN Endpoint identifier
#define NRF_USBD_EPIN_CHECK (   ep)    ( (((uint8_t)(ep)) & NRF_USBD_EP_DIR_Msk) == NRF_USBD_EP_DIR_IN )

Macro for checking endpoint direction.

This macro checks if given endpoint has IN direction

Parameters
epEndpoint identifier
Return values
trueIf the endpoint direction is IN
falseIf the endpoint direction is OUT
#define NRF_USBD_EPIN_CNT   9

Total number of IN endpoints.

Total number of IN endpoint (including ISOCHRONOUS).

#define NRF_USBD_EPISO_CHECK (   ep)    (NRF_USBD_EP_NR_GET(ep) >= NRF_USBD_EPISO_FIRST)

Macro for checking if endpoint is isochronous.

Parameters
epIt can be endpoint identifier or just endpoint number to check
Return values
trueThe endpoint is isochronous type
falseThe endpoint is bulk of interrupt type
#define NRF_USBD_EPISO_FIRST   8

First isochronous endpoint number.

The number of the first isochronous endpoint

#define NRF_USBD_EPISOOUT_NO_DATA   ((size_t)(-1))

Not isochronous data frame received.

Special value returned by nrf_usbd_episoout_size_get function that means that data frame was not received at all. This allows differentiate between situations when zero size data comes or no data comes at all on isochronous endpoint.

#define NRF_USBD_EPOUT (   epnr)    (((uint8_t)(epnr)) | NRF_USBD_EP_DIR_OUT)

Macro for making OUT endpoint identifier from endpoint number.

Macro that sets direction bit to make OUT endpoint

Parameters
[in]epnrEndpoint number
Returns
OUT Endpoint identifier
#define NRF_USBD_EPOUT_CHECK (   ep)    ( (((uint8_t)(ep)) & NRF_USBD_EP_DIR_Msk) == NRF_USBD_EP_DIR_OUT )

Macro for checking endpoint direction.

This macro checks if given endpoint has OUT direction

Parameters
epEndpoint identifier
Return values
trueIf the endpoint direction is OUT
falseIf the endpoint direction is IN
#define NRF_USBD_EPOUT_CNT   9

Total number of OUT endpoints.

Total number of OUT endpoint (including ISOCHRONOUS).

#define NRF_USBD_FRAMECNTR_SIZE   ( (USBD_FRAMECNTR_FRAMECNTR_Msk >> USBD_FRAMECNTR_FRAMECNTR_Pos) + 1UL )

Frame counter size.

The number of counts that can be fitted into frame counter

Enumeration Type Documentation

BUSSTATE register bit masks.

Enumerator
NRF_USBD_BUSSTATE_DM_MASK 

Negative line mask

NRF_USBD_BUSSTATE_DP_MASK 

Positive line mask

NRF_USBD_BUSSTATE_DPDM_LL 

Both lines are low

NRF_USBD_BUSSTATE_DPDM_HL 

Positive line is high, negative line is low

NRF_USBD_BUSSTATE_DPDM_LH 

Positive line is low, negative line is high

NRF_USBD_BUSSTATE_DPDM_HH 

Both lines are high

NRF_USBD_BUSSTATE_J 

J state

NRF_USBD_BUSSTATE_K 

K state

NRF_USBD_BUSSTATE_SE0 

Single ended 0

NRF_USBD_BUSSTATE_SE1 

Single ended 1

DPDMVALUE register.

Enumerator
NRF_USBD_DPDMVALUE_RESUME 

Generate Resume signal. Signal is generated for 50 us or 5 ms, depending on bus state

NRF_USBD_DPDMVALUE_J 

D+ Forced high, D- forced low (J state)

NRF_USBD_DPMVALUE_K 

D+ Forced low, D- forced high (K state)

Dtoggle value or operation.

Enumerator
NRF_USBD_DTOGGLE_NOP 

No operation - do not change current data toggle on selected endpoint

NRF_USBD_DTOGGLE_DATA0 

Data toggle is DATA0 on selected endpoint

NRF_USBD_DTOGGLE_DATA1 

Data toggle is DATA1 on selected endpoint

USBD events.

Enumerator
NRF_USBD_EVENT_USBRESET 

Signals that a USB reset condition has been detected on the USB lines

NRF_USBD_EVENT_STARTED 

Confirms that the EPIN[n].PTR, EPIN[n].MAXCNT, EPIN[n].CONFIG, or EPOUT[n].PTR, EPOUT[n].MAXCNT and EPOUT[n].CONFIG registers have been captured on all endpoints reported in the EPSTATUS register

NRF_USBD_EVENT_ENDEPIN0 

The whole EPIN[0] buffer has been consumed. The RAM buffer can be accessed safely by software.

NRF_USBD_EVENT_ENDEPIN1 

The whole EPIN[1] buffer has been consumed. The RAM buffer can be accessed safely by software.

NRF_USBD_EVENT_ENDEPIN2 

The whole EPIN[2] buffer has been consumed. The RAM buffer can be accessed safely by software.

NRF_USBD_EVENT_ENDEPIN3 

The whole EPIN[3] buffer has been consumed. The RAM buffer can be accessed safely by software.

NRF_USBD_EVENT_ENDEPIN4 

The whole EPIN[4] buffer has been consumed. The RAM buffer can be accessed safely by software.

NRF_USBD_EVENT_ENDEPIN5 

The whole EPIN[5] buffer has been consumed. The RAM buffer can be accessed safely by software.

NRF_USBD_EVENT_ENDEPIN6 

The whole EPIN[6] buffer has been consumed. The RAM buffer can be accessed safely by software.

NRF_USBD_EVENT_ENDEPIN7 

The whole EPIN[7] buffer has been consumed. The RAM buffer can be accessed safely by software.

NRF_USBD_EVENT_EP0DATADONE 

An acknowledged data transfer has taken place on the control endpoint

NRF_USBD_EVENT_ENDISOIN0 

The whole ISOIN buffer has been consumed. The RAM buffer can be accessed safely by software.

NRF_USBD_EVENT_ENDEPOUT0 

The whole EPOUT[0] buffer has been consumed. The RAM buffer can be accessed safely by software.

NRF_USBD_EVENT_ENDEPOUT1 

The whole EPOUT[1] buffer has been consumed. The RAM buffer can be accessed safely by software.

NRF_USBD_EVENT_ENDEPOUT2 

The whole EPOUT[2] buffer has been consumed. The RAM buffer can be accessed safely by software.

NRF_USBD_EVENT_ENDEPOUT3 

The whole EPOUT[3] buffer has been consumed. The RAM buffer can be accessed safely by software.

NRF_USBD_EVENT_ENDEPOUT4 

The whole EPOUT[4] buffer has been consumed. The RAM buffer can be accessed safely by software.

NRF_USBD_EVENT_ENDEPOUT5 

The whole EPOUT[5] buffer has been consumed. The RAM buffer can be accessed safely by software.

NRF_USBD_EVENT_ENDEPOUT6 

The whole EPOUT[6] buffer has been consumed. The RAM buffer can be accessed safely by software.

NRF_USBD_EVENT_ENDEPOUT7 

The whole EPOUT[7] buffer has been consumed. The RAM buffer can be accessed safely by software.

NRF_USBD_EVENT_ENDISOOUT0 

The whole ISOOUT buffer has been consumed. The RAM buffer can be accessed safely by software.

NRF_USBD_EVENT_SOF 

Signals that a SOF (start of frame) condition has been detected on the USB lines

NRF_USBD_EVENT_USBEVENT 

An event or an error not covered by specific events has occurred, check EVENTCAUSE register to find the cause

NRF_USBD_EVENT_EP0SETUP 

A valid SETUP token has been received (and acknowledged) on the control endpoint

NRF_USBD_EVENT_DATAEP 

A data transfer has occurred on a data endpoint, indicated by the EPDATASTATUS register

NRF_USBD_EVENT_ACCESSFAULT 

>Access to an unavailable USB register has been attempted (software or EasyDMA)

EVENTCAUSE register bit masks.

Enumerator
NRF_USBD_EVENTCAUSE_ISOOUTCRC_MASK 

CRC error was detected on isochronous OUT endpoint 8.

NRF_USBD_EVENTCAUSE_SUSPEND_MASK 

Signals that the USB lines have been seen idle long enough for the device to enter suspend.

NRF_USBD_EVENTCAUSE_RESUME_MASK 

Signals that a RESUME condition (K state or activity restart) has been detected on the USB lines.

NRF_USBD_EVENTCAUSE_READY_MASK 

MAC is ready for normal operation, rised few us after USBD enabling

NRF_USBD_EVENTCAUSE_WUREQ_MASK 

The USBD peripheral has exited Low Power mode

USBD interrupts.

Enumerator
NRF_USBD_INT_USBRESET_MASK 

Enable or disable interrupt for USBRESET event

NRF_USBD_INT_STARTED_MASK 

Enable or disable interrupt for STARTED event

NRF_USBD_INT_ENDEPIN0_MASK 

Enable or disable interrupt for ENDEPIN[0] event

NRF_USBD_INT_ENDEPIN1_MASK 

Enable or disable interrupt for ENDEPIN[1] event

NRF_USBD_INT_ENDEPIN2_MASK 

Enable or disable interrupt for ENDEPIN[2] event

NRF_USBD_INT_ENDEPIN3_MASK 

Enable or disable interrupt for ENDEPIN[3] event

NRF_USBD_INT_ENDEPIN4_MASK 

Enable or disable interrupt for ENDEPIN[4] event

NRF_USBD_INT_ENDEPIN5_MASK 

Enable or disable interrupt for ENDEPIN[5] event

NRF_USBD_INT_ENDEPIN6_MASK 

Enable or disable interrupt for ENDEPIN[6] event

NRF_USBD_INT_ENDEPIN7_MASK 

Enable or disable interrupt for ENDEPIN[7] event

NRF_USBD_INT_EP0DATADONE_MASK 

Enable or disable interrupt for EP0DATADONE event

NRF_USBD_INT_ENDISOIN0_MASK 

Enable or disable interrupt for ENDISOIN[0] event

NRF_USBD_INT_ENDEPOUT0_MASK 

Enable or disable interrupt for ENDEPOUT[0] event

NRF_USBD_INT_ENDEPOUT1_MASK 

Enable or disable interrupt for ENDEPOUT[1] event

NRF_USBD_INT_ENDEPOUT2_MASK 

Enable or disable interrupt for ENDEPOUT[2] event

NRF_USBD_INT_ENDEPOUT3_MASK 

Enable or disable interrupt for ENDEPOUT[3] event

NRF_USBD_INT_ENDEPOUT4_MASK 

Enable or disable interrupt for ENDEPOUT[4] event

NRF_USBD_INT_ENDEPOUT5_MASK 

Enable or disable interrupt for ENDEPOUT[5] event

NRF_USBD_INT_ENDEPOUT6_MASK 

Enable or disable interrupt for ENDEPOUT[6] event

NRF_USBD_INT_ENDEPOUT7_MASK 

Enable or disable interrupt for ENDEPOUT[7] event

NRF_USBD_INT_ENDISOOUT0_MASK 

Enable or disable interrupt for ENDISOOUT[0] event

NRF_USBD_INT_SOF_MASK 

Enable or disable interrupt for SOF event

NRF_USBD_INT_USBEVENT_MASK 

Enable or disable interrupt for USBEVENT event

NRF_USBD_INT_EP0SETUP_MASK 

Enable or disable interrupt for EP0SETUP event

NRF_USBD_INT_DATAEP_MASK 

Enable or disable interrupt for EPDATA event

NRF_USBD_INT_ACCESSFAULT_MASK 

Enable or disable interrupt for ACCESSFAULT event

ISOSPLIT configurations.

Enumerator
NRF_USBD_ISOSPLIT_OneDir 

Full buffer dedicated to either iso IN or OUT

NRF_USBD_ISOSPLIT_Half 

Buffer divided in half

USBD shorts.

Enumerator
NRF_USBD_SHORT_EP0DATADONE_STARTEPIN0_MASK 

Shortcut between EP0DATADONE event and STARTEPIN0 task

NRF_USBD_SHORT_EP0DATADONE_STARTEPOUT0_MASK 

Shortcut between EP0DATADONE event and STARTEPOUT0 task

NRF_USBD_SHORT_EP0DATADONE_EP0STATUS_MASK 

Shortcut between EP0DATADONE event and EP0STATUS task

NRF_USBD_SHORT_ENDEPOUT0_EP0STATUS_MASK 

Shortcut between ENDEPOUT[0] event and EP0STATUS task

NRF_USBD_SHORT_ENDEPOUT0_EP0RCVOUT_MASK 

Shortcut between ENDEPOUT[0] event and EP0RCVOUT task

USBD tasks.

Enumerator
NRF_USBD_TASK_STARTEPIN0 

Captures the EPIN[0].PTR, EPIN[0].MAXCNT and EPIN[0].CONFIG registers values, and enables control endpoint IN 0 to respond to traffic from host

NRF_USBD_TASK_STARTEPIN1 

Captures the EPIN[1].PTR, EPIN[1].MAXCNT and EPIN[1].CONFIG registers values, and enables data endpoint IN 1 to respond to traffic from host

NRF_USBD_TASK_STARTEPIN2 

Captures the EPIN[2].PTR, EPIN[2].MAXCNT and EPIN[2].CONFIG registers values, and enables data endpoint IN 2 to respond to traffic from host

NRF_USBD_TASK_STARTEPIN3 

Captures the EPIN[3].PTR, EPIN[3].MAXCNT and EPIN[3].CONFIG registers values, and enables data endpoint IN 3 to respond to traffic from host

NRF_USBD_TASK_STARTEPIN4 

Captures the EPIN[4].PTR, EPIN[4].MAXCNT and EPIN[4].CONFIG registers values, and enables data endpoint IN 4 to respond to traffic from host

NRF_USBD_TASK_STARTEPIN5 

Captures the EPIN[5].PTR, EPIN[5].MAXCNT and EPIN[5].CONFIG registers values, and enables data endpoint IN 5 to respond to traffic from host

NRF_USBD_TASK_STARTEPIN6 

Captures the EPIN[6].PTR, EPIN[6].MAXCNT and EPIN[6].CONFIG registers values, and enables data endpoint IN 6 to respond to traffic from host

NRF_USBD_TASK_STARTEPIN7 

Captures the EPIN[7].PTR, EPIN[7].MAXCNT and EPIN[7].CONFIG registers values, and enables data endpoint IN 7 to respond to traffic from host

NRF_USBD_TASK_STARTISOIN 

Captures the ISOIN.PTR, ISOIN.MAXCNT and ISOIN.CONFIG registers values, and enables sending data on iso endpoint 8

NRF_USBD_TASK_STARTEPOUT0 

Captures the EPOUT[0].PTR, EPOUT[0].MAXCNT and EPOUT[0].CONFIG registers values, and enables control endpoint 0 to respond to traffic from host

NRF_USBD_TASK_STARTEPOUT1 

Captures the EPOUT[1].PTR, EPOUT[1].MAXCNT and EPOUT[1].CONFIG registers values, and enables data endpoint 1 to respond to traffic from host

NRF_USBD_TASK_STARTEPOUT2 

Captures the EPOUT[2].PTR, EPOUT[2].MAXCNT and EPOUT[2].CONFIG registers values, and enables data endpoint 2 to respond to traffic from host

NRF_USBD_TASK_STARTEPOUT3 

Captures the EPOUT[3].PTR, EPOUT[3].MAXCNT and EPOUT[3].CONFIG registers values, and enables data endpoint 3 to respond to traffic from host

NRF_USBD_TASK_STARTEPOUT4 

Captures the EPOUT[4].PTR, EPOUT[4].MAXCNT and EPOUT[4].CONFIG registers values, and enables data endpoint 4 to respond to traffic from host

NRF_USBD_TASK_STARTEPOUT5 

Captures the EPOUT[5].PTR, EPOUT[5].MAXCNT and EPOUT[5].CONFIG registers values, and enables data endpoint 5 to respond to traffic from host

NRF_USBD_TASK_STARTEPOUT6 

Captures the EPOUT[6].PTR, EPOUT[6].MAXCNT and EPOUT[6].CONFIG registers values, and enables data endpoint 6 to respond to traffic from host

NRF_USBD_TASK_STARTEPOUT7 

Captures the EPOUT[7].PTR, EPOUT[7].MAXCNT and EPOUT[7].CONFIG registers values, and enables data endpoint 7 to respond to traffic from host

NRF_USBD_TASK_STARTISOOUT 

Captures the ISOOUT.PTR, ISOOUT.MAXCNT and ISOOUT.CONFIG registers values, and enables receiving of data on iso endpoint 8

NRF_USBD_TASK_EP0RCVOUT 

Allows OUT data stage on control endpoint 0

NRF_USBD_TASK_EP0STATUS 

Allows status stage on control endpoint 0

NRF_USBD_TASK_EP0STALL 

STALLs data and status stage on control endpoint 0

NRF_USBD_TASK_DRIVEDPDM 

Forces D+ and D-lines to the state defined in the DPDMVALUE register

NRF_USBD_TASK_NODRIVEDPDM 

Stops forcing D+ and D- lines to any state (USB engine takes control)

Function Documentation

__STATIC_INLINE nrf_usbd_busstate_t nrf_usbd_busstate_get ( void  )

Function for getting BUSSTATE register value.

Returns
The value of BUSSTATE register
__STATIC_INLINE void nrf_usbd_dpdmvalue_set ( nrf_usbd_dpdmvalue_t  val)

Function for configuring the value to be forced on the bus on DRIVEDPDM task.

Selected state would be forced on the bus when NRF_USBD_TASK_DRIVEDPDM is set. The state would be removed from the bus on NRF_USBD_TASK_NODRIVEDPDM and the control would be returned to the USBD peripheral.

Parameters
valState to be set
__STATIC_INLINE nrf_usbd_dtoggle_t nrf_usbd_dtoggle_get ( uint8_t  ep)

Function for getting data toggle.

Get the current state of data toggling

Parameters
epEndpoint number to return the information about current data toggling
Return values
NRF_USBD_DTOGGLE_DATA0Data toggle is DATA0 on selected endpoint
NRF_USBD_DTOGGLE_DATA1Data toggle is DATA1 on selected endpoint
__STATIC_INLINE void nrf_usbd_dtoggle_set ( uint8_t  ep,
nrf_usbd_dtoggle_t  op 
)

Function for setting data toggle.

Configuration of current state of data toggling

Parameters
epEndpoint number with the information about its direction
opOperation to execute
__STATIC_INLINE void nrf_usbd_ep_all_disable ( void  )

Function for disabling all endpoints.

Auxiliary function to simply disable all aviable endpoints. It lefts only EP0 IN and OUT enabled.

__STATIC_INLINE uint32_t nrf_usbd_ep_amount_get ( uint8_t  ep)

Function for getting number of transferred bytes.

Get number of transferred bytes in the last transaction

Parameters
epEndpoint identifier
Returns
The content of the AMOUNT register
__STATIC_INLINE void nrf_usbd_ep_disable ( uint8_t  ep)

Function for disabling selected endpoint.

Disabled endpoint does not respond for the tokens on the USB bus

Parameters
epEndpoint id to disable
__STATIC_INLINE void nrf_usbd_ep_easydma_set ( uint8_t  ep,
uint32_t  ptr,
uint32_t  maxcnt 
)

Function for configuring EasyDMA channel.

Configures EasyDMA for the transfer.

Parameters
epEndpoint identifier (with direction)
ptrPointer to the data
maxcntNumber of bytes to transfer
__STATIC_INLINE void nrf_usbd_ep_enable ( uint8_t  ep)

Function for enabling selected endpoint.

Enabled endpoint responds for the tokens on the USB bus

Parameters
epEndpoint id to enable
__STATIC_INLINE bool nrf_usbd_ep_enable_check ( uint8_t  ep)

Function for checking if endpoint is enabled.

Parameters
epEndpoint id to check
Return values
trueEndpoint is enabled
falseEndpoint is disabled
__STATIC_INLINE bool nrf_usbd_ep_is_stall ( uint8_t  ep)

Function for checking if selected endpoint is stalled.

Function to be used as a syntax sweeter for nrf_usbd_haltedep.

Also as the isochronous endpoint cannot be halted - it returns always false if isochronous endpoint is checked.

Parameters
epEndpoint number with IN/OUT flag
Returns
The information if the enepoint is halted.
__STATIC_INLINE void nrf_usbd_ep_stall ( uint8_t  ep)

Function for stalling selected endpoint.

Parameters
epEndpoint identifier
Note
This function cannot be called on isochronous endpoint
__STATIC_INLINE void nrf_usbd_ep_unstall ( uint8_t  ep)

Function for unstalling selected endpoint.

Parameters
epEndpoint identifier
Note
This function cannot be called on isochronous endpoint
__STATIC_INLINE void nrf_usbd_epdatastatus_clear ( uint32_t  flags)

Function for clearing DATAEPSTATUS register value.

Parameters
flagsFlags defined in nrf_usbd_dataepstatus_mask_t
__STATIC_INLINE uint32_t nrf_usbd_epdatastatus_get ( void  )

Function for getting DATAEPSTATUS register value.

Returns
Flag values defined in nrf_usbd_dataepstatus_mask_t
__STATIC_INLINE uint32_t nrf_usbd_epdatastatus_get_and_clear ( void  )

Function for getting and clearing DATAEPSTATUS register value.

Function clears all flags in register set before returning its value.

Returns
Flag values defined in nrf_usbd_dataepstatus_mask_t
__STATIC_INLINE size_t nrf_usbd_episoout_size_get ( uint8_t  ep)

Function for getting number of received bytes on isochronous endpoint.

Parameters
epEndpoint identifier, has to be isochronous out endpoint.
Returns
Number of bytes received or NRF_USBD_EPISOOUT_NO_DATA
__STATIC_INLINE void nrf_usbd_epout_clear ( uint8_t  ep)

Function for clearing out endpoint to accept any new incoming traffic.

Parameters
epep Endpoint identifier. Only OUT Interrupt/Bulk endpoints are accepted.
__STATIC_INLINE size_t nrf_usbd_epout_size_get ( uint8_t  ep)

Function for getting number of received bytes on selected endpoint.

Parameters
epEndpoint identifier.
Returns
Number of received bytes.
Note
This function may be used on Bulk/Interrupt and Isochronous endpoints.
For the function that returns different value for ISOOUT zero transfer or no transfer at all, see nrf_usbd_episoout_size_get function. This function would return 0 for both cases.
__STATIC_INLINE void nrf_usbd_epstatus_clear ( uint32_t  flags)

Function for clearing EPSTATUS register value.

Parameters
flagsFlags defined in nrf_usbd_epstatus_mask_t
__STATIC_INLINE uint32_t nrf_usbd_epstatus_get ( void  )

Function for getting EPSTATUS register value.

Returns
Flag values defined in nrf_usbd_epstatus_mask_t
__STATIC_INLINE uint32_t nrf_usbd_epstatus_get_and_clear ( void  )

Function for getting and clearing EPSTATUS register value.

Function clears all flags in register set before returning its value.

Returns
Flag values defined in nrf_usbd_epstatus_mask_t
__STATIC_INLINE uint32_t nrf_usbd_event_address_get ( nrf_usbd_event_t  event)

Function for returning the address of a specific USBD event register.

Parameters
eventEvent.
Returns
Address.
__STATIC_INLINE bool nrf_usbd_event_check ( nrf_usbd_event_t  event)

Function for returning the state of a specific event.

Parameters
eventEvent.
Return values
trueIf the event is set.
falseIf the event is not set.
__STATIC_INLINE void nrf_usbd_event_clear ( nrf_usbd_event_t  event)

Function for clearing a specific event.

Parameters
eventEvent.
__STATIC_INLINE bool nrf_usbd_event_get_and_clear ( nrf_usbd_event_t  event)

Function for getting and clearing the state of specific event.

This function checks the state of the event and clears it.

Parameters
eventEvent.
Return values
trueIf the event was set.
falseIf the event was not set.
__STATIC_INLINE void nrf_usbd_eventcause_clear ( uint32_t  flags)

Function for clearing EVENTCAUSE flags.

Parameters
flagsFlags defined in nrf_usbd_eventcause_mask_t
__STATIC_INLINE uint32_t nrf_usbd_eventcause_get ( void  )

Function for getting EVENTCAUSE register.

Returns
Flag values defined in nrf_usbd_eventcause_mask_t
__STATIC_INLINE uint32_t nrf_usbd_eventcause_get_and_clear ( void  )

Function for getting EVENTCAUSE register and clear flags that are set.

The safest way to return current EVENTCAUSE register. All the flags that are returned would be cleared inside EVENTCAUSE register.

Returns
Flag values defined in nrf_usbd_eventcause_mask_t
__STATIC_INLINE uint32_t nrf_usbd_framecntr_get ( void  )

Function for getting current frame counter.

Returns
Current frame counter
__STATIC_INLINE uint32_t nrf_usbd_haltedep ( uint8_t  ep)

Function for getting HALTEDEPIN register value.

Parameters
epEndpoint number with IN/OUT flag
Returns
The value of HALTEDEPIN or HALTEDOUT register for selected endpoint
Note
Use this function for the response for GetStatus() request to endpoint. To check if endpoint is stalled in the code use nrf_usbd_ep_is_stall.
__STATIC_INLINE void nrf_usbd_int_disable ( uint32_t  int_mask)

Function for disabling selected interrupts.

Parameters
int_maskInterrupts mask.
__STATIC_INLINE void nrf_usbd_int_enable ( uint32_t  int_mask)

Function for enabling selected interrupts.

Parameters
int_maskInterrupts mask.
__STATIC_INLINE bool nrf_usbd_int_enable_check ( uint32_t  int_mask)

Function for retrieving the state of selected interrupts.

Parameters
int_maskInterrupts mask.
Return values
trueIf any of selected interrupts is enabled.
falseIf none of selected interrupts is enabled.
__STATIC_INLINE uint32_t nrf_usbd_int_enable_get ( void  )

Function for retrieving the information about enabled interrupts.

Returns
The flags of enabled interrupts.
__STATIC_INLINE nrf_usbd_isosplit_t nrf_usbd_isosplit_get ( void  )

Function for getting the isochronous buffer splitting configuration.

Get the current isochronous buffer splitting configuration.

Returns
Current configuration
__STATIC_INLINE void nrf_usbd_isosplit_set ( nrf_usbd_isosplit_t  split)

Function for configuration of isochronous buffer splitting.

Configure isochronous buffer splitting between IN and OUT endpoints.

Parameters
splitRequired configuration
__STATIC_INLINE bool nrf_usbd_lowpower_check ( void  )

Function for checking the state of the low power mode.

Return values
trueUSBD is in low power mode
falseUSBD is not in low power mode
__STATIC_INLINE void nrf_usbd_lowpower_disable ( void  )

Function for exiting from low power mode.

After this function is called the clock source for the USBD is connected internally. The NRF_USBD_EVENTCAUSE_WUREQ_MASK event would be generated and then the USBD registers may be accessed.

See Also
nrf_usbd_lowpower_enable
nrf_usbd_lowpower_check
__STATIC_INLINE void nrf_usbd_lowpower_enable ( void  )

Function for entering into low power mode.

After this function is called the clock source from the USBD is disconnected internally. After this function is called most of the USBD registers cannot be accessed anymore.

See Also
nrf_usbd_lowpower_disable
nrf_usbd_lowpower_check
__STATIC_INLINE bool nrf_usbd_pullup_check ( void  )

Function for returning current USB pullup state.

Return values
trueUSB pullup is enabled
falseUSB pullup is disabled
__STATIC_INLINE uint8_t nrf_usbd_setup_bmrequesttype_get ( void  )

Function for reading BMREQUESTTYPE - part of SETUP packet.

Returns
the value of BREQUESTTYPE on last received SETUP frame
__STATIC_INLINE uint8_t nrf_usbd_setup_brequest_get ( void  )

Function for reading BMREQUEST - part of SETUP packet.

Returns
the value of BREQUEST on last received SETUP frame
__STATIC_INLINE uint16_t nrf_usbd_setup_windex_get ( void  )

Function for reading WINDEX - part of SETUP packet.

Returns
the value of WINDEX on last received SETUP frame
__STATIC_INLINE uint16_t nrf_usbd_setup_wlength_get ( void  )

Function for reading WLENGTH - part of SETUP packet.

Returns
the value of WLENGTH on last received SETUP frame
__STATIC_INLINE uint16_t nrf_usbd_setup_wvalue_get ( void  )

Function for reading WVALUE - part of SETUP packet.

Returns
the value of WVALUE on last received SETUP frame
__STATIC_INLINE void nrf_usbd_shorts_disable ( uint32_t  short_mask)

Function for clearing shortcuts.

Parameters
short_maskShortcuts mask.
__STATIC_INLINE void nrf_usbd_shorts_enable ( uint32_t  short_mask)

Function for setting a shortcut.

Parameters
short_maskShortcuts mask.
__STATIC_INLINE uint32_t nrf_usbd_shorts_get ( void  )

Get the shorts mask.

Function returns shorts register.

Returns
Flags of currently enabled shortcuts
__STATIC_INLINE uint32_t nrf_usbd_task_address_get ( nrf_usbd_task_t  task)

Function for returning the address of a specific USBD task register.

Parameters
taskTask.
Returns
Task address.
__STATIC_INLINE void nrf_usbd_task_trigger ( nrf_usbd_task_t  task)

Function for activating a specific USBD task.

Parameters
taskTask.

Documentation feedback | Developer Zone | Subscribe | Updated