#ifndef _OFF_CHIP_FLASH_H_
|
#define _OFF_CHIP_FLASH_H_
|
|
|
#include "define_all.h"
|
#include "eeprom.h"
|
/***************************ÍⲿflashÈÝÁ¿µÈÐÅÏ¢¶¨Òå**********************************************/
|
#define OUT_FLASH_ALL_SIZE 0x400000// 4194304=32Mbits
|
#define OUT_FLASH_PAGE_SIZE 256// һҳΪ256×Ö½Ú£¬×î´ó¿ÉÁ¬Ðø±à¼Ò»Ò³
|
#define OUT_FLASH_SECTOR_SIZE 4096// Ò»¸öÉÈÇø4096×Ö½Ú£¬×îС²Á³ýµ¥Î»Îª1¸öÉÈÇø
|
// ÍⲿFLASH×Ô¶¨ÒåµÄ¿éÊýÁ¿
|
#define OUT_FLASH_CFG_BLOCK_CNT (OUT_FLASH_ALL_SIZE / OUT_FLASH_SECTOR_SIZE)
|
|
//op cmd
|
#define FLASH_WREN 0x06 //write enable
|
#define FLASH_WRDI 0x04 //write disable
|
#define FLASH_RDSR 0x05 //read status register
|
#define FLASH_WRSR 0x01 //write status register
|
#define FLASH_READ 0x03 //read fram memory data
|
#define FLASH_FSTRD 0x0b //fast read fram memory data
|
#define FLASH_WRITE 0x02 //write fram memory data
|
#define FLASH_POWERDOWN 0xb9 //go to power-down mode
|
#define FLASH_WKUP 0xab //release from power-down mode
|
#define FLASH_RDID 0x90 //read Manufacturer ID/Devive ID 16bit
|
#define FLASH_BlockErase 0xD8 //erase 64KB block
|
#define FLASH_SectorErase 0x20 //erase 4KB sector
|
#define FLASH_ChipErase 0xC7 //erase all chip
|
|
|
// FlashƬѡ2
|
#define FLASH_CS_PORT EEPROM_CS_PORT
|
#define FLASH_CS_PIN EEPROM_CS2_PIN
|
|
#define FLASH_CS_LOW GPIO_ResetBits(FLASH_CS_PORT,FLASH_CS_PIN)//CS = 0
|
#define FLASH_CS_HIGH GPIO_SetBits(FLASH_CS_PORT,FLASH_CS_PIN) //CS = 1
|
|
#define FLASH_CS_ENABLE do{FLASH_CS_LOW;EEPROM_CS_HIGH;}while(0)
|
#define FLASH_CS_DISABLE do{FLASH_CS_HIGH;EEPROM_CS_HIGH;}while(0)
|
|
#define FLASH_ReadWriteByte(dat) SpiWriteAndRead(dat)
|
//#define FLASH_ioconfig() SPI2_ioconfig()
|
|
uint8_t Flash_ReadSR(void);
|
void FLASH_Write_SR(uint8_t sr);
|
void FLASH_Write_Enable(void);
|
void FLASH_Write_Disable(void);
|
u16 Flash_ReadID(void);
|
|
void Out_Flash_MultipleRead(uint8* pBuffer,uint32 ReadAddr,uint16 NumByteToRead);
|
void Flash_Write_Page(uint8_t* pBuffer,u32 WriteAddr,u16 NumByteToWrite);
|
uint8 Flash_data_read(uint32 ReadAddr);
|
//void Flash_Write_NoCheck(uint8* pBuffer,uint32 WriteAddr,uint16 NumByteToWrite);
|
void Out_Flash_MultipleWrite(uint8_t* pBuffer,u32 WriteAddr,u16 NumByteToWrite);
|
|
void Flash_Erase_Chip(void);
|
void Flash_OUT_Erase_Sector(u32 Dst_Addr);
|
void Flash_Wait_Busy(void);
|
void Flash_PowerDown(void);
|
void Flash_WAKEUP(void);
|
|
float Flash_data_read_float(uint32 addr16);
|
void Flash_data_write_float(uint32 addr16, float data) ;
|
double Flash_data_read_double(uint32 addr16) ;
|
void Flash_data_write_double(uint32 addr16, double data) ;
|
u32 Flash_data_read_uint32(uint32 addr16) ;
|
void Flash_data_write_uint32(uint32 addr16, uint32 data) ;
|
u16 Flash_data_read_uint16(uint32 addr16) ;
|
void Flash_data_write_uint16(uint32 addr16, uint16 data) ;
|
|
|
void OUT_FLASH_test(void);
|
|
|
#endif
|