PER Firmware
Loading...
Searching...
No Matches
spi.h
Go to the documentation of this file.
1
8#ifndef _PHAL_G4_SPI_H
9#define _PHAL_G4_SPI_H
10
11#include <stddef.h>
12
14
18typedef enum {
21} SPI_Mode;
22
30
38
42typedef struct {
43 uint32_t data_rate;
44 uint8_t data_len;
47 bool nss_sw;
48 GPIO_TypeDef *nss_gpio_port;
49 uint32_t nss_gpio_pin;
57 volatile bool _busy;
58 volatile bool _error;
59 volatile bool _direct_mode_error;
60 volatile bool _fifo_overrun;
62 SPI_TypeDef *periph;
64
76
92 const uint8_t *out_data,
93 uint8_t *in_data,
94 uint32_t data_len);
95
110 const uint8_t *out_data,
111 uint8_t *in_data,
112 uint32_t data_len);
113
120bool PHAL_SPI_busy(const SPI_InitConfig_t *cfg);
121
132extern void PHAL_SPI_txCallback(SPI_InitConfig_t *spi);
133
134#endif /* _PHAL_G4_SPI_H */
bool PHAL_SPI_busy(SPI_InitConfig_t *cfg)
Check for current SPI transaction to complete.
Definition spi.c:204
bool PHAL_SPI_init(SPI_InitConfig_t *handle)
Initilize SPI peripheral with the configuired structure.
Definition spi.c:25
bool PHAL_SPI_transfer(SPI_InitConfig_t *spi, const uint8_t *out_data, const uint32_t data_len, const uint8_t *in_data)
Transfer data_len bytes from out_data to SPI device and place MISO data in in_data This function just...
Definition spi.c:142
G4 DMA Peripheral public API implementation.
SPI_CPHA
SPI clock phase.
Definition spi.h:34
@ SPI_CPHA_FIRST_EDGE
Definition spi.h:35
@ SPI_CPHA_SECOND_EDGE
Definition spi.h:36
SPI_CPOL
SPI clock polarity.
Definition spi.h:26
@ SPI_CPOL_IDLE_HIGH
Definition spi.h:28
@ SPI_CPOL_IDLE_LOW
Definition spi.h:27
void PHAL_SPI_transferBlocking(SPI_InitConfig_t *spi, const uint8_t *out_data, uint8_t *in_data, uint32_t data_len)
Perform a blocking DMA-backed SPI transfer. (Wrapper around PHAL_SPI_transfer.)
Definition spi.c:110
SPI_Mode
SPI operating mode.
Definition spi.h:18
@ SPI_MODE_SLAVE
Definition spi.h:20
@ SPI_MODE_MASTER
Definition spi.h:19
void PHAL_SPI_txCallback(SPI_InitConfig_t *spi)
Weak callback fired when a DMA-backed SPI transfer completes.
Definition spi.c:20
A configured DMA transfer: fixed wiring + chosen parameters.
Definition dma.h:77
Configuration entry for SPI initilization.
Definition spi.h:25
SPI_CPOL cpol
Definition spi.h:51
PHAL_DMA_Handle_t * rx_dma
Definition spi.h:54
PHAL_DMA_Handle_t * tx_dma
Definition spi.h:55
SPI_CPHA cpha
Definition spi.h:52
SPI_Mode mode
Definition spi.h:45