25#ifndef _DMA_USART_SPI_H_INC
26#define _DMA_USART_SPI_H_INC
29#include <basictypes.h>
34#error QuadSPI driver is a C++ only library
45#define DEFAULT_USART_SPI_MODULE 0
46#define USART_SPI_MODULE_COUNT 2
65 virtual void ReadyHW()
override;
66 virtual spiDriverStruct *getCtx()
override {
return UsartSpiDriverCtx + m_moduleNum; }
67 inline Usart * usartSpi() {
return USART0 + m_moduleNum; }
72 virtual void dumpRegs()
override;
104 uint8_t transferSizeInBits = 8, uint8_t peripheralChipSelects = 0x00,
105 uint8_t chipSelectPolarity = 0x0F, uint8_t clockPolarity = 0,
106 uint8_t clockPhase = 1, BOOL doutHiz = TRUE,
107 uint8_t csToClockDelay = 0, uint8_t delayAfterTransfer = 0 );
124 virtual uint8_t
Init( uint32_t baudRateInBps = 2000000,
125 uint8_t transferSizeInBits = 8, uint8_t peripheralChipSelects = 0x00,
126 uint8_t chipSelectPolarity = 0x0F, uint8_t clockPolarity = 0,
127 uint8_t clockPhase = 1, BOOL doutHiz = TRUE,
128 uint8_t csToClockDelay = 0, uint8_t delayAfterTransfer = 0 )
override;
157 virtual uint8_t
Start( uint8_t *transmitBufferPtr,
volatile uint8_t *receiveBufferPtr,
169 virtual inline uint8_t
Tx( uint8_t *transmitBufferPtr, uint32_t byteCount,
171 {
return Start(transmitBufferPtr, NULL, byteCount, csReturnToInactive); }
182 inline uint8_t
Rx( uint8_t *receiveBufferPtr, uint32_t byteCount,
184 {
return Start(NULL, receiveBufferPtr, byteCount, csReturnToInactive); }
241 virtual inline bool SetCS( uint8_t CS )
override
244 if (m_inProgress) {
return false; }
250 friend void USART_DMA_Isr(XdmaCh_t *dma,
int module);
USART in SPI mode Peripheral Module Class.
Definition usart.h:56
uint8_t Rx(uint8_t *receiveBufferPtr, uint32_t byteCount, int csReturnToInactive=DEASSERT_AFTER_LAST)
Convenience function for unidirectional receive.
Definition usart.h:182
SPI_USART(uint8_t USARTModule, uint32_t baudRateInBps, uint8_t transferSizeInBits=8, uint8_t peripheralChipSelects=0x00, uint8_t chipSelectPolarity=0x0F, uint8_t clockPolarity=0, uint8_t clockPhase=1, BOOL doutHiz=TRUE, uint8_t csToClockDelay=0, uint8_t delayAfterTransfer=0)
Create a SPI object and Initialize with parameters.
virtual bool SetCS(uint8_t CS) override
Set the chip select configuration for the SPI object's bus transactions.
Definition usart.h:241
virtual uint8_t Init(uint32_t baudRateInBps=2000000, uint8_t transferSizeInBits=8, uint8_t peripheralChipSelects=0x00, uint8_t chipSelectPolarity=0x0F, uint8_t clockPolarity=0, uint8_t clockPhase=1, BOOL doutHiz=TRUE, uint8_t csToClockDelay=0, uint8_t delayAfterTransfer=0) override
Initialize an existing SPI object.
virtual uint32_t SetBusSpeed(uint32_t maxSpeed) override
Set the SPI bus speed Will attempt to set the desired bus speed. It may be different based on the ava...
SPI_USART(uint8_t USARTModule)
Create a SPI object.
virtual uint8_t Start(uint8_t *transmitBufferPtr, volatile uint8_t *receiveBufferPtr, uint32_t byteCount, int csReturnToInactive=DEASSERT_AFTER_LAST) override
Start a SPI transfer.
virtual uint8_t Tx(uint8_t *transmitBufferPtr, uint32_t byteCount, int csReturnToInactive=DEASSERT_AFTER_LAST) override
Convenience function for unidirectional transmit.
Definition usart.h:169
SPI Peripheral Module Class.
Definition cortex-m7/cpu/SAME70/include/dspi.h:138
@ DEASSERT_AFTER_LAST
Definition coldfire/cpu/MCF5441X/include/dspi.h:165
#define USART_SPI_MODULE_COUNT
Number of modules: 0, 1.
Definition usart.h:46
Variables/configurations for a DSPI transfer.
Definition cortex-m7/cpu/SAME70/include/dspi.h:114