modm API documentation
modm::platform::SpiBase Class Reference

#include <modm/platform/spi/spi_base.hpp>

Inheritance diagram for modm::platform::SpiBase:
modm::platform::SpiHal1 modm::platform::SpiHal2 modm::platform::SpiHal3 modm::platform::SpiHal4 modm::platform::SpiHal5 modm::platform::SpiHal6

Public Types

enum  Interrupt : uint32_t {
  RxPacketAvailable = SPI_IER_RXPIE, TxPacketSpaceAvailable = SPI_IER_TXPIE, DuplexPacket = SPI_IER_DXPIE, EndOfTransfer = SPI_IER_EOTIE,
  TxTransferFilled = SPI_IER_TXTFIE, Underrun = SPI_IER_UDRIE, Overrun = SPI_IER_OVRIE, CrcError = SPI_IER_CRCEIE,
  TiFrameError = SPI_IER_TIFREIE, ModeFault = SPI_IER_MODFIE, Reload = SPI_IER_TSERFIE
}
 
enum  StatusFlag : uint32_t {
  RxPacketAvailable = SPI_SR_RXP, TxPacketSpaceAvailable = SPI_SR_TXP, DuplexPacket = SPI_SR_DXP, EndOfTransfer = SPI_SR_EOT,
  TxTransferFilled = SPI_SR_TXTF, Underrun = SPI_SR_UDR, Overrun = SPI_SR_OVR, CrcError = SPI_SR_CRCE,
  TiFrameError = SPI_SR_TIFRE, ModeFault = SPI_SR_MODF, Reload = SPI_SR_TSERF, Suspension = SPI_SR_SUSP,
  TxTransferComplete = SPI_SR_TXC, RxFifoLevel1 = SPI_SR_RXPLVL_1, RxFifoLevel0 = SPI_SR_RXPLVL_0, RxFifoWordNotEmpty = SPI_SR_RXWNE
}
 
enum  MasterSelection : uint32_t { Slave = 0, Master = SPI_CFG2_MASTER, Mask = Master }
 
enum  DataMode : uint32_t {
  DataMode::Mode0 = 0b00, DataMode::Mode1 = SPI_CFG2_CPHA, DataMode::Mode2 = SPI_CFG2_CPOL, Mode3 = SPI_CFG2_CPOL | SPI_CFG2_CPHA,
  Mask = Mode3
}
 
enum  DataOrder : uint32_t { MsbFirst = 0b0, LsbFirst = SPI_CFG2_LSBFRST, Mask = LsbFirst }
 
enum  Prescaler : uint32_t {
  Div2 = 0, Div4 = SPI_CFG1_MBR_0, Div8 = SPI_CFG1_MBR_1, Div16 = SPI_CFG1_MBR_1 | SPI_CFG1_MBR_0,
  Div32 = SPI_CFG1_MBR_2, Div64 = SPI_CFG1_MBR_2 | SPI_CFG1_MBR_0, Div128 = SPI_CFG1_MBR_2 | SPI_CFG1_MBR_1, Div256 = SPI_CFG1_MBR_2 | SPI_CFG1_MBR_1 | SPI_CFG1_MBR_0
}
 
enum  DataSize : uint32_t {
  Bit4 = 3, Bit5 = 4, Bit6 = 5, Bit7 = 6,
  Bit8 = 7, Bit9 = 8, Bit10 = 9, Bit11 = 10,
  Bit12 = 11, Bit13 = 12, Bit14 = 13, Bit15 = 14,
  Bit16 = 15, Bit17 = 16, Bit18 = 17, Bit19 = 18,
  Bit20 = 19, Bit21 = 20, Bit22 = 21, Bit23 = 22,
  Bit24 = 23, Bit25 = 24, Bit26 = 25, Bit27 = 26,
  Bit28 = 27, Bit29 = 28, Bit30 = 29, Bit31 = 30,
  Bit32 = 31
}
 
enum  DmaMode : uint32_t { None = 0, Tx = SPI_CFG1_TXDMAEN, Rx = SPI_CFG1_RXDMAEN, Mask = SPI_CFG1_TXDMAEN | SPI_CFG1_RXDMAEN }
 
enum  DuplexMode : uint32_t {
  FullDuplex = 0, TransmitOnly = SPI_CFG2_COMM_0, ReceiveOnly = SPI_CFG2_COMM_1, HalfDuplex = SPI_CFG2_COMM_1 | SPI_CFG2_COMM_0,
  Mask = HalfDuplex
}
 
enum  SlaveSelectMode { HardwareGpio, Software = SPI_CFG2_SSM }
 
enum  SlaveSelectPolarity { ActiveLow = 0, ActiveHigh = SPI_CFG2_SSIOP }
 
enum  CrcInit : uint32_t { AllZeros = 0, AllOnes = SPI_CR1_TCRCINI | SPI_CR1_RCRCINI, Mask = AllOnes }
 

Public Member Functions

 MODM_FLAGS32 (Interrupt)
 
 MODM_FLAGS32 (StatusFlag)
 
 MODM_FLAGS32 (DmaMode)
 

Detailed Description

Base class for the SPI classes

Provides common definitions that do not depend on the specific SPI instance.

Member Enumeration Documentation

enum modm::platform::SpiBase::DataMode : uint32_t
strong
Enum ValuesDocumentation
Mode0 

clock normal, sample on rising edge

Mode1 

clock normal, sample on falling edge

Mode2 

clock inverted, sample on falling edge clock inverted, sample on rising edge


The documentation for this class was generated from the following file: