77 lines
2.5 KiB
C
77 lines
2.5 KiB
C
#ifndef __W25QXX_H
|
||
#define __W25QXX_H
|
||
#include "sys.h"
|
||
//////////////////////////////////////////////////////////////////////////////////
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ѧϰʹ<CFB0>ã<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>;
|
||
//ALIENTEK STM32<33><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
//W25QXX<58><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
//<2F><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>@ALIENTEK
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̳:www.openedv.com
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:2015/12/28
|
||
//<2F>汾<EFBFBD><E6B1BE>V1.0
|
||
//<2F><>Ȩ<EFBFBD><C8A8><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD>
|
||
//Copyright(C) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿƼ<D3BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾ 2014-2024
|
||
//All rights reserved
|
||
//////////////////////////////////////////////////////////////////////////////////
|
||
|
||
//W25Xϵ<58><CFB5>/Qϵ<51><CFB5>оƬ<D0BE>б<EFBFBD>
|
||
//W25Q80 ID 0XEF13
|
||
//W25Q16 ID 0XEF14
|
||
//W25Q32 ID 0XEF15
|
||
//W25Q64 ID 0XEF16
|
||
//W25Q128 ID 0XEF17
|
||
//W25Q256 ID 0XEF18
|
||
#define W25Q80 0XEF13
|
||
#define W25Q16 0XEF14
|
||
#define W25Q32 0XEF15
|
||
#define W25Q64 0XEF16
|
||
#define W25Q128 0XEF17
|
||
#define W25Q256 0XEF18
|
||
|
||
extern u16 W25QXX_TYPE; //<2F><><EFBFBD><EFBFBD>W25QXXоƬ<D0BE>ͺ<EFBFBD>
|
||
|
||
#define W25QXX_CS PFout(6) //W25QXX<58><58>Ƭѡ<C6AC>ź<EFBFBD>
|
||
|
||
//////////////////////////////////////////////////////////////////////////////////
|
||
//ָ<><D6B8><EFBFBD><EFBFBD>
|
||
#define W25X_WriteEnable 0x06
|
||
#define W25X_WriteDisable 0x04
|
||
#define W25X_ReadStatusReg1 0x05
|
||
#define W25X_ReadStatusReg2 0x35
|
||
#define W25X_ReadStatusReg3 0x15
|
||
#define W25X_WriteStatusReg1 0x01
|
||
#define W25X_WriteStatusReg2 0x31
|
||
#define W25X_WriteStatusReg3 0x11
|
||
#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 W25X_Enable4ByteAddr 0xB7
|
||
#define W25X_Exit4ByteAddr 0xE9
|
||
|
||
void W25QXX_Init(void);
|
||
u16 W25QXX_ReadID(void); //<2F><>ȡFLASH ID
|
||
u8 W25QXX_ReadSR(u8 regno); //<2F><>ȡ״̬<D7B4>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||
void W25QXX_4ByteAddr_Enable(void); //ʹ<><CAB9>4<EFBFBD>ֽڵ<D6BD>ַģʽ
|
||
void W25QXX_Write_SR(u8 regno,u8 sr); //д״̬<D7B4>Ĵ<EFBFBD><C4B4><EFBFBD>
|
||
void W25QXX_Write_Enable(void); //дʹ<D0B4><CAB9>
|
||
void W25QXX_Write_Disable(void); //д<><D0B4><EFBFBD><EFBFBD>
|
||
void W25QXX_Write_NoCheck(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite);
|
||
void W25QXX_Read(u8* pBuffer,u32 ReadAddr,u16 NumByteToRead); //<2F><>ȡflash
|
||
void W25QXX_Write(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite);//д<><D0B4>flash
|
||
void W25QXX_Erase_Chip(void); //<2F><>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>
|
||
void W25QXX_Erase_Sector(u32 Dst_Addr); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
void W25QXX_Wait_Busy(void); //<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD>
|
||
void W25QXX_PowerDown(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
||
void W25QXX_WAKEUP(void); //<2F><><EFBFBD><EFBFBD>
|
||
|
||
#endif
|