61typedef enum { SD_SPI_PORT_1 = 0, SD_SPI_PORT_2, SD_SPI_PORT_3, NUM_SD_SPI_PORTS }
SdSpiPort;
GpioState
High or low GPIO state.
Definition: gpio.h:37
StatusCode
StatusCodes for various errors.
Definition: status.h:27
StatusCode sd_spi_set_frequency(SdSpiPort spi, SdSpiBaudrate baudrate)
Change the baudrate of an initialized SPI port.
Definition: sd_card_spi.c:190
StatusCode sd_spi_rx(SdSpiPort spi, uint8_t *rx_data, size_t rx_len, uint8_t placeholder)
Receive data from SD card via SPI.
Definition: sd_card_spi.c:131
StatusCode sd_spi_cs_set_state(SdSpiPort spi, GpioState state)
Set the CS (chip select) GPIO state.
Definition: sd_card_spi.c:176
StatusCode sd_spi_exchange(SdSpiPort spi, uint8_t *tx_data, size_t tx_len, uint8_t *rx_data, size_t rx_len)
Exchange data over SPI.
Definition: sd_card_spi.c:147
StatusCode sd_spi_init(SdSpiPort spi, const SdSpiSettings *settings)
Initialize SD SPI port with given settings.
Definition: sd_card_spi.c:57
GpioState sd_spi_cs_get_state(SdSpiPort spi)
Get the current state of the CS (chip select) pin.
Definition: sd_card_spi.c:183
SdSpiMode
SPI modes (CPOL and CPHA settings)
Definition: sd_card_spi.h:50
SdSpiBaudrate
SD Card SPI baudrate options.
Definition: sd_card_spi.h:35
SdSpiPort
SD SPI port options.
Definition: sd_card_spi.h:61
StatusCode sd_spi_tx(SdSpiPort spi, uint8_t *tx_data, size_t tx_len)
Transmit data to SD card via SPI.
Definition: sd_card_spi.c:122
@ SD_SPI_MODE_1
Definition: sd_card_spi.h:52
@ NUM_SD_SPI_MODES
Definition: sd_card_spi.h:55
@ SD_SPI_MODE_2
Definition: sd_card_spi.h:53
@ SD_SPI_MODE_3
Definition: sd_card_spi.h:54
@ SD_SPI_MODE_0
Definition: sd_card_spi.h:51
@ NUM_SD_SPI_BAUDRATES
Definition: sd_card_spi.h:44
@ SD_SPI_BAUDRATE_20MHZ
Definition: sd_card_spi.h:42
@ SD_SPI_BAUDRATE_40MHZ
Definition: sd_card_spi.h:43
@ SD_SPI_BAUDRATE_2_5MHZ
Definition: sd_card_spi.h:39
@ SD_SPI_BAUDRATE_312_5KHZ
Definition: sd_card_spi.h:36
@ SD_SPI_BAUDRATE_625KHZ
Definition: sd_card_spi.h:37
@ SD_SPI_BAUDRATE_5MHZ
Definition: sd_card_spi.h:40
@ SD_SPI_BAUDRATE_10MHZ
Definition: sd_card_spi.h:41
@ SD_SPI_BAUDRATE_1_25MHZ
Definition: sd_card_spi.h:38
Port and pin data.
Definition: network.h:62
Configuration settings for initializing an SD SPI port.
Definition: sd_card_spi.h:66
SdSpiBaudrate baudrate
Definition: sd_card_spi.h:67
GpioAddress sclk
Definition: sd_card_spi.h:71
GpioAddress cs
Definition: sd_card_spi.h:72
SdSpiMode mode
Definition: sd_card_spi.h:68
GpioAddress mosi
Definition: sd_card_spi.h:69
GpioAddress miso
Definition: sd_card_spi.h:70