NEORV32 Software Framework Documentation
The NEORV32 RISC-V Processor
|
Serial peripheral interface controller (SPI) HW driver source file. More...
#include <neorv32.h>
Functions | |
int | neorv32_spi_available (void) |
void | neorv32_spi_setup (int prsc, int cdiv, int clk_phase, int clk_polarity, uint32_t irq_mask) |
void | neorv32_spi_highspeed_enable (void) |
void | neorv32_spi_highspeed_disable (void) |
uint32_t | neorv32_spi_get_clock_speed (void) |
void | neorv32_spi_disable (void) |
void | neorv32_spi_enable (void) |
int | neorv32_spi_get_fifo_depth (void) |
void | neorv32_spi_cs_en (int cs) |
void | neorv32_spi_cs_dis (void) |
uint8_t | neorv32_spi_trans (uint8_t tx_data) |
void | neorv32_spi_put_nonblocking (uint8_t tx_data) |
uint8_t | neorv32_spi_get_nonblocking (void) |
void | neorv32_spi_cs_en_nonblocking (int cs) |
void | neorv32_spi_cs_dis_nonblocking (void) |
int | neorv32_spi_check_cs (void) |
int | neorv32_spi_busy (void) |
Serial peripheral interface controller (SPI) HW driver source file.
int neorv32_spi_available | ( | void | ) |
Check if SPI unit was synthesized.
int neorv32_spi_busy | ( | void | ) |
Check if SPI transceiver is busy or TX FIFO not empty.
int neorv32_spi_check_cs | ( | void | ) |
Check if any chip-select line is active.
void neorv32_spi_cs_dis | ( | void | ) |
Deactivate currently active SPI chip select signal.
void neorv32_spi_cs_dis_nonblocking | ( | void | ) |
Deactivate currently active SPI chip select signal (non-blocking).
void neorv32_spi_cs_en | ( | int | cs | ) |
Activate single SPI chip select signal.
cs | Chip select line to activate (0..7). |
void neorv32_spi_cs_en_nonblocking | ( | int | cs | ) |
Activate single SPI chip select signal (non-blocking).
cs | Chip select line to activate (0..7). |
void neorv32_spi_disable | ( | void | ) |
Disable SPI controller.
void neorv32_spi_enable | ( | void | ) |
Enable SPI controller.
uint32_t neorv32_spi_get_clock_speed | ( | void | ) |
Get configured clock speed in Hz.
int neorv32_spi_get_fifo_depth | ( | void | ) |
Get SPI FIFO depth.
uint8_t neorv32_spi_get_nonblocking | ( | void | ) |
Get SPI RX data (non-blocking).
void neorv32_spi_highspeed_disable | ( | void | ) |
Disable high-speed mode.
void neorv32_spi_highspeed_enable | ( | void | ) |
Enable high-speed mode.
void neorv32_spi_put_nonblocking | ( | uint8_t | tx_data | ) |
Put SPI TX data (non-blocking).
tx_data | Transmit data (8-bit, LSB-aligned). |
void neorv32_spi_setup | ( | int | prsc, |
int | cdiv, | ||
int | clk_phase, | ||
int | clk_polarity, | ||
uint32_t | irq_mask ) |
Enable and configure SPI controller. The SPI control register bits are listed in NEORV32_SPI_CTRL_enum.
[in] | prsc | Clock prescaler select (0..7). See NEORV32_CLOCK_PRSC_enum. @prama[in] cdiv Clock divider (0..15). |
[in] | clk_phase | Clock phase (0=sample on rising edge, 1=sample on falling edge). |
[in] | clk_polarity | Clock polarity (when idle). |
[in] | irq_mask | Interrupt configuration bit mask (CTRL's irq_* bits). |
uint8_t neorv32_spi_trans | ( | uint8_t | tx_data | ) |
Perform a single SPI data transfer.
tx_data | Transmit data (8-bit, LSB-aligned). |