QSPI Octal-SPI
Description
QSPI Octal-SPI Controller API.
These QSPI functions provide basic support for using the QSPI peripheral in the following configurations:
- Direct Read/Write, used for memory mapped access to external memory.
- STIG Command, used for configuring and executing commands on the external memory device.
Indirect read/write, PHY configuration, and Execute-In-Place (XIP) configurations are not supported.
The example below shows how to set up the QSPI for direct read and write operation:
To configure an external flash, commands can be set up and executed using the Software Triggered Instruction Generator (STIG) function of the QSPI, as shown in the example below:
Data Structures |
|
struct | QSPI_ReadConfig_TypeDef |
QSPI Device Read Instruction Configuration Structure.
|
|
struct | QSPI_WriteConfig_TypeDef |
QSPI Device Write Instruction Configuration Structure.
|
|
struct | QSPI_DelayConfig_TypeDef |
QSPI Device Delay Configuration Structure.
|
|
struct | QSPI_StigCmd_TypeDef |
Defines command to be executed using STIG mechanism.
|
|
struct | QSPI_Init_TypeDef |
QSPI initialization structure.
|
|
Functions |
|
void | QSPI_Init (QSPI_TypeDef *qspi, const QSPI_Init_TypeDef *init) |
Initialize QSPI.
|
|
void | QSPI_ReadConfig (QSPI_TypeDef *qspi, const QSPI_ReadConfig_TypeDef *config) |
Configure Read Operations.
|
|
void | QSPI_WriteConfig (QSPI_TypeDef *qspi, const QSPI_WriteConfig_TypeDef *config) |
Configure Write Operations.
|
|
void | QSPI_ExecStigCmd (QSPI_TypeDef *qspi, const QSPI_StigCmd_TypeDef *stigCmd) |
Execute a STIG command.
|
|
void | QSPI_WaitForIdle (QSPI_TypeDef *qspi) |
Wait for the QSPI to go into idle state.
|
|
uint16_t | QSPI_GetWriteLevel (QSPI_TypeDef *qspi) |
Get the fill level of the write partition of the QSPI internal SRAM.
|
|
uint16_t | QSPI_GetReadLevel (QSPI_TypeDef *qspi) |
Get the fill level of the read partition of the QSPI internal SRAM.
|
|
void | QSPI_Enable (QSPI_TypeDef *qspi, bool enable) |
Enable/disable Quad SPI.
|
|
uint32_t | QSPI_IntGet (QSPI_TypeDef *qspi) |
Get the current interrupt flags.
|
|
void | QSPI_IntClear (QSPI_TypeDef *qspi, uint32_t flags) |
Clear interrupt flags.
|
|
void | QSPI_IntEnable (QSPI_TypeDef *qspi, uint32_t flags) |
Enable interrupts.
|
|
void | QSPI_IntDisable (QSPI_TypeDef *qspi, uint32_t flags) |
Disable interrupts.
|
|
Macros |
|
#define | QSPI_READCONFIG_DEFAULT |
Default Read Configuration Structure.
|
|
#define | QSPI_WRITECONFIG_DEFAULT |
Default Write Configuration Structure.
|
|
#define | QSPI_INIT_DEFAULT |
Default configuration for
QSPI_Init_TypeDef
structure.
|
|
Enumerations |
|
enum |
QSPI_TransferType_TypeDef
{
qspiTransferSingle = 0, qspiTransferDual = 1, qspiTransferQuad = 2, qspiTransferOctal = 3 } |
Transfer type.
|
|
Function Documentation
◆ QSPI_Init()
void QSPI_Init | ( | QSPI_TypeDef * |
qspi,
|
const QSPI_Init_TypeDef * |
init
|
||
) |
Initialize QSPI.
- Parameters
-
[in] qspi
A pointer to the QSPI peripheral register block. [in] init
A pointer to the initialization structure used to configure QSPI.
◆ QSPI_ReadConfig()
void QSPI_ReadConfig | ( | QSPI_TypeDef * |
qspi,
|
const QSPI_ReadConfig_TypeDef * |
config
|
||
) |
Configure Read Operations.
- Parameters
-
[in] qspi
A pointer to the QSPI peripheral register block. [in] config
A pointer to the configuration structure for QSPI read operations.
◆ QSPI_WriteConfig()
void QSPI_WriteConfig | ( | QSPI_TypeDef * |
qspi,
|
const QSPI_WriteConfig_TypeDef * |
config
|
||
) |
Configure Write Operations.
- Parameters
-
[in] qspi
A pointer to the QSPI peripheral register block. [in] config
A pointer to the configuration structure for QSPI write operations.
◆ QSPI_ExecStigCmd()
void QSPI_ExecStigCmd | ( | QSPI_TypeDef * |
qspi,
|
const QSPI_StigCmd_TypeDef * |
stigCmd
|
||
) |
Execute a STIG command.
STIG is used when the application needs to access status registers, configuration registers or perform erase functions. STIG commands can be used to perform any instruction that the flash device supports.
- Parameters
-
[in] qspi
A pointer to the QSPI peripheral register block. [in] stigCmd
A pointer to a structure that describes the STIG command.
◆ QSPI_WaitForIdle()
|
inline |
Wait for the QSPI to go into idle state.
- Parameters
-
[in] qspi
Pointer to QSPI peripheral register block.
◆ QSPI_GetWriteLevel()
|
inline |
Get the fill level of the write partition of the QSPI internal SRAM.
- Parameters
-
[in] qspi
Pointer to QSPI peripheral register block.
- Returns
- SRAM fill level of the write partition. The value is the number of 4 byte words in the write partition.
◆ QSPI_GetReadLevel()
|
inline |
Get the fill level of the read partition of the QSPI internal SRAM.
- Parameters
-
[in] qspi
Pointer to QSPI peripheral register block.
- Returns
- SRAM fill level of the read partition. The value is the number of 4 byte words in the read partition.
◆ QSPI_Enable()
|
inline |
Enable/disable Quad SPI.
- Parameters
-
[in] qspi
Pointer to QSPI peripheral register block. [in] enable
true to enable Quad SPI, false to disable Quad SPI.
◆ QSPI_IntGet()
|
inline |
Get the current interrupt flags.
- Parameters
-
[in] qspi
Pointer to QSPI peripheral register block.
- Returns
- This functions returns the current interrupt flags that are set.
◆ QSPI_IntClear()
|
inline |
Clear interrupt flags.
- Parameters
-
[in] qspi
Pointer to QSPI peripheral register block. [in] flags
The interrupt flags to clear.
◆ QSPI_IntEnable()
|
inline |
Enable interrupts.
- Parameters
-
[in] qspi
Pointer to QSPI peripheral register block. [in] flags
The interrupt flags to enable.
◆ QSPI_IntDisable()
|
inline |
Disable interrupts.
- Parameters
-
[in] qspi
Pointer to QSPI peripheral register block. [in] flags
The interrupt flags to disable.
Macro Definition Documentation
◆ QSPI_READCONFIG_DEFAULT
#define QSPI_READCONFIG_DEFAULT |
Default Read Configuration Structure.
◆ QSPI_WRITECONFIG_DEFAULT
#define QSPI_WRITECONFIG_DEFAULT |
Default Write Configuration Structure.
◆ QSPI_INIT_DEFAULT
#define QSPI_INIT_DEFAULT |
Default configuration for QSPI_Init_TypeDef structure.
Enumeration Type Documentation
◆ QSPI_TransferType_TypeDef
Transfer type.