Appiko
hal_spim.h
1 
30 #ifndef HAL_SPIM_H
31 #define HAL_SPIM_H
32 
33 #include "nrf.h"
34 #include "nrf_util.h"
35 
36 #if SYS_CFG_PRESENT == 1
37 #include "sys_config.h"
38 #endif
39 #ifndef HAL_SPIM_PERIPH_USED
40 #define HAL_SPIM_PERIPH_USED 0
41 #endif
42 
43 #ifndef SPIM_USED
44 #define SPIM_USED HAL_SPIM_PERIPH_USED
45 #endif
46 
47 
49 typedef enum
50 {
51  HAL_SPIM_FREQ_125K = SPIM_FREQUENCY_FREQUENCY_K125,
52  HAL_SPIM_FREQ_250K = SPIM_FREQUENCY_FREQUENCY_K250,
53  HAL_SPIM_FREQ_500K = SPIM_FREQUENCY_FREQUENCY_K500,
54  HAL_SPIM_FREQ_1M = SPIM_FREQUENCY_FREQUENCY_M1,
55  HAL_SPIM_FREQ_2M = SPIM_FREQUENCY_FREQUENCY_M2,
56  HAL_SPIM_FREQ_4M = SPIM_FREQUENCY_FREQUENCY_M4,
57  HAL_SPIM_FREQ_8M = SPIM_FREQUENCY_FREQUENCY_M8
58 
60 
62 typedef enum
63 {
73 
75 typedef enum
76 {
82 
84 typedef enum
85 {
87  HAL_SPIM_TX_DONE = SPIM_INTENSET_ENDTX_Msk,
89  HAL_SPIM_RX_DONE = SPIM_INTENSET_ENDRX_Msk,
91 
93 typedef struct
94 {
96  uint32_t csBar_pin;
98  uint32_t miso_pin;
100  uint32_t mosi_pin;
102  uint32_t sck_pin;
117  uint32_t en_intr;
119  void (*tx_done_handler )(uint32_t bytes_last_tx);
121  void (*rx_done_handler )(uint32_t bytes_last_rx);
123 
128 void hal_spim_init (hal_spim_init_t * spim_init);
129 
137 void hal_spim_tx_rx (void * p_tx_data, uint32_t tx_len, void * p_rx_data, uint32_t rx_len);
138 
145 uint32_t hal_spim_is_busy ();
146 
150 void hal_spim_deinit ();
151 
152 #endif /* HAL_SPIM_H */
153 
hal_spim_byte_order_t byte_order
Definition: hal_spim.h:110
void hal_spim_init(hal_spim_init_t *spim_init)
Function to Initiate the SPIM module.
Definition: hal_spim.c:60
app_irq_priority_t irq_priority
Definition: hal_spim.h:112
hal_spim_byte_order_t
Definition: hal_spim.h:75
uint32_t csBar_pin
Definition: hal_spim.h:96
hal_spim_spi_mode_t
Definition: hal_spim.h:62
hal_spim_spi_mode_t spi_mode
Definition: hal_spim.h:106
void hal_spim_tx_rx(void *p_tx_data, uint32_t tx_len, void *p_rx_data, uint32_t rx_len)
Function to start communication.
Definition: hal_spim.c:108
hal_spim_freq_t
Definition: hal_spim.h:49
uint32_t miso_pin
Definition: hal_spim.h:98
app_irq_priority_t
Priority levels that the application can use based on whether the SoftDevice (SD) is used.
Definition: nrf_util.h:63
hal_spim_freq_t freq
Definition: hal_spim.h:104
uint32_t en_intr
Definition: hal_spim.h:117
void hal_spim_deinit()
Function to de-initialize the SPIM module.
Definition: hal_spim.c:97
uint32_t mosi_pin
Definition: hal_spim.h:100
uint32_t sck_pin
Definition: hal_spim.h:102
hal_spim_intr_t
Definition: hal_spim.h:84
uint32_t hal_spim_is_busy()
Function to check if SIPM module is available or not.
Definition: hal_spim.c:135