44 #ifndef SPI_BUFFERED_H
45 #define SPI_BUFFERED_H
52 #include "preprocessor.h"
54 #include "user_board.h"
55 #include "spi_master.h"
56 #include "dma_channel_config.h"
57 typedef void (function_pointer_t)(void);
59 #define SPI_BUFFER_SIZE 32
61 #define SPI_BUFFER_MASK (SPI_BUFFER_SIZE - 1)
71 volatile avr32_spi_t *
spi;
72 volatile uint8_t spi_out_buffer[SPI_BUFFER_SIZE];
73 volatile uint8_t spi_in_buffer[SPI_BUFFER_SIZE];
83 struct spi_device adc_spi;
94 void spi_buffered_init(
volatile avr32_spi_t *spi, int32_t spi_index);
103 uint8_t* spi_buffered_get_spi_in_buffer(int32_t spi_index);
111 void spi_buffered_init_DMA(int32_t spi_index, int32_t block_size);
121 void spi_buffered_trigger_DMA(int32_t spi_index, int32_t block_size);
129 void spi_buffered_set_callback(int32_t spi_index, function_pointer_t* function_pointer);
136 void spi_buffered_enable(int32_t spi_index);
143 void spi_buffered_disable(int32_t spi_index);
150 void spi_buffered_pause(int32_t spi_index);
157 void spi_buffered_resume(int32_t spi_index);
164 void spi_buffered_start(int32_t spi_index);
171 void spi_buffered_activate_receive(int32_t spi_index);
178 void spi_buffered_deactivate_receive(int32_t spi_index);
185 void spi_buffered_clear_read_buffer(int32_t spi_index);
194 uint8_t spi_buffered_get_traffic(int32_t spi_index);
203 uint8_t spi_buffered_read(int32_t spi_index);
214 void spi_buffered_write(int32_t spi_index, uint8_t value);
221 void spi_buffered_transmit(int32_t spi_index);
230 int8_t spi_buffered_is_transfered_finished(int32_t spi_index);
238 void spi_buffered_flush_buffer(int32_t spi_index);
247 uint8_t spi_buffered_bytes_available(int32_t spi_index);
253 #endif // SPI_BUFFERED_H
volatile uint8_t spi_in_buffer_head
The head of the SPI ingoing buffer.
Definition: spi_buffered.h:74
volatile uint8_t traffic
Read incoming data from SPI port.
Definition: spi_buffered.h:79
volatile uint8_t transmission_in_progress
Flag to know if there is a transmission going on.
Definition: spi_buffered.h:80
volatile function_pointer_t * callback_function
The callback function that gets called when the buffer is empty.
Definition: spi_buffered.h:82
The SPI buffer structure definition.
Definition: spi_buffered.h:69
volatile uint8_t spi_out_buffer_head
The head of the SPI outgoing buffer.
Definition: spi_buffered.h:76
volatile uint8_t spi_receiver_on
Flag to activate or not the SPI reception.
Definition: spi_buffered.h:78
volatile uint8_t spi_out_buffer_tail
The tail of the SPI outgoing buffer.
Definition: spi_buffered.h:77
volatile uint8_t spi_in_buffer_tail
The tail of the SPI ingoing buffer.
Definition: spi_buffered.h:75
volatile uint8_t automatic
Flag to send automatically over SPI or pause/stop transmission.
Definition: spi_buffered.h:81
volatile avr32_spi_t * spi
The pointer to the avr32 spi structure.
Definition: spi_buffered.h:71