bf0_hal_qspi.h

Header file of QSPI HAL module.

Author

Sifli software development team

Defines

SPI_FLASH_OTP_BASE
__HAL_QSPI_EN_HWI(__HANDLE__)

QSPI Enable Hardware Interface .

参数:
  • __HANDLE__ – SPI FLASH handle

返回值:

None

__HAL_QSPI_DIS_HWI(__HANDLE__)

QSPI Disable Hardware Interface .

参数:
  • __HANDLE__ – SPI FLASH handle

返回值:

None

__HAL_QSPI_SET_CMD(__HANDLE__, __CMD__)

QSPI Set Command , do not wait TCF.

参数:
  • __HANDLE__ – SPI FLASH handle

  • __CMD__ – Command for FLASH or PSRAM

返回值:

None

Typedefs

typedef struct __FLASH_HandleTypeDef FLASH_HandleTypeDef

SPI_FLASH initial structure definition.

Enums

enum SPI_FLASH_CMD_E

SPI_FLASH command index.

Values:

enumerator SPI_FLASH_CMD_WREN

write enable, nor+nand

enumerator SPI_FLASH_CMD_WRDI

write disable, nor+nand

enumerator SPI_FLASH_CMD_RDSR

read status register, nor+nand

enumerator SPI_FLASH_CMD_WRSR

write status register, nor+nand

enumerator SPI_FLASH_CMD_PREAD

page read, nand

enumerator SPI_FLASH_CMD_READ

single line read, nor+nand

enumerator SPI_FLASH_CMD_FREAD

fast read , nor + nand

enumerator SPI_FLASH_CMD_DREAD

fast read dual output, nor+nand

enumerator SPI_FLASH_CMD_QREAD

fast read quad output, nor+nand

enumerator SPI_FLASH_CMD_2READ

2 line read, nor+nand

enumerator SPI_FLASH_CMD_4READ

4 line read, nor+nand . ==== 10

enumerator SPI_FLASH_CMD_RDID

read id, nor+nand

enumerator SPI_FLASH_CMD_PLD

load program data, nand

enumerator SPI_FLASH_CMD_QPLD

qual program load, nand

enumerator SPI_FLASH_CMD_PLDR

randome program load, nand

enumerator SPI_FLASH_CMD_QPLDR

qual random program load, nand

enumerator SPI_FLASH_CMD_PEXE

program execute, nand

enumerator SPI_FLASH_CMD_BE

block erase, nand

enumerator SPI_FLASH_CMD_RST

reset, nor+nand

enumerator SPI_FLASH_CMD_RST_EN

reset en, nor

enumerator SPI_FLASH_CMD_RDSR2

read status register 2, nor ==== 20

enumerator SPI_FLASH_CMD_WVSR

write volatile status register, nor

enumerator SPI_FLASH_CMD_PP

PAGE PROGRAM, nor

enumerator SPI_FLASH_CMD_QPP

QUAL PAGE PROGRAM, nor

enumerator SPI_FLASH_CMD_RDEAR

read extended address register, nor

enumerator SPI_FLASH_CMD_WREAR

write extended address register, nor

enumerator SPI_FLASH_CMD_PE

page erase, nor

enumerator SPI_FLASH_CMD_SE

SECTOR erase, nor

enumerator SPI_FLASH_CMD_BE32

BLOCK erase 32KB, nor

enumerator SPI_FLASH_CMD_BE64

BLOCK erase 64KB, nor

enumerator SPI_FLASH_CMD_CE

CHIP ERASE, nor ===== 30

enumerator SPI_FLASH_CMD_RDSR3

read status register 3, nor

enumerator SPI_FLASH_CMD_WRSR3

WRITE status register 3, nor

enumerator SPI_FLASH_CMD_EN4BM

enter 4-byte address mode, nor

enumerator SPI_FLASH_CMD_ET4BM

exit 4-byte address mode, nor

enumerator SPI_FLASH_CMD_RD4BA

read with 4-byte address, nor

enumerator SPI_FLASH_CMD_FR4BA

fast read with 4-byte address, nor

enumerator SPI_FLASH_CMD_FQR4BA

fast read quad output with 4-byte address, nor

enumerator SPI_FLASH_CMD_4RD4BA

4 IO read with 4-byte address, nor

enumerator SPI_FLASH_CMD_PP4BA

page program with 4-byte address, nor

enumerator SPI_FLASH_CMD_QPP4BA

quad page program with 4-byte address, nor ==== 40

enumerator SPI_FLASH_CMD_SE4BA

sector erase with 4-byte address, nor

enumerator SPI_FLASH_CMD_BE4BA

64KB block erase with 4-byte address, nor

enumerator SPI_FLASH_CMD_WRSR2

write status register command 2, nor

enumerator SPI_FLASH_CMD_LEFPA

Last ECC Failue Page Address, NAND

enumerator SPI_FLASH_CMD_BBM

Bad Block Management, NAND

enumerator SPI_FLASH_CMD_RBLUT

Read BBM Look Up Table, NAND

enumerator SPI_FLASH_CMD_CFREAD

Continue fast read with 1 line, NAND

enumerator SPI_FLASH_CMD_C4READ

Continue read with 4 line, NAND

enumerator SPI_FLASH_CMD_RUID

Read Unique ID, NOR

enumerator SPI_FLASH_CMD_RDSCUR

Read Security Register, NOR ====== 50

enumerator SPI_FLASH_CMD_PRSCUR

Program Security Register, NOR

enumerator SPI_FLASH_CMD_ERSCUR

Erase Security Registers, NOR

enumerator SPI_FLASH_CMD_DPD

Deep Power-Down, NOR

enumerator SPI_FLASH_CMD_RDP

Release from Deep Power-Down, NOR

enumerator SPI_FLASH_CMD_DTR4R

DTR 4 IO Read, NOR

enumerator SPI_FLASH_CMD_RDSFDP

Read SFDP(Serial Flash Discoverable Parameter), NOR

enumerator SPI_FLASH_CMD_COUNT

current support flash command

enumerator SPI_FLASH_CMD_WREN

write enable, nor+nand

enumerator SPI_FLASH_CMD_WRDI

write disable, nor+nand

enumerator SPI_FLASH_CMD_RDSR

read status register, nor+nand

enumerator SPI_FLASH_CMD_WRSR

write status register, nor+nand

enumerator SPI_FLASH_CMD_PREAD

page read, nand

enumerator SPI_FLASH_CMD_READ

single line read, nor+nand

enumerator SPI_FLASH_CMD_FREAD

fast read , nor + nand

enumerator SPI_FLASH_CMD_DREAD

fast read dual output, nor+nand

enumerator SPI_FLASH_CMD_QREAD

fast read quad output, nor+nand

enumerator SPI_FLASH_CMD_2READ

2 line read, nor+nand

enumerator SPI_FLASH_CMD_4READ

4 line read, nor+nand . ==== 10

enumerator SPI_FLASH_CMD_RDID

read id, nor+nand

enumerator SPI_FLASH_CMD_PLD

load program data, nand

enumerator SPI_FLASH_CMD_QPLD

qual program load, nand

enumerator SPI_FLASH_CMD_PLDR

randome program load, nand

enumerator SPI_FLASH_CMD_QPLDR

qual random program load, nand

enumerator SPI_FLASH_CMD_PEXE

program execute, nand

enumerator SPI_FLASH_CMD_BE

block erase, nand

enumerator SPI_FLASH_CMD_RST

reset, nor+nand

enumerator SPI_FLASH_CMD_RST_EN

reset en, nor

enumerator SPI_FLASH_CMD_RDSR2

read status register 2, nor ==== 20

enumerator SPI_FLASH_CMD_WVSR

write volatile status register, nor

enumerator SPI_FLASH_CMD_PP

PAGE PROGRAM, nor

enumerator SPI_FLASH_CMD_QPP

QUAL PAGE PROGRAM, nor

enumerator SPI_FLASH_CMD_RDEAR

read extended address register, nor

enumerator SPI_FLASH_CMD_WREAR

write extended address register, nor

enumerator SPI_FLASH_CMD_PE

page erase, nor

enumerator SPI_FLASH_CMD_SE

SECTOR erase, nor

enumerator SPI_FLASH_CMD_BE32

BLOCK erase 32KB, nor

enumerator SPI_FLASH_CMD_BE64

BLOCK erase 64KB, nor

enumerator SPI_FLASH_CMD_CE

CHIP ERASE, nor ===== 30

enumerator SPI_FLASH_CMD_RDSR3

read status register 3, nor

enumerator SPI_FLASH_CMD_WRSR3

WRITE status register 3, nor

enumerator SPI_FLASH_CMD_EN4BM

enter 4-byte address mode, nor

enumerator SPI_FLASH_CMD_ET4BM

exit 4-byte address mode, nor

enumerator SPI_FLASH_CMD_RD4BA

read with 4-byte address, nor

enumerator SPI_FLASH_CMD_FR4BA

fast read with 4-byte address, nor

enumerator SPI_FLASH_CMD_FQR4BA

fast read quad output with 4-byte address, nor

enumerator SPI_FLASH_CMD_4RD4BA

4 IO read with 4-byte address, nor

enumerator SPI_FLASH_CMD_PP4BA

page program with 4-byte address, nor

enumerator SPI_FLASH_CMD_QPP4BA

quad page program with 4-byte address, nor ==== 40

enumerator SPI_FLASH_CMD_SE4BA

sector erase with 4-byte address, nor

enumerator SPI_FLASH_CMD_BE4BA

64KB block erase with 4-byte address, nor

enumerator SPI_FLASH_CMD_WRSR2

write status register command 2, nor

enumerator SPI_FLASH_CMD_LEFPA

Last ECC Failue Page Address, NAND

enumerator SPI_FLASH_CMD_BBM

Bad Block Management, NAND

enumerator SPI_FLASH_CMD_RBLUT

Read BBM Look Up Table, NAND

enumerator SPI_FLASH_CMD_CFREAD

Continue fast read with 1 line, NAND

enumerator SPI_FLASH_CMD_C4READ

Continue read with 4 line, NAND

enumerator SPI_FLASH_CMD_RUID

Read Unique ID, NOR

enumerator SPI_FLASH_CMD_RDSCUR

Read Security Register, NOR ====== 50

enumerator SPI_FLASH_CMD_PRSCUR

Program Security Register, NOR

enumerator SPI_FLASH_CMD_ERSCUR

Erase Security Registers, NOR

enumerator SPI_FLASH_CMD_DPD

Deep Power-Down, NOR

enumerator SPI_FLASH_CMD_RDP

Release from Deep Power-Down, NOR

enumerator SPI_FLASH_CMD_DTR4R

DTR 4 IO Read, NOR

enumerator SPI_FLASH_CMD_RDSFDP

Read SFDP(Serial Flash Discoverable Parameter), NOR

enumerator SPI_FLASH_CMD_COUNT

current support flash command

enum FLASH_MANUF_ID_T

SPI_FLASH manufactory id.

Values:

enumerator FLASH_INVALID_ID

Initial id

enumerator FLASH_SPANSION

Spansion

enumerator FLASH_PUYA

puya

enumerator FLASH_EON

EON

enumerator FLASH_MXIC

Mxic

enumerator FLASH_GIGA

Giga device

enumerator FLASH_WINBOND

winbond

enumerator FLASH_FIDELIX

Fidelix

enumerator FLASH_ESMT

Esmt

enumerator FLASH_NUMONYX

numonyx

enumerator FLASH_MICRON

micro

enumerator FLASH_PM25L

pm25l

enumerator FLASH_FUDAN

fudan

enumerator FLASH_HYF

fudan

enumerator FLASH_UNKNOW_ID

Invalid

enumerator FLASH_INVALID_ID

Initial id

enumerator FLASH_SPANSION

Spansion

enumerator FLASH_PUYA

puya

enumerator FLASH_EON

EON

enumerator FLASH_MXIC

Mxic

enumerator FLASH_GIGA

Giga device

enumerator FLASH_WINBOND

winbond

enumerator FLASH_FIDELIX

Fidelix

enumerator FLASH_ESMT

Esmt

enumerator FLASH_NUMONYX

numonyx

enumerator FLASH_MICRON

micro

enumerator FLASH_PM25L

pm25l

enumerator FLASH_FUDAN

fudan

enumerator FLASH_UNKNOW_ID

Invalid

enum HAL_FLASH_StateTypeDef

SPI_FLASH status define.

Values:

enumerator HAL_FLASH_STATE_RESET

Peripheral not Initialized

enumerator HAL_FLASH_STATE_READY

Peripheral Initialized and ready for use

enumerator HAL_FLASH_STATE_BUSY

an internal process is ongoing

enumerator HAL_FLASH_STATE_ERROR

FLASH error state

enumerator HAL_FLASH_STATE_ABORT

FLASH abort is ongoing

enumerator HAL_FLASH_STATE_RESET

Peripheral not Initialized

enumerator HAL_FLASH_STATE_READY

Peripheral Initialized and ready for use

enumerator HAL_FLASH_STATE_BUSY

an internal process is ongoing

enumerator HAL_FLASH_STATE_ERROR

FLASH error state

enumerator HAL_FLASH_STATE_ABORT

FLASH abort is ongoing

enum HAL_FLASH_ModeDef

SPI_FLASH spi line mode.

Values:

enumerator HAL_FLASH_NOR_MODE

Flash single spi mode

enumerator HAL_FLASH_DMODE

Flash dual spi mode

enumerator HAL_FLASH_QMODE

Flash qual spi mode

enumerator HAL_FLASH_NOR_MODE

Flash single spi mode

enumerator HAL_FLASH_DMODE

Flash dual spi mode

enumerator HAL_FLASH_QMODE

Flash qual spi mode

enum HAL_FLASH_AES_Mode

SPI_FLASH AES mode.

Values:

enumerator HAL_FLASH_AES128

AES 128

enumerator HAL_FLASH_AES256

AES 256

enumerator HAL_FLASH_AES128

AES 128

enumerator HAL_FLASH_AES256

AES 256

enum SPI_FLASH_MODE_E

SPI_FLASH flash type.

Values:

enumerator SPI_MODE_NOR

Flash TYPE NOR mode

enumerator SPI_MODE_NAND

Flash TYPE NAND mode

enumerator SPI_MODE_PSRAM

Flash TYPE QSPI PSRAM mode

enumerator SPI_MODE_OPSRAM

Flash TYPE OPI PSRAM mode

enumerator SPI_MODE_HPSRAM

Flash TYPE HPI PSRAM mode

enumerator SPI_MODE_LEGPSRAM

Flash TYPE LEGACY PSRAM mode

enumerator SPI_MODE_HBPSRAM

Flash TYPE Hyper Bus PSRAM mode

enumerator SPI_MODE_COUNT
enumerator SPI_MODE_NOR

Flash TYPE NOR mode

enumerator SPI_MODE_NAND

Flash TYPE NAND mode

enumerator SPI_MODE_PSRAM

Flash TYPE PSRAM mode

enumerator SPI_MODE_COUNT
enum HAL_FLASH_ClearFifo

SPI_FLASH clear fifo mode.

Values:

enumerator HAL_FLASH_CLR_RX_FIFO

Clear flash RX FIFO

enumerator HAL_FLASH_CLR_TX_FIFO

Clear Flash TX FIFO

enumerator HAL_FLASH_CLR_RX_TX_FIFO

Clear Flash RX AND TX FIFO

enumerator HAL_FLASH_CLR_RX_FIFO

Clear flash RX FIFO

enumerator HAL_FLASH_CLR_TX_FIFO

Clear Flash TX FIFO

enumerator HAL_FLASH_CLR_RX_TX_FIFO

Clear Flash RX AND TX FIFO

Functions

HAL_StatusTypeDef HAL_FLASH_SET_CS_TIME(FLASH_HandleTypeDef *hflash, uint8_t min, uint16_t max)

SPI_FLASH for boot mode.

参数:
  • hflash – FLASH handle

  • min – low min

  • max – high max

返回值:

HAL – status

HAL_StatusTypeDef HAL_FLASH_DMA_START(FLASH_HandleTypeDef *hflash, char *buf, int write, uint32_t len)

SPI_FLASH start fifo dma transmit.

参数:
  • hflash – FLASH handle

  • buf – data buffer

  • write – read/write function, 1 for write and 0 for read

  • len – data length

返回值:

HAL – status

HAL_StatusTypeDef HAL_FLASH_DMA_WAIT_DONE(FLASH_HandleTypeDef *hflash, uint32_t timeout)

SPI_FLASH loop mode to wait DMA transmit finish.

参数:
  • hflash – FLASH handle

  • timeout – wait time out in ms

返回值:

HAL – status

struct qspi_configure_t
#include <bf0_hal_qspi.h>
struct FLASH_CMD_CFG_T
#include <bf0_hal_qspi.h>
struct SPI_FLASH_FACT_CFG_T
#include <bf0_hal_qspi.h>
struct __FLASH_HandleTypeDef
#include <bf0_hal_qspi.h>