VSF Documented
Macros | Functions
spi_common.c File Reference
#include "hal/driver/driver.h"

Macros

#define VSF_SPI_CFG_FUNCTION_RENAME   DISABLED
 

Functions

vsf_err_t vsf_spi_init (vsf_spi_t *spi_ptr, vsf_spi_cfg_t *cfg_ptr)
 initialize a spi instance.
 
void vsf_spi_fini (vsf_spi_t *spi_ptr)
 finalize a spi instance.
 
fsm_rt_t vsf_spi_enable (vsf_spi_t *spi_ptr)
 enable interrupt masks of spi instance.
 
fsm_rt_t vsf_spi_disable (vsf_spi_t *spi_ptr)
 disable interrupt masks of spi instance.
 
void vsf_spi_irq_enable (vsf_spi_t *spi_ptr, vsf_spi_irq_mask_t irq_mask)
 enable interrupt masks of spi instance.
 
void vsf_spi_irq_disable (vsf_spi_t *spi_ptr, vsf_spi_irq_mask_t irq_mask)
 disable interrupt masks of spi instance.
 
vsf_spi_status_t vsf_spi_status (vsf_spi_t *spi_ptr)
 get the status of spi instance.
 
void vsf_spi_cs_active (vsf_spi_t *spi_ptr, uint_fast8_t index)
 spi set chip select active
 
void vsf_spi_cs_inactive (vsf_spi_t *spi_ptr, uint_fast8_t index)
 spi set chip select inactive
 
void vsf_spi_fifo_transfer (vsf_spi_t *spi_ptr, void *out_buffer_ptr, uint_fast32_t *out_offset_ptr, void *in_buffer_ptr, uint_fast32_t *in_offset_ptr, uint_fast32_t cnt)
 spi fifo transfer
 
vsf_err_t vsf_spi_request_transfer (vsf_spi_t *spi_ptr, void *out_buffer_ptr, void *in_buffer_ptr, uint_fast32_t count)
 start spi transfer. The best way to do this is to use DMA. Software implementation is the solution when DMA cannot be used
 
vsf_err_t vsf_spi_cancel_transfer (vsf_spi_t *spi_ptr)
 spi cancel transfer
 
void vsf_spi_get_transferred_count (vsf_spi_t *spi_ptr, uint_fast32_t *tx_count, uint_fast32_t *rx_count)
 spi get transferred counter
 
vsf_spi_capability_t vsf_spi_capability (vsf_spi_t *spi_ptr)
 get the capability of spi instance.
 

Macro Definition Documentation

◆ VSF_SPI_CFG_FUNCTION_RENAME

#define VSF_SPI_CFG_FUNCTION_RENAME   DISABLED

Function Documentation

◆ vsf_spi_init()

vsf_err_t vsf_spi_init ( vsf_spi_t spi_ptr,
vsf_spi_cfg_t cfg_ptr 
)

initialize a spi instance.

Parameters
[in]spi_ptra pointer to structure vsf_spi_t
[in]cfg_ptra pointer to structure vsf_spi_cfg_t
Returns
vsf_err_t: VSF_ERR_NONE if spi was initialized, or a negative error code

◆ vsf_spi_fini()

void vsf_spi_fini ( vsf_spi_t spi_ptr)

finalize a spi instance.

Parameters
[in]spi_ptra pointer to structure vsf_spi_t
Returns
none

◆ vsf_spi_enable()

fsm_rt_t vsf_spi_enable ( vsf_spi_t spi_ptr)

enable interrupt masks of spi instance.

Parameters
[in]spi_ptra pointer to structure vsf_spi_t
Returns
none.

◆ vsf_spi_disable()

fsm_rt_t vsf_spi_disable ( vsf_spi_t spi_ptr)

disable interrupt masks of spi instance.

Parameters
[in]spi_ptra pointer to structure vsf_spi_t
Returns
none.

◆ vsf_spi_irq_enable()

void vsf_spi_irq_enable ( vsf_spi_t spi_ptr,
vsf_spi_irq_mask_t  irq_mask 
)

enable interrupt masks of spi instance.

Parameters
[in]spi_ptra pointer to structure vsf_spi_t
[in]irq_maskone or more value of enum vsf_spi_irq_mask_t
Returns
none.
Note
All pending interrupts should be cleared before interrupts are enabled.

◆ vsf_spi_irq_disable()

void vsf_spi_irq_disable ( vsf_spi_t spi_ptr,
vsf_spi_irq_mask_t  irq_mask 
)

disable interrupt masks of spi instance.

Parameters
[in]spi_ptra pointer to structure vsf_spi_t
[in]irq_maskone or more value of enum vsf_spi_irq_mask_t, vsf_spi_irq_mask_t
Returns
none.

◆ vsf_spi_status()

vsf_spi_status_t vsf_spi_status ( vsf_spi_t spi_ptr)

get the status of spi instance.

Parameters
[in]spi_ptra pointer to structure vsf_spi_t
Returns
vsf_spi_status_t: return all status of current spi

◆ vsf_spi_cs_active()

void vsf_spi_cs_active ( vsf_spi_t spi_ptr,
uint_fast8_t  index 
)

spi set chip select active

Parameters
[in]spi_ptra pointer to structure vsf_spi_t
[in]indexchip select index
Returns
none.

◆ vsf_spi_cs_inactive()

void vsf_spi_cs_inactive ( vsf_spi_t spi_ptr,
uint_fast8_t  index 
)

spi set chip select inactive

Parameters
[in]spi_ptra pointer to structure vsf_spi_t
[in]indexchip select index
Returns
none.

◆ vsf_spi_fifo_transfer()

void vsf_spi_fifo_transfer ( vsf_spi_t spi_ptr,
void *  out_buffer_ptr,
uint_fast32_t out_offset_ptr,
void *  in_buffer_ptr,
uint_fast32_t in_offset_ptr,
uint_fast32_t  count 
)

spi fifo transfer

Parameters
[in]spi_ptra pointer to structure vsf_spi_t
[in]out_buffer_ptra pointer to spi send data buffer, it can be a null pointer
[in,out]out_offset_ptra pointer to spi send data buffer offset
[in]in_buffer_ptra pointer to spi receive data buffer, it can be a null pointer
[in,out]in_offset_ptra pointer to spi send data buffer offset
[in]countThe number of data received or sent
Returns
vsf_err_t: VSF_ERR_NONE if spi transfer successfully, or a negative error code

◆ vsf_spi_request_transfer()

vsf_err_t vsf_spi_request_transfer ( vsf_spi_t spi_ptr,
void *  out_buffer_ptr,
void *  in_buffer_ptr,
uint_fast32_t  count 
)

start spi transfer. The best way to do this is to use DMA. Software implementation is the solution when DMA cannot be used

Note
When using DMA, you need to use DMA to receive data first, and then process DMA to send data.
Parameters
[in]spi_ptra pointer to structure vsf_spi_t
[in]out_buffer_ptra pointer to spi send data buffer, it can be a null pointer
[in]in_buffer_ptra pointer to spi receive data buffer, it can be a null pointer
[in]countThe number of data received or sent
Returns
vsf_err_t: VSF_ERR_NONE if spi transfer successfully, or a negative error code

◆ vsf_spi_cancel_transfer()

vsf_err_t vsf_spi_cancel_transfer ( vsf_spi_t spi_ptr)

spi cancel transfer

Parameters
[in]spi_ptra pointer to structure vsf_spi_t
Returns
vsf_err_t: VSF_ERR_NONE if spi cancel transfer successfully, or a negative error code

◆ vsf_spi_get_transferred_count()

void vsf_spi_get_transferred_count ( vsf_spi_t spi_ptr,
uint_fast32_t sent_count,
uint_fast32_t received_count 
)

spi get transferred counter

Parameters
[in]spi_ptra pointer to structure vsf_spi_t
[out]send_counta pointer to the number of spi data already sent
[out]received_counta pointer to the number of spi data already received
Returns
vsf_err_t: VSF_ERR_NONE if spi cancel transfer successfully, or a negative error code

◆ vsf_spi_capability()

vsf_spi_capability_t vsf_spi_capability ( vsf_spi_t spi_ptr)

get the capability of spi instance.

Parameters
[in]spi_ptra pointer to structure vsf_spi_t
Returns
vsf_spi_capability_t: return all capability of current spi vsf_spi_capability_t