SPIDRV
[EM_Drivers]

SPIDRV Serial Peripheral Interface module, see SPIDRV Serial Peripheral Interface driver page for detailed documentation. More...

Collaboration diagram for SPIDRV:

Data Structures

struct  SPIDRV_Init_t
 SPI driver instance initialization structure. More...
struct  SPIDRV_HandleData_t
 SPI driver instance handle data structure. More...

Defines

#define ECODE_EMDRV_SPIDRV_OK   ( ECODE_OK )
 Success return value.
#define ECODE_EMDRV_SPIDRV_ILLEGAL_HANDLE   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000001 )
 Illegal SPI handle.
#define ECODE_EMDRV_SPIDRV_PARAM_ERROR   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000002 )
 Illegal input parameter.
#define ECODE_EMDRV_SPIDRV_BUSY   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000003 )
 The SPI port is busy.
#define ECODE_EMDRV_SPIDRV_ILLEGAL_OPERATION   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000004 )
 Illegal operation on SPI port.
#define ECODE_EMDRV_SPIDRV_TIMER_ALLOC_ERROR   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000005 )
 Unable to allocated timeout timer.
#define ECODE_EMDRV_SPIDRV_TIMEOUT   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000006 )
 SPI transfer timeout.
#define ECODE_EMDRV_SPIDRV_IDLE   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000007 )
 No SPI transfer in progress.
#define ECODE_EMDRV_SPIDRV_ABORTED   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000008 )
 SPI transfer has been aborted.
#define ECODE_EMDRV_SPIDRV_MODE_ERROR   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000009 )
 SPI master used slave API or vica versa.
#define SPIDRV_MASTER_USART0
 Configuration data for SPI master using USART0.
#define SPIDRV_MASTER_USART1
 Configuration data for SPI master using USART1.
#define SPIDRV_MASTER_USART2
 Configuration data for SPI master using USART2.
#define SPIDRV_SLAVE_USART0
 Configuration data for SPI slave using USART0.
#define SPIDRV_SLAVE_USART1
 Configuration data for SPI slave using USART1.
#define SPIDRV_SLAVE_USART2
 Configuration data for SPI slave using USART2.
#define EMDRV_SPIDRV_INCLUDE_SLAVE
 SPIDRV configuration option. Use this define to include the slave part of the SPIDRV API.
#define EMDRV_SPIDRV_DMA_IRQ_PRIORITY   4
 SPIDRV configuration option. Set SPI transfer DMA IRQ priority. Range is 0..7, 0 is highest priority.

Typedefs

typedef void(* SPIDRV_Callback_t )(struct SPIDRV_HandleData *handle, Ecode_t transferStatus, int itemsTransferred)
 SPIDRV transfer completion callback function.
typedef SPIDRV_HandleData_tSPIDRV_Handle_t
 SPI driver instance handle.

Enumerations

enum  SPIDRV_Type_t {
  spidrvMaster = 0,
  spidrvSlave = 1
}
 

SPI driver instance type.

More...
enum  SPIDRV_BitOrder_t {
  spidrvBitOrderLsbFirst = 0,
  spidrvBitOrderMsbFirst = 1
}
 

SPI bus bit order.

More...
enum  SPIDRV_ClockMode_t {
  spidrvClockMode0 = 0,
  spidrvClockMode1 = 1,
  spidrvClockMode2 = 2,
  spidrvClockMode3 = 3
}
 

SPI clock mode (clock polarity and phase).

More...
enum  SPIDRV_CsControl_t {
  spidrvCsControlAuto = 0,
  spidrvCsControlApplication = 1
}
 

SPI master chip select (CS) control scheme.

More...
enum  SPIDRV_SlaveStart_t {
  spidrvSlaveStartImmediate = 0,
  spidrvSlaveStartDelayed = 1
}
 

SPI slave transfer start scheme.

More...

Functions

Ecode_t SPIDRV_AbortTransfer (SPIDRV_Handle_t handle)
 Abort an ongoing SPI transfer.
Ecode_t SPIDRV_DeInit (SPIDRV_Handle_t handle)
 Deinitialize a SPI driver instance.
Ecode_t SPIDRV_GetBitrate (SPIDRV_Handle_t handle, uint32_t *bitRate)
 Get current SPI bus bitrate.
Ecode_t SPIDRV_GetFramelength (SPIDRV_Handle_t handle, uint32_t *frameLength)
 Get current SPI framelength.
Ecode_t SPIDRV_GetTransferStatus (SPIDRV_Handle_t handle, int *itemsTransferred, int *itemsRemaining)
 Get the status of a SPI transfer.
Ecode_t SPIDRV_Init (SPIDRV_Handle_t handle, SPIDRV_Init_t *initData)
 Initialize a SPI driver instance.
Ecode_t SPIDRV_MReceive (SPIDRV_Handle_t handle, void *buffer, int count, SPIDRV_Callback_t callback)
 Start a SPI master receive transfer.
Ecode_t SPIDRV_MReceiveB (SPIDRV_Handle_t handle, void *buffer, int count)
 Start a SPI master blocking receive transfer.
Ecode_t SPIDRV_MTransfer (SPIDRV_Handle_t handle, const void *txBuffer, void *rxBuffer, int count, SPIDRV_Callback_t callback)
 Start a SPI master transfer.
Ecode_t SPIDRV_MTransferB (SPIDRV_Handle_t handle, const void *txBuffer, void *rxBuffer, int count)
 Start a SPI master blocking transfer.
Ecode_t SPIDRV_MTransferSingleItemB (SPIDRV_Handle_t handle, uint32_t txValue, void *rxValue)
 Start a SPI master blocking single item (frame) transfer.
Ecode_t SPIDRV_MTransmit (SPIDRV_Handle_t handle, const void *buffer, int count, SPIDRV_Callback_t callback)
 Start a SPI master transmit transfer.
Ecode_t SPIDRV_MTransmitB (SPIDRV_Handle_t handle, const void *buffer, int count)
 Start a SPI master blocking transmit transfer.
Ecode_t SPIDRV_SetBitrate (SPIDRV_Handle_t handle, uint32_t bitRate)
 Set SPI bus bitrate.
Ecode_t SPIDRV_SetFramelength (SPIDRV_Handle_t handle, uint32_t frameLength)
 Set SPI framelength.
Ecode_t SPIDRV_SReceive (SPIDRV_Handle_t handle, void *buffer, int count, SPIDRV_Callback_t callback, int timeoutMs)
 Start a SPI slave receive transfer.
Ecode_t SPIDRV_SReceiveB (SPIDRV_Handle_t handle, void *buffer, int count, int timeoutMs)
 Start a SPI slave blocking receive transfer.
Ecode_t SPIDRV_STransfer (SPIDRV_Handle_t handle, const void *txBuffer, void *rxBuffer, int count, SPIDRV_Callback_t callback, int timeoutMs)
 Start a SPI slave transfer.
Ecode_t SPIDRV_STransferB (SPIDRV_Handle_t handle, const void *txBuffer, void *rxBuffer, int count, int timeoutMs)
 Start a SPI slave blocking transfer.
Ecode_t SPIDRV_STransmit (SPIDRV_Handle_t handle, const void *buffer, int count, SPIDRV_Callback_t callback, int timeoutMs)
 Start a SPI slave transmit transfer.
Ecode_t SPIDRV_STransmitB (SPIDRV_Handle_t handle, const void *buffer, int count, int timeoutMs)
 Start a SPI slave blocking transmit transfer.

Detailed Description

SPIDRV Serial Peripheral Interface module, see SPIDRV Serial Peripheral Interface driver page for detailed documentation.


Define Documentation

#define ECODE_EMDRV_SPIDRV_ABORTED   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000008 )

SPI transfer has been aborted.

Definition at line 53 of file spidrv.h.

Referenced by SPIDRV_AbortTransfer().

#define ECODE_EMDRV_SPIDRV_BUSY   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000003 )

The SPI port is busy.

Definition at line 48 of file spidrv.h.

Referenced by SPIDRV_MTransferSingleItemB(), SPIDRV_SetBitrate(), and SPIDRV_SetFramelength().

#define ECODE_EMDRV_SPIDRV_IDLE   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000007 )

No SPI transfer in progress.

Definition at line 52 of file spidrv.h.

Referenced by SPIDRV_AbortTransfer().

#define ECODE_EMDRV_SPIDRV_ILLEGAL_HANDLE   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000001 )
#define ECODE_EMDRV_SPIDRV_ILLEGAL_OPERATION   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000004 )

Illegal operation on SPI port.

Definition at line 49 of file spidrv.h.

Referenced by SPIDRV_MTransferSingleItemB().

#define ECODE_EMDRV_SPIDRV_MODE_ERROR   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000009 )
#define ECODE_EMDRV_SPIDRV_OK   ( ECODE_OK )
#define ECODE_EMDRV_SPIDRV_PARAM_ERROR   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000002 )
#define ECODE_EMDRV_SPIDRV_TIMEOUT   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000006 )

SPI transfer timeout.

Definition at line 51 of file spidrv.h.

#define ECODE_EMDRV_SPIDRV_TIMER_ALLOC_ERROR   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000005 )

Unable to allocated timeout timer.

Definition at line 50 of file spidrv.h.

Referenced by SPIDRV_Init().

#define EMDRV_SPIDRV_DMA_IRQ_PRIORITY   4

SPIDRV configuration option. Set SPI transfer DMA IRQ priority. Range is 0..7, 0 is highest priority.

Definition at line 51 of file spidrv_config.h.

Referenced by SPIDRV_Init().

#define EMDRV_SPIDRV_INCLUDE_SLAVE

SPIDRV configuration option. Use this define to include the slave part of the SPIDRV API.

Definition at line 48 of file spidrv_config.h.

#define SPIDRV_MASTER_USART0
Value:
{                                                                         \
  USART0,                       /* USART port                       */    \
  0,                            /* Tx DMA channel number            */    \
  1,                            /* Rx DMA channel number            */    \
  _USART_ROUTE_LOCATION_LOC1,   /* USART pins location number       */    \
  1000000,                      /* Bitrate                          */    \
  8,                            /* Frame length                     */    \
  0,                            /* Dummy tx value for rx only funcs */    \
  spidrvMaster,                 /* SPI mode                         */    \
  spidrvBitOrderMsbFirst,       /* Bit order on bus                 */    \
  spidrvClockMode0,             /* SPI clock/phase mode             */    \
  spidrvCsControlAuto,          /* CS controlled by the driver      */    \
  spidrvSlaveStartImmediate     /* Slave start transfers immediately*/    \
}

Configuration data for SPI master using USART0.

Definition at line 171 of file spidrv.h.

#define SPIDRV_MASTER_USART1
Value:
{                                                                         \
  USART1,                       /* USART port                       */    \
  2,                            /* Tx DMA channel number            */    \
  3,                            /* Rx DMA channel number            */    \
  _USART_ROUTE_LOCATION_LOC1,   /* USART pins location number       */    \
  1000000,                      /* Bitrate                          */    \
  8,                            /* Frame length                     */    \
  0,                            /* Dummy tx value for rx only funcs */    \
  spidrvMaster,                 /* SPI mode                         */    \
  spidrvBitOrderMsbFirst,       /* Bit order on bus                 */    \
  spidrvClockMode0,             /* SPI clock/phase mode             */    \
  spidrvCsControlAuto,          /* CS controlled by the driver      */    \
  spidrvSlaveStartImmediate     /* Slave start transfers immediately*/    \
}

Configuration data for SPI master using USART1.

Definition at line 188 of file spidrv.h.

#define SPIDRV_MASTER_USART2
Value:
{                                                                         \
  USART2,                       /* USART port                       */    \
  4,                            /* Tx DMA channel number            */    \
  5,                            /* Rx DMA channel number            */    \
  _USART_ROUTE_LOCATION_LOC0,   /* USART pins location number       */    \
  1000000,                      /* Bitrate                          */    \
  8,                            /* Frame length                     */    \
  0,                            /* Dummy tx value for rx only funcs */    \
  spidrvMaster,                 /* SPI mode                         */    \
  spidrvBitOrderMsbFirst,       /* Bit order on bus                 */    \
  spidrvClockMode0,             /* SPI clock/phase mode             */    \
  spidrvCsControlAuto,          /* CS controlled by the driver      */    \
  spidrvSlaveStartImmediate     /* Slave start transfers immediately*/    \
}

Configuration data for SPI master using USART2.

Definition at line 205 of file spidrv.h.

#define SPIDRV_SLAVE_USART0
Value:
{                                                                         \
  USART0,                       /* USART port                       */    \
  0,                            /* Tx DMA channel number            */    \
  1,                            /* Rx DMA channel number            */    \
  _USART_ROUTE_LOCATION_LOC1,   /* USART pins location number       */    \
  0,                            /* Bitrate                          */    \
  8,                            /* Frame length                     */    \
  0,                            /* Dummy tx value for rx only funcs */    \
  spidrvSlave,                  /* SPI mode                         */    \
  spidrvBitOrderMsbFirst,       /* Bit order on bus                 */    \
  spidrvClockMode0,             /* SPI clock/phase mode             */    \
  spidrvCsControlAuto,          /* CS controlled by the driver      */    \
  spidrvSlaveStartImmediate     /* Slave start transfers immediately*/    \
}

Configuration data for SPI slave using USART0.

Definition at line 222 of file spidrv.h.

#define SPIDRV_SLAVE_USART1
Value:
{                                                                         \
  USART1,                       /* USART port                       */    \
  2,                            /* Tx DMA channel number            */    \
  3,                            /* Rx DMA channel number            */    \
  _USART_ROUTE_LOCATION_LOC1,   /* USART pins location number       */    \
  0,                            /* Bitrate                          */    \
  8,                            /* Frame length                     */    \
  0,                            /* Dummy tx value for rx only funcs */    \
  spidrvSlave,                  /* SPI mode                         */    \
  spidrvBitOrderMsbFirst,       /* Bit order on bus                 */    \
  spidrvClockMode0,             /* SPI clock/phase mode             */    \
  spidrvCsControlAuto,          /* CS controlled by the driver      */    \
  spidrvSlaveStartImmediate     /* Slave start transfers immediately*/    \
}

Configuration data for SPI slave using USART1.

Definition at line 239 of file spidrv.h.

#define SPIDRV_SLAVE_USART2
Value:
{                                                                         \
  USART2,                       /* USART port                       */    \
  4,                            /* Tx DMA channel number            */    \
  5,                            /* Rx DMA channel number            */    \
  _USART_ROUTE_LOCATION_LOC0,   /* USART pins location number       */    \
  0,                            /* Bitrate                          */    \
  8,                            /* Frame length                     */    \
  0,                            /* Dummy tx value for rx only funcs */    \
  spidrvSlave,                  /* SPI mode                         */    \
  spidrvBitOrderMsbFirst,       /* Bit order on bus                 */    \
  spidrvClockMode0,             /* SPI clock/phase mode             */    \
  spidrvCsControlAuto,          /* CS controlled by the driver      */    \
  spidrvSlaveStartImmediate     /* Slave start transfers immediately*/    \
}

Configuration data for SPI slave using USART2.

Definition at line 256 of file spidrv.h.


Typedef Documentation

typedef void(* SPIDRV_Callback_t)(struct SPIDRV_HandleData *handle, Ecode_t transferStatus, int itemsTransferred)

SPIDRV transfer completion callback function.

The callback function is called when a transfer has completed. An application should check the transferStatus and itemsTransferred values.

Parameters:
[in] handle The SPIDRV device handle used to start the transfer.
[in] transferStatus Number of bytes actually transferred.
[in] itemsTransferred Number of bytes transferred.
Returns:
ECODE_EMDRV_SPIDRV_OK on success, ECODE_EMDRV_SPIDRV_TIMEOUT on timeout. Timeouts are only relevant for slave mode transfers.

Definition at line 116 of file spidrv.h.

SPI driver instance handle.

Definition at line 168 of file spidrv.h.


Enumeration Type Documentation

SPI bus bit order.

Enumerator:
spidrvBitOrderLsbFirst 

LSB bit is transmitted first.

spidrvBitOrderMsbFirst 

MSB bit is transmitted first.

Definition at line 64 of file spidrv.h.

SPI clock mode (clock polarity and phase).

Enumerator:
spidrvClockMode0 

SPI mode 0: CLKPOL=0, CLKPHA=0.

spidrvClockMode1 

SPI mode 1: CLKPOL=0, CLKPHA=1.

spidrvClockMode2 

SPI mode 2: CLKPOL=1, CLKPHA=0.

spidrvClockMode3 

SPI mode 3: CLKPOL=1, CLKPHA=1.

Definition at line 71 of file spidrv.h.

SPI master chip select (CS) control scheme.

Enumerator:
spidrvCsControlAuto 

CS controlled by SPI driver.

spidrvCsControlApplication 

CS controlled by application.

Definition at line 80 of file spidrv.h.

SPI slave transfer start scheme.

Enumerator:
spidrvSlaveStartImmediate 

Transfer is started immediately.

spidrvSlaveStartDelayed 

Transfer is started when bus is idle (CS deasserted).

Definition at line 87 of file spidrv.h.

SPI driver instance type.

Enumerator:
spidrvMaster 

Act as SPI master.

spidrvSlave 

Act as SPI slave.

Definition at line 57 of file spidrv.h.


Function Documentation

Ecode_t SPIDRV_AbortTransfer ( SPIDRV_Handle_t  handle  ) 

Abort an ongoing SPI transfer.

Parameters:
[in] handle Pointer to a SPI driver handle.
Returns:
ECODE_EMDRV_SPIDRV_OK on success, ECODE_EMDRV_SPIDRV_IDLE if SPI is idle. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 277 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_ABORTED, ECODE_EMDRV_SPIDRV_IDLE, ECODE_EMDRV_SPIDRV_ILLEGAL_HANDLE, ECODE_EMDRV_SPIDRV_OK, RTCDRV_StopTimer(), and spidrvSlave.

Here is the call graph for this function:

Ecode_t SPIDRV_DeInit ( SPIDRV_Handle_t  handle  ) 

Deinitialize a SPI driver instance.

Parameters:
[in] handle Pointer to a SPI driver handle.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 242 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_ILLEGAL_HANDLE, ECODE_EMDRV_SPIDRV_OK, RTCDRV_FreeTimer(), RTCDRV_StopTimer(), and spidrvSlave.

Here is the call graph for this function:

Ecode_t SPIDRV_GetBitrate ( SPIDRV_Handle_t  handle,
uint32_t *  bitRate 
)

Get current SPI bus bitrate.

Parameters:
[in] handle Pointer to a SPI driver handle.
[out] bitRate Current SPI bus bitrate.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 329 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_ILLEGAL_HANDLE, ECODE_EMDRV_SPIDRV_OK, and ECODE_EMDRV_SPIDRV_PARAM_ERROR.

Ecode_t SPIDRV_GetFramelength ( SPIDRV_Handle_t  handle,
uint32_t *  frameLength 
)

Get current SPI framelength.

Parameters:
[in] handle Pointer to a SPI driver handle.
[out] frameLength Current SPI bus framelength.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 356 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_ILLEGAL_HANDLE, ECODE_EMDRV_SPIDRV_OK, and ECODE_EMDRV_SPIDRV_PARAM_ERROR.

Ecode_t SPIDRV_GetTransferStatus ( SPIDRV_Handle_t  handle,
int *  itemsTransferred,
int *  itemsRemaining 
)

Get the status of a SPI transfer.

Returns status of an ongoing transfer. If no transfer is in progress the status of the last transfer is reported.

Parameters:
[in] handle Pointer to a SPI driver handle.
[out] itemsTransferred Number of items (frames) transferred.
[out] itemsRemaining Number of items (frames) remaining.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 389 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_ILLEGAL_HANDLE, ECODE_EMDRV_SPIDRV_OK, and ECODE_EMDRV_SPIDRV_PARAM_ERROR.

Ecode_t SPIDRV_Init ( SPIDRV_Handle_t  handle,
SPIDRV_Init_t initData 
)
Ecode_t SPIDRV_MReceive ( SPIDRV_Handle_t  handle,
void *  buffer,
int  count,
SPIDRV_Callback_t  callback 
)

Start a SPI master receive transfer.

Note:
The MOSI wire will transmit SPIDRV_Init_t::dummyTxValue.
Parameters:
[in] handle Pointer to a SPI driver handle.
[out] buffer Receive data buffer.
[in] count Number of bytes in transfer.
[in] callback Transfer completion callback.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 439 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, and spidrvSlave.

Ecode_t SPIDRV_MReceiveB ( SPIDRV_Handle_t  handle,
void *  buffer,
int  count 
)

Start a SPI master blocking receive transfer.

Note:
The MOSI wire will transmit SPIDRV_Init_t::dummyTxValue.
This function is blocking and returns when the transfer has completed, or when SPIDRV_AbortTransfer() is called.
Parameters:
[in] handle Pointer to a SPI driver handle.
[out] buffer Receive data buffer.
[in] count Number of bytes in transfer.
Returns:
ECODE_EMDRV_SPIDRV_OK on success or ECODE_EMDRV_SPIDRV_ABORTED if SPIDRV_AbortTransfer() has been called. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 480 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, and spidrvSlave.

Ecode_t SPIDRV_MTransfer ( SPIDRV_Handle_t  handle,
const void *  txBuffer,
void *  rxBuffer,
int  count,
SPIDRV_Callback_t  callback 
)

Start a SPI master transfer.

Parameters:
[in] handle Pointer to a SPI driver handle.
[in] txBuffer Transmit data buffer.
[out] rxBuffer Receive data buffer.
[in] count Number of bytes in transfer.
[in] callback Transfer completion callback.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 520 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, ECODE_EMDRV_SPIDRV_PARAM_ERROR, and spidrvSlave.

Ecode_t SPIDRV_MTransferB ( SPIDRV_Handle_t  handle,
const void *  txBuffer,
void *  rxBuffer,
int  count 
)

Start a SPI master blocking transfer.

Note:
This function is blocking and returns when the transfer has completed, or when SPIDRV_AbortTransfer() is called.
Parameters:
[in] handle Pointer to a SPI driver handle.
[in] txBuffer Transmit data buffer.
[out] rxBuffer Receive data buffer.
[in] count Number of bytes in transfer.
Returns:
ECODE_EMDRV_SPIDRV_OK on success or ECODE_EMDRV_SPIDRV_ABORTED if SPIDRV_AbortTransfer() has been called. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 567 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, ECODE_EMDRV_SPIDRV_PARAM_ERROR, and spidrvSlave.

Ecode_t SPIDRV_MTransferSingleItemB ( SPIDRV_Handle_t  handle,
uint32_t  txValue,
void *  rxValue 
)

Start a SPI master blocking single item (frame) transfer.

Note:
This function is blocking and returns when the transfer has completed, or when SPIDRV_AbortTransfer() is called.
Parameters:
[in] handle Pointer to a SPI driver handle.
[in] txValue Value to transmit.
[out] rxValue Value received.
Returns:
ECODE_EMDRV_SPIDRV_OK on success or ECODE_EMDRV_SPIDRV_ABORTED if SPIDRV_AbortTransfer() has been called. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 613 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_BUSY, ECODE_EMDRV_SPIDRV_ILLEGAL_HANDLE, ECODE_EMDRV_SPIDRV_ILLEGAL_OPERATION, ECODE_EMDRV_SPIDRV_MODE_ERROR, and spidrvSlave.

Ecode_t SPIDRV_MTransmit ( SPIDRV_Handle_t  handle,
const void *  buffer,
int  count,
SPIDRV_Callback_t  callback 
)

Start a SPI master transmit transfer.

Note:
The data received on the MISO wire is discarded.
Parameters:
[in] handle Pointer to a SPI driver handle.
[in] buffer Transmit data buffer.
[in] count Number of bytes in transfer.
[in] callback Transfer completion callback.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 671 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, and spidrvSlave.

Ecode_t SPIDRV_MTransmitB ( SPIDRV_Handle_t  handle,
const void *  buffer,
int  count 
)

Start a SPI master blocking transmit transfer.

Note:
The data received on the MISO wire is discarded.
This function is blocking and returns when the transfer is completed.
Parameters:
[in] handle Pointer to a SPI driver handle.
[in] buffer Transmit data buffer.
[in] count Number of bytes in transfer.
Returns:
ECODE_EMDRV_SPIDRV_OK on success or ECODE_EMDRV_SPIDRV_ABORTED if SPIDRV_AbortTransfer() has been called. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 711 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, and spidrvSlave.

Ecode_t SPIDRV_SetBitrate ( SPIDRV_Handle_t  handle,
uint32_t  bitRate 
)

Set SPI bus bitrate.

Parameters:
[in] handle Pointer to a SPI driver handle.
[in] bitRate New SPI bus bitrate.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 745 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_BUSY, ECODE_EMDRV_SPIDRV_ILLEGAL_HANDLE, and ECODE_EMDRV_SPIDRV_OK.

Ecode_t SPIDRV_SetFramelength ( SPIDRV_Handle_t  handle,
uint32_t  frameLength 
)

Set SPI framelength.

Parameters:
[in] handle Pointer to a SPI driver handle.
[in] frameLength New SPI bus framelength.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 776 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_BUSY, ECODE_EMDRV_SPIDRV_ILLEGAL_HANDLE, ECODE_EMDRV_SPIDRV_OK, and ECODE_EMDRV_SPIDRV_PARAM_ERROR.

Ecode_t SPIDRV_SReceive ( SPIDRV_Handle_t  handle,
void *  buffer,
int  count,
SPIDRV_Callback_t  callback,
int  timeoutMs 
)

Start a SPI slave receive transfer.

Note:
The MISO wire will transmit SPIDRV_Init_t::dummyTxValue.
Parameters:
[in] handle Pointer to a SPI driver handle.
[out] buffer Receive data buffer.
[in] count Number of bytes in transfer.
[in] callback Transfer completion callback.
[in] timeoutMs Transfer timeout in milliseconds.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 826 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, RTCDRV_StartTimer(), rtcdrvTimerTypeOneshot, spidrvMaster, and spidrvSlaveStartDelayed.

Here is the call graph for this function:

Ecode_t SPIDRV_SReceiveB ( SPIDRV_Handle_t  handle,
void *  buffer,
int  count,
int  timeoutMs 
)

Start a SPI slave blocking receive transfer.

Note:
The MISO wire will transmit SPIDRV_Init_t::dummyTxValue.
This function is blocking and returns when the transfer has completed, or on timeout or when SPIDRV_AbortTransfer() is called.
Parameters:
[in] handle Pointer to a SPI driver handle.
[out] buffer Receive data buffer.
[in] count Number of bytes in transfer.
[in] timeoutMs Transfer timeout in milliseconds.
Returns:
ECODE_EMDRV_SPIDRV_OK on success, ECODE_EMDRV_SPIDRV_TIMEOUT on timeout or ECODE_EMDRV_SPIDRV_ABORTED if SPIDRV_AbortTransfer() has been called. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 885 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, RTCDRV_StartTimer(), rtcdrvTimerTypeOneshot, spidrvMaster, and spidrvSlaveStartDelayed.

Here is the call graph for this function:

Ecode_t SPIDRV_STransfer ( SPIDRV_Handle_t  handle,
const void *  txBuffer,
void *  rxBuffer,
int  count,
SPIDRV_Callback_t  callback,
int  timeoutMs 
)

Start a SPI slave transfer.

Parameters:
[in] handle Pointer to a SPI driver handle.
[in] txBuffer Transmit data buffer.
[out] rxBuffer Receive data buffer.
[in] count Number of bytes in transfer.
[in] callback Transfer completion callback.
[in] timeoutMs Transfer timeout in milliseconds.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 942 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, ECODE_EMDRV_SPIDRV_PARAM_ERROR, RTCDRV_StartTimer(), rtcdrvTimerTypeOneshot, spidrvMaster, and spidrvSlaveStartDelayed.

Here is the call graph for this function:

Ecode_t SPIDRV_STransferB ( SPIDRV_Handle_t  handle,
const void *  txBuffer,
void *  rxBuffer,
int  count,
int  timeoutMs 
)

Start a SPI slave blocking transfer.

Note:

This function is blocking and returns when the transfer has completed, or on timeout or when SPIDRV_AbortTransfer() is called.
Parameters:
[in] handle Pointer to a SPI driver handle.
[in] txBuffer Transmit data buffer.
[out] rxBuffer Receive data buffer.
[in] count Number of bytes in transfer.
[in] timeoutMs Transfer timeout in milliseconds.
Returns:
ECODE_EMDRV_SPIDRV_OK on success, ECODE_EMDRV_SPIDRV_TIMEOUT on timeout or ECODE_EMDRV_SPIDRV_ABORTED if SPIDRV_AbortTransfer() has been called. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 1007 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, ECODE_EMDRV_SPIDRV_PARAM_ERROR, RTCDRV_StartTimer(), rtcdrvTimerTypeOneshot, spidrvMaster, and spidrvSlaveStartDelayed.

Here is the call graph for this function:

Ecode_t SPIDRV_STransmit ( SPIDRV_Handle_t  handle,
const void *  buffer,
int  count,
SPIDRV_Callback_t  callback,
int  timeoutMs 
)

Start a SPI slave transmit transfer.

Note:
The data received on the MOSI wire is discarded.
Parameters:
[in] handle Pointer to a SPI driver handle.
[in] buffer Transmit data buffer.
[in] count Number of bytes in transfer.
[in] callback Transfer completion callback.
[in] timeoutMs Transfer timeout in milliseconds.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 1070 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, RTCDRV_StartTimer(), rtcdrvTimerTypeOneshot, spidrvMaster, and spidrvSlaveStartDelayed.

Here is the call graph for this function:

Ecode_t SPIDRV_STransmitB ( SPIDRV_Handle_t  handle,
const void *  buffer,
int  count,
int  timeoutMs 
)

Start a SPI slave blocking transmit transfer.

Note:
The data received on the MOSI wire is discarded.
This function is blocking and returns when the transfer has completed, or on timeout or when SPIDRV_AbortTransfer() is called.
Parameters:
[in] handle Pointer to a SPI driver handle.
[in] buffer Transmit data buffer.
[in] count Number of bytes in transfer.
[in] timeoutMs Transfer timeout in milliseconds.
Returns:
ECODE_EMDRV_SPIDRV_OK on success, ECODE_EMDRV_SPIDRV_TIMEOUT on timeout or ECODE_EMDRV_SPIDRV_ABORTED if SPIDRV_AbortTransfer() has been called. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 1129 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, RTCDRV_StartTimer(), rtcdrvTimerTypeOneshot, spidrvMaster, and spidrvSlaveStartDelayed.

Here is the call graph for this function: