STM32 W25Qxx QuadSPI Driver  0.1a
https://github.com/Crazy-Geeks/STM32-W25Q-QSPI
Macros | Functions | Variables
w25q_mem.c File Reference

Source file for W25Qxxx lib. More...

#include "w25q_mem.h"

Macros

#define w25q_delay(x)   HAL_Delay(x)
 Delay define to provide future support of RTOS.
 

Functions

W25Q_STATE W25Q_WriteEnable (bool enable)
 Toggle WOL bit. More...
 
W25Q_STATE W25Q_EnableQSPI (bool enable)
 Toggle QE bit.
 
W25Q_STATE W25Q_Enter4ByteMode (bool enable)
 Toggle ADS bit. More...
 
W25Q_STATE W25Q_SetExtendedAddr (u8_t Addr)
 Set addr in 3-byte mode. More...
 
W25Q_STATE W25Q_GetExtendedAddr (u8_t *outAddr)
 Get addr in 3-byte mode. More...
 
W25Q_STATE W25Q_Init (void)
 W25Q Init function. More...
 
W25Q_STATE W25Q_EnableVolatileSR (void)
 W25Q Enable Volatile SR Makes status register volatile (temporary) More...
 
W25Q_STATE W25Q_ReadStatusReg (u8_t *reg_data, u8_t reg_num)
 W25Q Read Status Register Read one status register. More...
 
W25Q_STATE W25Q_WriteStatusReg (u8_t reg_data, u8_t reg_num)
 W25Q Write Status Register Write one status register. More...
 
W25Q_STATE W25Q_ReadStatusStruct (W25Q_STATUS_REG *status)
 W25Q Read Status Registers Read all status registers to struct. More...
 
W25Q_STATE W25Q_IsBusy (void)
 W25Q Check Busy flag Fast checking Busy flag. More...
 
W25Q_STATE W25Q_ReadSByte (i8_t *buf, u8_t pageShift, u32_t pageNum)
 W25Q Read single Signed Byte Read signed 8-bit byte variable. More...
 
W25Q_STATE W25Q_ReadByte (u8_t *buf, u8_t pageShift, u32_t pageNum)
 W25Q Read single Unsigned Byte Read unsigned 8-bit byte variable. More...
 
W25Q_STATE W25Q_ReadSWord (i16_t *buf, u8_t pageShift, u32_t pageNum)
 W25Q Read single Signed Word Read signed 16-bit word variable. More...
 
W25Q_STATE W25Q_ReadWord (u16_t *buf, u8_t pageShift, u32_t pageNum)
 W25Q Read single Unsigned Word Read unsigned 16-bit word variable. More...
 
W25Q_STATE W25Q_ReadSLong (i32_t *buf, u8_t pageShift, u32_t pageNum)
 W25Q Read single Signed Long Read signed 32-bit long variable. More...
 
W25Q_STATE W25Q_ReadLong (u32_t *buf, u8_t pageShift, u32_t pageNum)
 W25Q Read single Signed Long Read signed 32-bit long variable. More...
 
W25Q_STATE W25Q_ReadData (u8_t *buf, u16_t len, u8_t pageShift, u32_t pageNum)
 W25Q Read any 8-bit data Read any 8-bit data from preffered page place. More...
 
W25Q_STATE W25Q_ReadRaw (u8_t *buf, u16_t data_len, u32_t rawAddr)
 W25Q Read any 8-bit data from raw addr Read any 8-bit data from preffered chip address. More...
 
W25Q_STATE W25Q_SingleRead (u8_t *buf, u32_t len, u32_t Addr)
 W25Q Read any 8-bit data from raw addr Read any 8-bit data from preffered chip address by SINGLE SPI. More...
 
W25Q_STATE W25Q_SetBurstWrap (u8_t WrapSize)
 W25Q Burst Wrap settings. More...
 
W25Q_STATE W25Q_ProgramSByte (i8_t buf, u8_t pageShift, u32_t pageNum)
 W25Q Program single Signed Byte Program signed 8-bit byte variable. More...
 
W25Q_STATE W25Q_ProgramByte (u8_t buf, u8_t pageShift, u32_t pageNum)
 W25Q Program single Unsigned Byte Program unsigned 8-bit byte vairable. More...
 
W25Q_STATE W25Q_ProgramSWord (i16_t buf, u8_t pageShift, u32_t pageNum)
 W25Q Program single Signed Word Program signed 16-bit word vairable. More...
 
W25Q_STATE W25Q_ProgramWord (u16_t buf, u8_t pageShift, u32_t pageNum)
 W25Q Program single Unsigned Word Program unsigned 16-bit word vairable. More...
 
W25Q_STATE W25Q_ProgramSLong (i32_t buf, u8_t pageShift, u32_t pageNum)
 W25Q Program single Signed Long Program signed 32-bit long vairable. More...
 
W25Q_STATE W25Q_ProgramLong (u32_t buf, u8_t pageShift, u32_t pageNum)
 W25Q Program single Unigned Long Program unsigned 32-bit long vairable. More...
 
W25Q_STATE W25Q_ProgramData (u8_t *buf, u16_t len, u8_t pageShift, u32_t pageNum)
 W25Q Program any 8-bit data Program any 8-bit data to preffered page place. More...
 
W25Q_STATE W25Q_ProgramRaw (u8_t *buf, u16_t data_len, u32_t rawAddr)
 W25Q Program any 8-bit data to raw addr Program any 8-bit data to preffered chip address. More...
 
W25Q_STATE W25Q_EraseSector (u32_t SectAddr)
 W25Q Sector erase (4KB) Minimal size operation to erase data. More...
 
W25Q_STATE W25Q_EraseBlock (u32_t BlockAddr, u8_t size)
 W25Q Block erase (32/64 KB) Func to erase big block. More...
 
W25Q_STATE W25Q_EraseChip (void)
 W25Q Chip erase Func to erase all the data on chip. More...
 
W25Q_STATE W25Q_ProgSuspend (void)
 W25Q Programm/Erase Suspend Pause programm or suspend operatiom. More...
 
W25Q_STATE W25Q_ProgResume (void)
 W25Q Programm/Erase Resume Resume suspended state. More...
 
W25Q_STATE W25Q_Sleep (void)
 W25Q Sleep / Power Down Set chip to low-power state. More...
 
W25Q_STATE W25Q_WakeUP (void)
 W25Q WakeUP Wake UP function. More...
 
W25Q_STATE W25Q_ReadID (u8_t *buf)
 W25Q Read ID Function for reading chip ID. More...
 
W25Q_STATE W25Q_ReadFullID (u8_t *buf)
 W25Q Read chip Full ID Read Manufacturer ID + Device ID. More...
 
W25Q_STATE W25Q_ReadUID (u8_t *buf)
 W25Q Read chip UID Read Unique ID. More...
 
W25Q_STATE W25Q_ReadJEDECID (u8_t *buf)
 W25Q Read JEDEC ID Read ID by JEDEC standards. More...
 
W25Q_STATE W25Q_ReadSFDPRegister (u8_t *buf)
 W25Q Read SFDP Register Read device descriptor by SFDP standard. More...
 
W25Q_STATE W25Q_EraseSecurityRegisters (u8_t numReg)
 W25Q Erase Security Registers Clean security registers (one or all) More...
 
W25Q_STATE W25Q_ProgSecurityRegisters (u8_t *buf, u8_t numReg, u8_t byteAddr)
 W25Q Program Security Register Write data to security reg. More...
 
W25Q_STATE W25Q_ReadSecurityRegisters (u8_t *buf, u8_t numReg, u8_t byteAddr)
 W25Q Read Security Register Read data from security reg. More...
 
W25Q_STATE W25Q_BlockReadOnly (u32_t Addr, bool enable)
 W25Q 4K Block lock Set read-only status to 4K block. More...
 
W25Q_STATE W25Q_BlockReadOnlyCheck (bool *state, u32_t Addr)
 W25Q 4K Block lock CHECK Check read-only status from 4K block. More...
 
W25Q_STATE W25Q_GlobalReadOnly (bool enable)
 W25Q Global read-only lock Set read-only status to the whole chip. More...
 
W25Q_STATE W25Q_SwReset (bool force)
 W25Q Software Reset Reset by register (not by external GPIO pin) More...
 

Variables

QSPI_HandleTypeDef hqspi
 Quad SPI HAL Instance.
 
W25Q_STATUS_REG w25q_status
 Internal status structure instance.
 

Detailed Description

Source file for W25Qxxx lib.

Author
Dmitriy Semenov / Crazy_Geeks
Version
0.1b
Date
12-August-2021
Note
https://github.com/Crazy-Geeks/STM32-W25Q-QSPI
https://ru.mouser.com/datasheet/2/949/w25q256jv_spi_revg_08032017-1489574.pdf
https://www.st.com/resource/en/application_note/DM00227538-.pdf