RTEMS: bsps/arm/atsam/include/libchip/include/qspi.h File Reference

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
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.
void | QSPI_Disable (Qspi *pQspi)
| Disables a QSPI peripheral.
void | QSPI_Enable (Qspi *pQspi)
| Enables a QSPI peripheral.
QspidStatus_t | QSPI_EndTransfer (Qspi *pQspi)
| Ends ongoing transfer by releasing CS of QSPI peripheral.
uint32_t | QSPI_GetStatus (Qspi *pQspi, const QspiStatus_t rStatus)
| Get the current status register of the given QSPI peripheral.
void | QSPI_ConfigureClock (Qspi *pQspi, QspiClockMode_t ClockMode, uint32_t dwClockCfg)
| Configures peripheral clock of a QSPI/SPI peripheral.
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.
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.
QspidStatus_t | QSPI_SingleWriteSPI (Qspid_t *pQspid, uint16_t const *pData)
| Sends a single data through a SPI peripheral.
QspidStatus_t | QSPI_MultiWriteSPI (Qspid_t *pQspid, uint16_t const *pData, uint32_t NumOfBytes)
| Sends multiple data through a SPI peripheral.
QspidStatus_t | QSPI_EnableIt (Qspi *pQspi, uint32_t dwSources)
| Enables one or more interrupt sources of a QSPI peripheral.
QspidStatus_t | QSPI_DisableIt (Qspi *pQspi, uint32_t dwSources)
| Disables one or more interrupt sources of a QSPI peripheral.
uint32_t | QSPI_GetItMask (Qspi *pQspi)
| Return the interrupt mask register.
uint32_t | QSPI_GetEnabledItStatus (Qspi *pQspi)
| Returns enabled interrupt status.
QspidStatus_t | QSPI_ConfigureInterface (Qspid_t *pQspid, QspiMode_t Mode, uint32_t dwConfiguration)
| Configures QSPI/SPI.
QspidStatus_t | QSPI_SendCommand (Qspid_t *pQspi, uint8_t const KeepCfg)
| Send an instruction over QSPI (oly a flash command no data)
QspidStatus_t | QSPI_SendCommandWithData (Qspid_t *pQspi, uint8_t const KeepCfg)
| Send instruction over QSPI with data.
QspidStatus_t | QSPI_ReadCommand (Qspid_t *pQspi, uint8_t const KeepCfg)
| Send instruction over QSPI to read data.
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.
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.

## 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_DLYBCT Calculates 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

  pQspi | Pointer to an Qspi instance.
  dwConfiguration | Desired clock configuration.

## ◆ QSPI_ConfigureInterface()

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

Configures QSPI/SPI.

Parameters

  pQspi | Pointer to an Qspi instance.
  Mode | Mode for QSPI or SPI
  dwConfiguration | Config of SPI or QSPI mode

## ◆ QSPI_Disable()

void QSPI_Disable | ( | Qspi * | pQspi | ) |

Disables a QSPI peripheral.

Parameters

  pQspi | Pointer 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

  pQspi | Pointer to a Qspi instance.
  sources | Bitwise OR of selected interrupt sources.

## ◆ QSPI_Enable()

void QSPI_Enable | ( | Qspi * | pQspi | ) |

Enables a QSPI peripheral.

Parameters

  pQspi | Pointer 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

  pQspi | Pointer to a Qspi instance.
  sources | Bitwise 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

  pQspi | Pointer to an Qspi instance.
  KeepCfg | To keep Instruction from value or resets to zero
  ScrambleFlag | Enable 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

  pQspi | Pointer 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

  pQspi | Pointer to a Qspi instance.
  rStatus | Compare 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

  pQspid | Pointer to a Qspi instance.
  pData | Pointer to read buffer
  NumOfBytes | Num 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

  pQspid | Pointer to a Qspi instance.
  pData | Pointer to a Tx buffer
  NumOfBytes | Num 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

  pQspi | Pointer to an Qspi instance.
  KeepCfg | To 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

  pQspi | Pointer to an Qspi instance.
  ReadWrite | Flag 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

  pQspi | Pointer to an Qspi instance.
  KeepCfg | To 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

  pQspi | Pointer to an Qspi instance.
  KeepCfg | To 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

  pQspid | Pointer to a Qspi instance.
  pData | Buffer 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

  pQspid | Pointer to a Qspi instance.
  pData | Pointer to Tx data

Returns
  Qspi status

## ◆ QSPI_SwReset()

void QSPI_SwReset | ( | Qspi * | pQspi | ) |

Resets a QSPI peripheral.

Parameters

  pQspi | Pointer to a Qspi instance.