MIOS32_USB


Data Structures

struct  TLineCoding

Defines

#define DSCR_DEVICE   1
#define DSCR_CONFIG   2
#define DSCR_STRING   3
#define DSCR_INTRFC   4
#define DSCR_ENDPNT   5
#define CS_INTERFACE   0x24
#define CS_ENDPOINT   0x25
#define LE_WORD(x)   ((x)&0xFF),((x)>>8)
#define SET_LINE_CODING   0x20
#define GET_LINE_CODING   0x21
#define SET_CONTROL_LINE_STATE   0x22
#define MIOS32_USB_MIDI_NUM_INTERFACES   1
#define MIOS32_USB_MIDI_INTERFACE_NUM   0x00
#define MIOS32_USB_MIDI_INTERFACE_OFFSET   1
#define MIOS32_USB_MIDI_SIZ_CLASS_DESC   (7+MIOS32_USB_MIDI_NUM_PORTS*(6+6+9+9)+9+(4+MIOS32_USB_MIDI_NUM_PORTS)+9+(4+MIOS32_USB_MIDI_NUM_PORTS))
#define MIOS32_USB_MIDI_SIZ_CONFIG_DESC   (9+MIOS32_USB_MIDI_USE_AC_INTERFACE*(9+9)+MIOS32_USB_MIDI_SIZ_CLASS_DESC)
#define MIOS32_USB_COM_NUM_INTERFACES   2
#define MIOS32_USB_COM_SIZ_CONFIG_DESC   58
#define MIOS32_USB_COM_CC_INTERFACE_IX   (MIOS32_USB_MIDI_INTERFACE_OFFSET + 0x00)
#define MIOS32_USB_COM_CD_INTERFACE_IX   (MIOS32_USB_MIDI_INTERFACE_OFFSET + 0x01)
#define MIOS32_USB_COM_INTERFACE_OFFSET   (MIOS32_USB_MIDI_INTERFACE_OFFSET + 2)
#define MIOS32_USB_NUM_INTERFACES   (MIOS32_USB_MIDI_NUM_INTERFACES + MIOS32_USB_COM_NUM_INTERFACES)
#define MIOS32_USB_SIZ_CONFIG_DESC   (9 + MIOS32_USB_MIDI_SIZ_CONFIG_DESC + MIOS32_USB_COM_SIZ_CONFIG_DESC)
#define MIOS32_USB_SIZ_DEVICE_DESC   18
#define BUFFER_SIZE   100
#define DSCR_DEVICE   1
#define DSCR_CONFIG   2
#define DSCR_STRING   3
#define DSCR_INTRFC   4
#define DSCR_ENDPNT   5
#define CS_INTERFACE   0x24
#define CS_ENDPOINT   0x25
#define IMR_MSK   (CNTR_CTRM | CNTR_RESETM)
#define MIOS32_USB_MIDI_NUM_INTERFACES   1
#define MIOS32_USB_MIDI_INTERFACE_NUM   0x00
#define MIOS32_USB_MIDI_INTERFACE_OFFSET   1
#define MIOS32_USB_MIDI_SIZ_CLASS_DESC   (7+MIOS32_USB_MIDI_NUM_PORTS*(6+6+9+9)+9+(4+MIOS32_USB_MIDI_NUM_PORTS)+9+(4+MIOS32_USB_MIDI_NUM_PORTS))
#define MIOS32_USB_MIDI_SIZ_CONFIG_DESC   (9+MIOS32_USB_MIDI_USE_AC_INTERFACE*(9+9)+MIOS32_USB_MIDI_SIZ_CLASS_DESC)
#define MIOS32_USB_COM_NUM_INTERFACES   2
#define MIOS32_USB_COM_SIZ_CONFIG_DESC   58
#define MIOS32_USB_COM_CC_INTERFACE_IX   (MIOS32_USB_MIDI_INTERFACE_OFFSET + 0x00)
#define MIOS32_USB_COM_CD_INTERFACE_IX   (MIOS32_USB_MIDI_INTERFACE_OFFSET + 0x01)
#define MIOS32_USB_COM_INTERFACE_OFFSET   (MIOS32_USB_MIDI_INTERFACE_OFFSET + 2)
#define MIOS32_USB_NUM_INTERFACES   (MIOS32_USB_MIDI_NUM_INTERFACES + MIOS32_USB_COM_NUM_INTERFACES)
#define MIOS32_USB_SIZ_CONFIG_DESC   (9 + MIOS32_USB_MIDI_SIZ_CONFIG_DESC + MIOS32_USB_COM_SIZ_CONFIG_DESC)
#define MIOS32_USB_SIZ_DEVICE_DESC   18

Typedefs

typedef enum _DEVICE_STATE DEVICE_STATE

Enumerations

enum  _DEVICE_STATE {
  UNCONNECTED, ATTACHED, POWERED, SUSPENDED,
  ADDRESSED, CONFIGURED
}

Functions

s32 MIOS32_USB_Init (u32 mode)
void USB_IRQHandler (void)
s32 MIOS32_USB_IsInitialized (void)
void USB_LP_CAN1_RX0_IRQHandler (void)

Variables

DEVICE_INFO * pInformation
DEVICE Device_Table
DEVICE_PROP * pProperty
USER_STANDARD_REQUESTS * pUser_Standard_Requests
void(*[7]) pEpInt_IN (void)
void(*[7]) pEpInt_OUT (void)

Detailed Description

USB driver for MIOS32

Uses LPCUSB driver from Bertrik Sikken (bertrik@sikken.nl) which is installed under $MIOS32_PATH/drivers/LPC17xx/usbstack -> http://sourceforge.net/projects/lpcusb

Applications shouldn't call these functions directly, instead please use MIOS32_COM or MIOS32_MIDI layer functions


Define Documentation

#define BUFFER_SIZE   100

#define CS_ENDPOINT   0x25

#define CS_ENDPOINT   0x25

#define CS_INTERFACE   0x24

#define CS_INTERFACE   0x24

#define DSCR_CONFIG   2

#define DSCR_CONFIG   2

#define DSCR_DEVICE   1

#define DSCR_DEVICE   1

#define DSCR_ENDPNT   5

#define DSCR_ENDPNT   5

#define DSCR_INTRFC   4

#define DSCR_INTRFC   4

#define DSCR_STRING   3

#define DSCR_STRING   3

#define GET_LINE_CODING   0x21

#define IMR_MSK   (CNTR_CTRM | CNTR_RESETM)

#define LE_WORD ( x   )     ((x)&0xFF),((x)>>8)

#define MIOS32_USB_COM_CC_INTERFACE_IX   (MIOS32_USB_MIDI_INTERFACE_OFFSET + 0x00)

#define MIOS32_USB_COM_CC_INTERFACE_IX   (MIOS32_USB_MIDI_INTERFACE_OFFSET + 0x00)

#define MIOS32_USB_COM_CD_INTERFACE_IX   (MIOS32_USB_MIDI_INTERFACE_OFFSET + 0x01)

#define MIOS32_USB_COM_CD_INTERFACE_IX   (MIOS32_USB_MIDI_INTERFACE_OFFSET + 0x01)

#define MIOS32_USB_COM_INTERFACE_OFFSET   (MIOS32_USB_MIDI_INTERFACE_OFFSET + 2)

#define MIOS32_USB_COM_INTERFACE_OFFSET   (MIOS32_USB_MIDI_INTERFACE_OFFSET + 2)

#define MIOS32_USB_COM_NUM_INTERFACES   2

#define MIOS32_USB_COM_NUM_INTERFACES   2

#define MIOS32_USB_COM_SIZ_CONFIG_DESC   58

#define MIOS32_USB_COM_SIZ_CONFIG_DESC   58

#define MIOS32_USB_MIDI_INTERFACE_NUM   0x00

#define MIOS32_USB_MIDI_INTERFACE_NUM   0x00

#define MIOS32_USB_MIDI_INTERFACE_OFFSET   1

#define MIOS32_USB_MIDI_INTERFACE_OFFSET   1

#define MIOS32_USB_MIDI_NUM_INTERFACES   1

#define MIOS32_USB_MIDI_NUM_INTERFACES   1

#define MIOS32_USB_MIDI_SIZ_CLASS_DESC   (7+MIOS32_USB_MIDI_NUM_PORTS*(6+6+9+9)+9+(4+MIOS32_USB_MIDI_NUM_PORTS)+9+(4+MIOS32_USB_MIDI_NUM_PORTS))

#define MIOS32_USB_MIDI_SIZ_CLASS_DESC   (7+MIOS32_USB_MIDI_NUM_PORTS*(6+6+9+9)+9+(4+MIOS32_USB_MIDI_NUM_PORTS)+9+(4+MIOS32_USB_MIDI_NUM_PORTS))

#define MIOS32_USB_MIDI_SIZ_CONFIG_DESC   (9+MIOS32_USB_MIDI_USE_AC_INTERFACE*(9+9)+MIOS32_USB_MIDI_SIZ_CLASS_DESC)

#define MIOS32_USB_MIDI_SIZ_CONFIG_DESC   (9+MIOS32_USB_MIDI_USE_AC_INTERFACE*(9+9)+MIOS32_USB_MIDI_SIZ_CLASS_DESC)

#define MIOS32_USB_NUM_INTERFACES   (MIOS32_USB_MIDI_NUM_INTERFACES + MIOS32_USB_COM_NUM_INTERFACES)

#define MIOS32_USB_NUM_INTERFACES   (MIOS32_USB_MIDI_NUM_INTERFACES + MIOS32_USB_COM_NUM_INTERFACES)

#define MIOS32_USB_SIZ_CONFIG_DESC   (9 + MIOS32_USB_MIDI_SIZ_CONFIG_DESC + MIOS32_USB_COM_SIZ_CONFIG_DESC)

#define MIOS32_USB_SIZ_CONFIG_DESC   (9 + MIOS32_USB_MIDI_SIZ_CONFIG_DESC + MIOS32_USB_COM_SIZ_CONFIG_DESC)

#define MIOS32_USB_SIZ_DEVICE_DESC   18

#define MIOS32_USB_SIZ_DEVICE_DESC   18

#define SET_CONTROL_LINE_STATE   0x22

#define SET_LINE_CODING   0x20


Typedef Documentation

typedef enum _DEVICE_STATE DEVICE_STATE


Enumeration Type Documentation

enum _DEVICE_STATE

Enumerator:
UNCONNECTED 
ATTACHED 
POWERED 
SUSPENDED 
ADDRESSED 
CONFIGURED 


Function Documentation

s32 MIOS32_USB_Init ( u32  mode  ) 

Initializes USB interface

Parameters:
[in] mode 
  • if 0, USB peripheral won't be initialized if this has already been done before
  • if 1, USB peripheral re-initialisation will be forced
  • if 2, USB peripheral re-initialisation will be forced, STM32 driver hooks won't be overwritten.
    This mode can be used for a local USB driver which installs it's own hooks during runtime.
    The application can switch back to MIOS32 drivers (e.g. MIOS32_USB_MIDI) by calling MIOS32_USB_Init(1)
Returns:
< 0 if initialisation failed
Note:
Applications shouldn't call this function directly, instead please use MIOS32_COM or MIOS32_MIDI layer functions

s32 MIOS32_USB_IsInitialized ( void   ) 

Allows to query, if the USB interface has already been initialized.
This function is used by the bootloader to avoid a reconnection, it isn't relevant for typical applications!

Returns:
1 if USB already initialized, 0 if not initialized

void USB_IRQHandler ( void   ) 

Interrupt handler for USB

Note:
Applications shouldn't call this function directly, instead please use MIOS32_COM or MIOS32_MIDI layer functions

void USB_LP_CAN1_RX0_IRQHandler ( void   ) 

Interrupt handler for USB

Note:
Applications shouldn't call this function directly, instead please use MIOS32_COM or MIOS32_MIDI layer functions


Variable Documentation

DEVICE Device_Table

void(*[7]) pEpInt_IN(void)

Initial value:

 {
  NOP_Process, NOP_Process, NOP_Process, NOP_Process, NOP_Process, NOP_Process, NOP_Process
}

void(*[7]) pEpInt_OUT(void)

Initial value:

 {
  NOP_Process, NOP_Process, NOP_Process, NOP_Process, NOP_Process, NOP_Process, NOP_Process
}

DEVICE_INFO* pInformation

DEVICE_PROP* pProperty

USER_STANDARD_REQUESTS* pUser_Standard_Requests


Generated on Tue May 1 19:42:14 2012 for MIOS32 by  doxygen 1.4.7