RTEMS  5.1
Data Structures | Macros | Enumerations | Functions
qspi.h File Reference

Go to the source code of this file.

Data Structures

struct  QspiMemCmd_t
 qspi command structure More...
 
struct  QspiBuffer_t
 qspi buffer structure More...
 
struct  QspiInstFrame_t
 qspi frame structure for QSPI mode More...
 
union  QspiInstFrame_t::_QspiInstFrame
 
struct  QspiInstFrame_t::_QspiInstFrame::_QspiInstFrameBM
 
struct  Qspid_t
 qspi driver structure More...
 

Macros

#define QSPI_SCBR(baudrate, masterClock)   ((uint32_t) (masterClock / baudrate) << 8)
 
#define QSPI_DLYBS(delay, masterClock)   ((uint32_t) (((masterClock / 1000000) * delay) / 1000) << 16)
 
#define QSPI_DLYBCT(delay, masterClock)   ((uint32_t) (((masterClock / 1000000) * delay) / 32000) << 24)
 

Enumerations

enum  Access_t { CmdAccess = 0, ReadAccess, WriteAccess }
 qspi access modes
 
enum  QspiMode_t { SpiMode = QSPI_MR_SMM_SPI, QspiMemMode = QSPI_MR_SMM_MEMORY }
 qspi modes SPI or QSPI
 
enum  QspiClockMode_t { ClockMode_00 = 0, ClockMode_10, ClockMode_01, ClockMode_11 }
 qspi clock modes , regarding clock phase and clock polarity
 
enum  QspidStatus_t {
  QSPI_SUCCESS = 0, QSPI_BUSY, QSPI_BUSY_SENDING, QSPI_READ_ERROR,
  QSPI_WRITE_ERROR, QSPI_UNKNOWN_ERROR, QSPI_INIT_ERROR, QSPI_INPUT_ERROR,
  QSPI_TOTAL_ERROR
}
 qspi status codes
 
enum  QspiStatus_t {
  IsReceived = QSPI_SR_RDRF, IsTxSent = QSPI_SR_TDRE, IsTxEmpty = QSPI_SR_TXEMPTY, IsOverrun = QSPI_SR_OVRES,
  IsCsRise = QSPI_SR_CSR, IsCsAsserted = QSPI_SR_CSS, IsEofInst = QSPI_SR_INSTRE, IsEnabled = QSPI_SR_QSPIENS
}
 qspi status regiter bits
 

Functions

void QSPI_SwReset (Qspi *pQspi)
 Resets a QSPI peripheral. More...
 
void QSPI_Disable (Qspi *pQspi)
 Disables a QSPI peripheral. More...
 
void QSPI_Enable (Qspi *pQspi)
 Enables a QSPI peripheral. More...
 
QspidStatus_t QSPI_EndTransfer (Qspi *pQspi)
 Ends ongoing transfer by releasing CS of QSPI peripheral. More...
 
uint32_t QSPI_GetStatus (Qspi *pQspi, const QspiStatus_t rStatus)
 Get the current status register of the given QSPI peripheral. More...
 
void QSPI_ConfigureClock (Qspi *pQspi, QspiClockMode_t ClockMode, uint32_t dwClockCfg)
 Configures peripheral clock of a QSPI/SPI peripheral. More...
 
QspidStatus_t QSPI_SingleReadSPI (Qspid_t *pQspid, uint16_t *const pData)
 Reads the data received by a SPI peripheral. This method must be called after a successful SPI_Write call. More...
 
QspidStatus_t QSPI_MultiReadSPI (Qspid_t *pQspid, uint16_t *const pData, uint32_t NumOfBytes)
 Reads multiple data received by a SPI peripheral. This method must be called after a successful SPI_Write call. More...
 
QspidStatus_t QSPI_SingleWriteSPI (Qspid_t *pQspid, uint16_t const *pData)
 Sends a single data through a SPI peripheral. More...
 
QspidStatus_t QSPI_MultiWriteSPI (Qspid_t *pQspid, uint16_t const *pData, uint32_t NumOfBytes)
 Sends multiple data through a SPI peripheral. More...
 
QspidStatus_t QSPI_EnableIt (Qspi *pQspi, uint32_t dwSources)
 Enables one or more interrupt sources of a QSPI peripheral. More...
 
QspidStatus_t QSPI_DisableIt (Qspi *pQspi, uint32_t dwSources)
 Disables one or more interrupt sources of a QSPI peripheral. More...
 
uint32_t QSPI_GetItMask (Qspi *pQspi)
 Return the interrupt mask register. More...
 
uint32_t QSPI_GetEnabledItStatus (Qspi *pQspi)
 Returns enabled interrupt status. More...
 
QspidStatus_t QSPI_ConfigureInterface (Qspid_t *pQspid, QspiMode_t Mode, uint32_t dwConfiguration)
 Configures QSPI/SPI. More...
 
QspidStatus_t QSPI_SendCommand (Qspid_t *pQspi, uint8_t const KeepCfg)
 Send an instruction over QSPI (oly a flash command no data) More...
 
QspidStatus_t QSPI_SendCommandWithData (Qspid_t *pQspi, uint8_t const KeepCfg)
 Send instruction over QSPI with data. More...
 
QspidStatus_t QSPI_ReadCommand (Qspid_t *pQspi, uint8_t const KeepCfg)
 Send instruction over QSPI to read data. More...
 
QspidStatus_t QSPI_EnableMemAccess (Qspid_t *pQspi, uint8_t const KeepCfg, uint8_t ScrambleFlag)
 Sends an instruction over QSPI and configures other related address like Addr , Frame and synchronise bus access before data read or write. More...
 
QspidStatus_t QSPI_ReadWriteMem (Qspid_t *pQspid, Access_t const ReadWrite)
 Writes or reads the QSPI memory (0x80000000) to transmit or receive data from Flash memory. More...
 

Detailed Description

Interface for Serial Peripheral Interface (SPI) controller.

Macro Definition Documentation

◆ QSPI_DLYBCT

#define QSPI_DLYBCT (   delay,
  masterClock 
)    ((uint32_t) (((masterClock / 1000000) * delay) / 32000) << 24)

Calculates the value of the CSR DLYBCT field given the desired delay (in ns)

◆ QSPI_DLYBS

#define QSPI_DLYBS (   delay,
  masterClock 
)    ((uint32_t) (((masterClock / 1000000) * delay) / 1000) << 16)

Calculates the value of the CSR DLYBS field given the desired delay (in ns)

◆ QSPI_SCBR

#define QSPI_SCBR (   baudrate,
  masterClock 
)    ((uint32_t) (masterClock / baudrate) << 8)

Here are several macros which should be used when configuring a SPI peripheral.

SPI Configuration Macros

  • QSPI_PCS
  • QSPI_SCBR
  • QSPI_DLYBS
  • QSPI_DLYBCTCalculates the value of the CSR SCBR field given the baudrate and MCK.

Function Documentation

◆ QSPI_ConfigureClock()

void QSPI_ConfigureClock ( Qspi pQspi,
QspiClockMode_t  ClockMode,
uint32_t  dwClockCfg 
)

Configures peripheral clock of a QSPI/SPI peripheral.

Parameters
pQspiPointer to an Qspi instance.
dwConfigurationDesired clock configuration.

◆ QSPI_ConfigureInterface()

QspidStatus_t QSPI_ConfigureInterface ( Qspid_t pQspid,
QspiMode_t  Mode,
uint32_t  dwConfiguration 
)

Configures QSPI/SPI.

Parameters
pQspiPointer to an Qspi instance.
ModeMode for QSPI or SPI
dwConfigurationConfig of SPI or QSPI mode

◆ QSPI_Disable()

void QSPI_Disable ( Qspi pQspi)

Disables a QSPI peripheral.

Parameters
pQspiPointer to a Qspi instance.

◆ QSPI_DisableIt()

QspidStatus_t QSPI_DisableIt ( Qspi pQspi,
uint32_t  dwSources 
)

Disables one or more interrupt sources of a QSPI peripheral.

Parameters
pQspiPointer to a Qspi instance.
sourcesBitwise OR of selected interrupt sources.

◆ QSPI_Enable()

void QSPI_Enable ( Qspi pQspi)

Enables a QSPI peripheral.

Parameters
pQspiPointer to a Qspi instance.

◆ QSPI_EnableIt()

QspidStatus_t QSPI_EnableIt ( Qspi pQspi,
uint32_t  dwSources 
)

Enables one or more interrupt sources of a QSPI peripheral.

Parameters
pQspiPointer to a Qspi instance.
sourcesBitwise OR of selected interrupt sources.

◆ QSPI_EnableMemAccess()

QspidStatus_t QSPI_EnableMemAccess ( Qspid_t pQspid,
uint8_t const  KeepCfg,
uint8_t  ScrambleFlag 
)

Sends an instruction over QSPI and configures other related address like Addr , Frame and synchronise bus access before data read or write.

Parameters
pQspiPointer to an Qspi instance.
KeepCfgTo keep Instruction from value or resets to zero
ScrambleFlagEnable or disable scramble on QSPI
Returns
Returns 1 if At least one instruction end has been detected since the last read of QSPI_SR.; otherwise returns 0.

◆ QSPI_EndTransfer()

QspidStatus_t QSPI_EndTransfer ( Qspi pQspi)

Ends ongoing transfer by releasing CS of QSPI peripheral.

Parameters
pQspiPointer to an Qspi instance.

◆ QSPI_GetEnabledItStatus()

uint32_t QSPI_GetEnabledItStatus ( Qspi pQspi)

Returns enabled interrupt status.

Returns
Qspi interrupt mask register.

◆ QSPI_GetItMask()

uint32_t QSPI_GetItMask ( Qspi pQspi)

Return the interrupt mask register.

Returns
Qspi interrupt mask register.

◆ QSPI_GetStatus()

uint32_t QSPI_GetStatus ( Qspi pQspi,
const QspiStatus_t  rStatus 
)

Get the current status register of the given QSPI peripheral.

Note
This resets the internal value of the status register, so further read may yield different values.
Parameters
pQspiPointer to a Qspi instance.
rStatusCompare status with given status bit
Returns
QSPI status register.

◆ QSPI_MultiReadSPI()

QspidStatus_t QSPI_MultiReadSPI ( Qspid_t pQspid,
uint16_t *const  pData,
uint32_t  NumOfBytes 
)

Reads multiple data received by a SPI peripheral. This method must be called after a successful SPI_Write call.

Parameters
pQspidPointer to a Qspi instance.
pDataPointer to read buffer
NumOfBytesNum of bytes to read
Returns
Qspi status

◆ QSPI_MultiWriteSPI()

QspidStatus_t QSPI_MultiWriteSPI ( Qspid_t pQspid,
uint16_t const *  pData,
uint32_t  NumOfBytes 
)

Sends multiple data through a SPI peripheral.

Parameters
pQspidPointer to a Qspi instance.
pDataPointer to a Tx buffer
NumOfBytesNum of data to send.

◆ QSPI_ReadCommand()

QspidStatus_t QSPI_ReadCommand ( Qspid_t pQspid,
uint8_t const  KeepCfg 
)

Send instruction over QSPI to read data.

Parameters
pQspiPointer to an Qspi instance.
KeepCfgTo keep Instruction from value or resets to zero
Returns
Returns 1 if At least one instruction end has been detected since the last read of QSPI_SR.; otherwise returns 0.

◆ QSPI_ReadWriteMem()

QspidStatus_t QSPI_ReadWriteMem ( Qspid_t pQspid,
Access_t const  ReadWrite 
)

Writes or reads the QSPI memory (0x80000000) to transmit or receive data from Flash memory.

Parameters
pQspiPointer to an Qspi instance.
ReadWriteFlag to indicate read/write QSPI memory access
Returns
Returns 1 if At least one instruction end has been detected since the last read of QSPI_SR.; otherwise returns 0.

◆ QSPI_SendCommand()

QspidStatus_t QSPI_SendCommand ( Qspid_t pQspid,
uint8_t const  KeepCfg 
)

Send an instruction over QSPI (oly a flash command no data)

Parameters
pQspiPointer to an Qspi instance.
KeepCfgTo keep Instruction fram value or restes to zero
Returns
Returns 1 if At least one instruction end has been detected since the last read of QSPI_SR.; otherwise returns 0.

◆ QSPI_SendCommandWithData()

QspidStatus_t QSPI_SendCommandWithData ( Qspid_t pQspid,
uint8_t const  KeepCfg 
)

Send instruction over QSPI with data.

Parameters
pQspiPointer to an Qspi instance.
KeepCfgTo keep Instruction fram value or restes to zero
Returns
Returns 1 if At least one instruction end has been detected since the last read of QSPI_SR.; otherwise returns 0.

◆ QSPI_SingleReadSPI()

QspidStatus_t QSPI_SingleReadSPI ( Qspid_t pQspid,
uint16_t *const  pData 
)

Reads the data received by a SPI peripheral. This method must be called after a successful SPI_Write call.

Parameters
pQspidPointer to a Qspi instance.
pDataBuffer to put read value
Returns
Qspi status

◆ QSPI_SingleWriteSPI()

QspidStatus_t QSPI_SingleWriteSPI ( Qspid_t pQspid,
uint16_t const *  pData 
)

Sends a single data through a SPI peripheral.

Parameters
pQspidPointer to a Qspi instance.
pDataPointer to Tx data
Returns
Qspi status

◆ QSPI_SwReset()

void QSPI_SwReset ( Qspi pQspi)

Resets a QSPI peripheral.

Parameters
pQspiPointer to a Qspi instance.