58 lines
2.2 KiB
C
58 lines
2.2 KiB
C
/*********************************************************************
|
|
* File Name : flash.h
|
|
* Author : WCH
|
|
* Version : V1.0.0
|
|
* Date : 2023/8/15
|
|
* Description : file for spi flash.
|
|
*********************************************************************************
|
|
* Copyright (c) 2023 Nanjing Qinheng Microelectronics Co., Ltd.
|
|
* Attention: This software (modified or not) and binary are used for
|
|
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
|
|
*******************************************************************************/
|
|
#ifndef __SPI_FLASH_H
|
|
#define __SPI_FLASH_H
|
|
#include "debug.h"
|
|
#include "spi.h"
|
|
#include "config.h"
|
|
|
|
#define W25X_WriteEnable 0x06
|
|
#define W25X_WriteDisable 0x04
|
|
#define W25X_ReadStatusReg 0x05
|
|
#define W25X_WriteStatusReg 0x01
|
|
#define W25X_ReadData 0x03
|
|
#define W25X_FastReadData 0x0B
|
|
#define W25X_FastReadDual 0x3B
|
|
#define W25X_PageProgram 0x02
|
|
#define W25X_BlockErase 0xD8
|
|
#define W25X_SectorErase 0x20
|
|
#define W25X_ChipErase 0xC7
|
|
#define W25X_PowerDown 0xB9
|
|
#define W25X_ReleasePowerDown 0xAB
|
|
#define W25X_DeviceID 0xAB
|
|
#define W25X_ManufactDeviceID 0x90
|
|
#define W25X_JedecDeviceID 0x9F
|
|
|
|
#define FLASH_CS_SET (FLASH_CS_PORT->BSHR = FLASH_CS_PIN)
|
|
#define FLASH_CS_CLR (FLASH_CS_PORT->BCR = FLASH_CS_PIN)
|
|
|
|
void SPI_FLASH_Init(void);
|
|
uint8_t SPI_Flash_ReadSR(void);
|
|
void SPI_FLASH_Write_SR(uint8_t sr);
|
|
void SPI_Flash_Wait_Busy(void);
|
|
void SPI_FLASH_Write_Enable(void);
|
|
void SPI_FLASH_Write_Disable(void);
|
|
uint16_t SPI_Flash_ReadID(void);
|
|
uint32_t SPI_Flash_ReadJedecDeviceID(void);
|
|
void SPI_Flash_Erase_Sector(uint32_t Dst_Addr);
|
|
void SPI_Flash_Read(uint8_t *pBuffer, uint32_t ReadAddr, uint16_t size);
|
|
void SPI_Flash_Write_Page(uint8_t *pBuffer, uint32_t WriteAddr, uint16_t size);
|
|
void SPI_Flash_Write_NoCheck(uint8_t *pBuffer, uint32_t WriteAddr, uint16_t size);
|
|
void SPI_Flash_Write(uint8_t *pBuffer, uint32_t WriteAddr, uint16_t size);
|
|
void SPI_Flash_Erase_Chip(void);
|
|
void SPI_Flash_PowerDown(void);
|
|
void SPI_Flash_WAKEUP(void);
|
|
void SPI_Flash_Read_dma_start(uint32_t ReadAddr);
|
|
void SPI_Flash_Read_dma_end(void);
|
|
|
|
#endif
|