em_usbxpress_internal.h File Reference

Primary header file. Contains internal global declarations and definitions.

Version
5.4.0

License

Copyright 2016 Silicon Laboratories, Inc. http://www.silabs.com

This file is licensed under the Silabs License Agreement. See the file "Silabs_License_Agreement.txt" for details. Before using this software for any purpose, you must agree to the terms of that agreement.

Definition in file em_usbxpress_internal.h.

#include <stdint.h>
#include <stdbool.h>
#include "em_usb.h"

Macros

#define APIEA_GIE   0x01
 
#define APIEA_GIE_TEMP   0x02
 
#define SI_CP210X_GET_PART_NUMBER   0x370B
 Value.
 
#define SI_CP210X_REQUEST   0xFF
 Request.
 
#define SI_USBXPRESS_CLEAR_TO_SEND   0x0002
 Value.
 
#define SI_USBXPRESS_FLUSH_BUFFERS   0x0001
 Value.
 
#define SI_USBXPRESS_GET_VERSION   0x0008
 Value.
 
#define SI_USBXPRESS_NOT_CLEAR_TO_SEND   0x0004
 Value.
 
#define SI_USBXPRESS_PART_NUMBER_EFM32   0x81
 EFM32 USBXpress Part Number.
 
#define SI_USBXPRESS_PART_NUMBER_EFM8   0x80
 EFM8 USBXpress Part Number.
 
#define SI_USBXPRESS_REQUEST   0x02
 Request.
 
#define USBXCORE_MAXLEN   19
 
#define USBXPRESS_LIBRARY_VERSION   0x0500
 

Functions

void USBX_DeviceStateChangeCb (USBD_State_TypeDef oldState, USBD_State_TypeDef newState)
 USB device state change call-back.
 
int USBX_inXferCompleteCb (USB_Status_TypeDef, uint16_t, uint16_t remaining)
 USBXpress IN Endpoint Transfer Complete Callback.
 
void USBX_jumpCallback (void)
 Conditionally jumps to the user call-back routine.
 
int USBX_outXferCompleteCb (USB_Status_TypeDef, uint16_t, uint16_t remaining)
 USBXpress OUT Endpoint Transfer Complete Callback.
 
void USBX_ResetCb (void)
 USB Reset call-back.
 
int USBX_SetupCmdCb (const USB_Setup_TypeDef *setup)
 USB setup command call-back.
 
void USBXCORE_Read (uint8_t *, uint8_t *, uint8_t)
 
void USBXCORE_resetState (void)
 Resets internal USBXpress variables.
 
void USBXCORE_Write (uint8_t *, uint8_t *, uint8_t)
 

Variables

uint32_t USBXCORE_apiEa
 Enable or disable status of USB_API interrupts.
 
uint32_t USBXCORE_apiIntValue
 Byte holding the current USB_API interrupts.
 
uint32_t * USBXCORE_byteCountInPtr
 Pointer to variable holding number of bytes written.
 
uint32_t * USBXCORE_byteCountOutPtr
 Pointer to variable holding number of bytes read.
 
uint8_t USBXCORE_configDesc [32]
 Copy of configuration descriptor.
 
uint32_t USBXCORE_readSize
 Number of bytes sent to USBX_blockRead() as numBytes.
 
uint32_t USBXCORE_writeSize
 Number of bytes sent to USBX_blockWrite() as numBytes.
 

Macro Definition Documentation

#define APIEA_GIE   0x01

API Global Interrupt Enable

Definition at line 38 of file em_usbxpress_internal.h.

Referenced by USBX_apiCallbackDisable(), USBX_apiCallbackEnable(), USBX_DeviceStateChangeCb(), USBX_inXferCompleteCb(), USBX_outXferCompleteCb(), USBX_ResetCb(), and USBX_SetupCmdCb().

#define APIEA_GIE_TEMP   0x02

Temporary storage of API GIE bit when internally disabled

Definition at line 41 of file em_usbxpress_internal.h.

Referenced by USBX_SetupCmdCb().

#define USBXCORE_MAXLEN   19

Maximum length of array passed by USBXCORE_Read/Write

Definition at line 47 of file em_usbxpress_internal.h.

#define USBXPRESS_LIBRARY_VERSION   0x0500

USBXpress firmware library version Example: 0x0241 => v2.41

Definition at line 31 of file em_usbxpress_internal.h.

Referenced by USBX_getLibraryVersion().

Function Documentation

void USBX_DeviceStateChangeCb ( USBD_State_TypeDef  oldState,
USBD_State_TypeDef  newState 
)

USB device state change call-back.

Set new state and jump to user API call-back.

Definition at line 71 of file em_usbxpress_callback.c.

References APIEA_GIE, USBD_STATE_CONFIGURED, USBD_STATE_SUSPENDED, USBX_DEV_CONFIGURED, USBX_DEV_SUSPEND, USBX_jumpCallback(), USBXCORE_apiEa, USBXCORE_apiIntValue, and USBXCORE_resetState().

Referenced by USBX_init().

int USBX_inXferCompleteCb ( USB_Status_TypeDef  status,
uint16_t  xferred,
uint16_t  remaining 
)

USBXpress IN Endpoint Transfer Complete Callback.

Gets the number of IN bytes transferred and passes them to the user API call-back.

Definition at line 242 of file em_usbxpress_callback.c.

References APIEA_GIE, USB_FS_BULK_EP_MAXSIZE, USB_STATUS_OK, USBD_Write(), USBX_jumpCallback(), USBX_TX_COMPLETE, USBXCORE_apiEa, USBXCORE_apiIntValue, USBXCORE_byteCountInPtr, and USBXCORE_writeSize.

Referenced by USBX_blockWrite().

void USBX_jumpCallback ( void  )

Conditionally jumps to the user call-back routine.

If the user call-back routine is already in progress, this function does nothing. Otherwise, this function jumps to the call-back defined via USBX_callbackEnable().

Definition at line 254 of file em_usbxpress.c.

Referenced by USBX_DeviceStateChangeCb(), USBX_inXferCompleteCb(), USBX_outXferCompleteCb(), USBX_ResetCb(), and USBX_SetupCmdCb().

int USBX_outXferCompleteCb ( USB_Status_TypeDef  status,
uint16_t  xferred,
uint16_t  remaining 
)

USBXpress OUT Endpoint Transfer Complete Callback.

Gets the number of OUT bytes transferred and passes them to the user API call-back.

Definition at line 282 of file em_usbxpress_callback.c.

References APIEA_GIE, USB_STATUS_OK, USBD_Read(), USBX_jumpCallback(), USBX_RX_COMPLETE, USBX_RX_OVERRUN, USBXCORE_apiEa, USBXCORE_apiIntValue, USBXCORE_byteCountOutPtr, and USBXCORE_readSize.

Referenced by USBX_blockRead().

void USBX_ResetCb ( void  )

USB Reset call-back.

Jump to user API RESET call-back.

Definition at line 54 of file em_usbxpress_callback.c.

References APIEA_GIE, USBX_jumpCallback(), USBX_RESET, USBXCORE_apiEa, USBXCORE_apiIntValue, and USBXCORE_resetState().

Referenced by USBX_init().

void USBXCORE_resetState ( void  )

Resets internal USBXpress variables.

This function resets the internal USBXpress variables. It should be called after a cancel-type event (USBXpress Close, USB de-configure, FIFO flush, etc.).

Definition at line 266 of file em_usbxpress.c.

References USBXCORE_rxOverflowPacketAvailable, and USBXCORE_zlpActive.

Referenced by USBX_DeviceStateChangeCb(), USBX_ResetCb(), and USBX_SetupCmdCb().