Astra MCU SDK Peripheral Driver Library
 
Loading...
Searching...
No Matches
spi.h
1
17
18#ifndef SPI_H
19#define SPI_H
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25/*******************************************************************************
26* Include files
27*******************************************************************************/
28
29#include <stdint.h>
30#include <stdbool.h>
31#include "sr110_device.h"
32
33/***************************************************************************/
117
118/*******************************************************************************
119* Enumerated Types
120*******************************************************************************/
121
127
146
160
173
206
210
211/*******************************************************************************
212* Type Definitions
213*******************************************************************************/
214
220
234typedef void (*spi_cb_t)(spi_transfer_status_en status, void *user_data);
235
253
274
275
279
280/*******************************************************************************
281* Function Prototypes
282*******************************************************************************/
283
290
291/*******************************************************************************
292* Function Name: spi_init
293****************************************************************************/
308
309/*******************************************************************************
310* Function Name: spi_deinit
311****************************************************************************/
323
324/*******************************************************************************
325* Function Name: spi_set_configuration
326****************************************************************************/
346 uint32_t *achieved_clk_rate_khz);
347
348/*******************************************************************************
349* Function Name: spi_get_configuration
350****************************************************************************/
368 uint32_t *achieved_clk_rate_khz);
369
370/*******************************************************************************
371* Function Name: spi_enable
372****************************************************************************/
385
386/*******************************************************************************
387* Function Name: spi_disable
388****************************************************************************/
402
403/*******************************************************************************
404* Function Name: spi_controller_select_peripheral
405****************************************************************************/
421 uint32_t peripheral_select);
422
424
425/*******************************************************************************
426* Low level functions definitions
427*******************************************************************************/
428
437
438/*******************************************************************************
439* Function Name: spi_write_tx_data
440****************************************************************************/
458
459/*******************************************************************************
460* Function Name: spi_read_rx_data
461****************************************************************************/
477
478/*******************************************************************************
479* Function Name: spi_tx_fifo_not_full
480****************************************************************************/
497
498/*******************************************************************************
499* Function Name: spi_rx_fifo_not_empty
500****************************************************************************/
516
517/*******************************************************************************
518* Function Name: spi_set_tx_fifo_trig_level
519****************************************************************************/
537
538/*******************************************************************************
539* Function Name: spi_get_tx_fifo_trig_level
540****************************************************************************/
551
552/*******************************************************************************
553* Function Name: spi_set_rx_fifo_trig_level
554****************************************************************************/
572
573/*******************************************************************************
574* Function Name: spi_get_rx_fifo_trig_level
575****************************************************************************/
586
587/*******************************************************************************
588* Function Name: spi_get_num_in_tx_fifo
589****************************************************************************/
600
601/*******************************************************************************
602* Function Name: spi_get_num_in_rx_fifo
603****************************************************************************/
614
615/*******************************************************************************
616* Function Name: spi_get_status
617****************************************************************************/
628
630
631/*******************************************************************************
632* High level functions definitions
633*******************************************************************************/
642/*******************************************************************************
643* Function Name: spi_transfer_blocking
644****************************************************************************/
673 spi_xfer_config_t *xfer);
674
675/*******************************************************************************
676* Function Name: spi_transfer_non_blocking
677****************************************************************************/
714 spi_xfer_config_t *xfer);
715
716/*******************************************************************************
717* Function Name: spi_transfer_abort
718****************************************************************************/
733
734/*******************************************************************************
735* Function Name: spi_transfer_status
736****************************************************************************/
748
749/*******************************************************************************
750* Function Name: spi_transfer_elements_transferred
751****************************************************************************/
762
764
766
767#ifdef __cplusplus
768}
769#endif
770
771#endif /* SPI_H */
spi_instance_en
SPI instances.
Definition sr110.h:847
struct spi_config spi_config_t
SPI configuration structure.
void(* spi_cb_t)(spi_transfer_status_en status, void *user_data)
SPI event callback function type.
Definition spi.h:234
struct spi_xfer_config spi_xfer_config_t
SPI transfer configuration structure.
spi_transfer_status_en
SPI transfer status.
Definition spi.h:152
spi_xfer_mode_en
SPI transfer mode.
Definition spi.h:180
spi_status_en
SPI driver status and error codes.
Definition spi.h:135
spi_sclk_mode_en
SPI clock mode.
Definition spi.h:167
@ SPI_TRANSFER_IN_PROGRESS
Definition spi.h:153
@ SPI_TRANSFER_TIMEOUT
Definition spi.h:154
@ SPI_ALL_DATA_IN_FIFO
Definition spi.h:158
@ SPI_TRANSFER_ERROR
Definition spi.h:155
@ SPI_FIFO_DRAINED
Definition spi.h:157
@ SPI_TRANSFER_DONE
Definition spi.h:156
@ SPI_RECEIVE_ONLY
Definition spi.h:195
@ SPI_TRANSMIT_ONLY
Definition spi.h:189
@ SPI_TRANSMIT_AND_RECEIVE
Definition spi.h:184
@ SPI_EEPROM_READ
Definition spi.h:203
@ SPI_ERROR_BAUDRATE
Definition spi.h:142
@ SPI_OK
Definition spi.h:136
@ SPI_ERROR_PARAMETER
Definition spi.h:138
@ SPI_ERROR_TX_OVERFLOW
Definition spi.h:144
@ SPI_ERROR
Definition spi.h:137
@ SPI_ERROR_UNSUPPORTED
Definition spi.h:141
@ SPI_ERROR_BUSY
Definition spi.h:139
@ SPI_ERROR_TIMEOUT
Definition spi.h:140
@ SPI_ERROR_NOT_INITIALIZED
Definition spi.h:143
@ SPI_CPHA1_CPOL1
Definition spi.h:171
@ SPI_CPHA0_CPOL0
Definition spi.h:168
@ SPI_CPHA1_CPOL0
Definition spi.h:169
@ SPI_CPHA0_CPOL1
Definition spi.h:170
spi_status_en spi_controller_select_peripheral(spi_instance_en id, uint32_t peripheral_select)
spi_status_en spi_get_configuration(spi_instance_en id, spi_config_t *config, uint32_t *achieved_clk_rate_khz)
INIT_CODE spi_status_en spi_init(spi_instance_en id)
INIT_CODE spi_status_en spi_deinit(spi_instance_en id)
spi_status_en spi_disable(spi_instance_en id)
spi_status_en spi_enable(spi_instance_en id)
spi_status_en spi_set_configuration(spi_instance_en id, spi_config_t *config, uint32_t *achieved_clk_rate_khz)
spi_status_en spi_transfer_abort(spi_instance_en id)
spi_status_en spi_transfer_blocking(spi_instance_en id, spi_xfer_config_t *xfer)
uint32_t spi_transfer_elements_transferred(spi_instance_en id)
spi_status_en spi_transfer_non_blocking(spi_instance_en id, spi_xfer_config_t *xfer)
spi_transfer_status_en spi_transfer_status(spi_instance_en id)
uint32_t spi_get_num_in_tx_fifo(spi_instance_en id)
spi_status_en spi_write_tx_data(spi_instance_en id, uint32_t tx_data)
uint32_t spi_read_rx_data(spi_instance_en id)
spi_status_en spi_set_tx_fifo_trig_level(spi_instance_en id, uint32_t fifo_level)
uint32_t spi_get_rx_fifo_trig_level(spi_instance_en id)
bool spi_rx_fifo_not_empty(spi_instance_en id)
bool spi_tx_fifo_not_full(spi_instance_en id)
spi_status_en spi_set_rx_fifo_trig_level(spi_instance_en id, uint32_t fifo_level)
uint32_t spi_get_status(spi_instance_en id)
uint32_t spi_get_tx_fifo_trig_level(spi_instance_en id)
uint32_t spi_get_num_in_rx_fifo(spi_instance_en id)
SPI configuration structure.
Definition spi.h:242
uint32_t frame_size
Definition spi.h:247
bool disable_peripheral_out
Definition spi.h:249
uint32_t rx_sample_delay
Definition spi.h:251
spi_sclk_mode_en clock_mode
Definition spi.h:245
spi_xfer_mode_en xfer_mode
Definition spi.h:246
bool spi_controller
Definition spi.h:243
bool toggle_peripheral_select
Definition spi.h:248
uint32_t spi_clk_freq_khz
Definition spi.h:250
SPI transfer configuration structure.
Definition spi.h:260
uint32_t xfer_size
Definition spi.h:268
uint32_t * rx_buff
Definition spi.h:265
uint32_t timeout
Definition spi.h:272
spi_cb_t callback
Definition spi.h:269
uint32_t * tx_buff
Definition spi.h:263
void * user_data
Definition spi.h:271
uint32_t tx_dummy
Definition spi.h:267
bool wait_for_tx_fifo_drain
Definition spi.h:261