#ifndef _OFF_CHIP_FLASH_H_
|
#define _OFF_CHIP_FLASH_H_
|
|
|
#include "define_all.h"
|
#include "eeprom.h"
|
/***************************ÍⲿflashÈÝÁ¿µÈÐÅÏ¢¶¨Òå**********************************************/
|
#define OUT_FLASH_ALL_SIZE 0x400000//4*1024*1024=4194304MB=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_CS2_PORT
|
#define FLASH_CS_PIN EEPROM_CS2_PIN
|
|
#define FLASH_CS_LOW EEPROM_CS_2_LOW
|
#define FLASH_CS_HIGH EEPROM_CS_2_HIGH
|
|
#define FLASH_CS_ENABLE EEPROM_CS_2_ENABLE
|
#define FLASH_CS_DISABLE EEPROM_CS_2_DISABLE
|
|
|
//¿ØÖÆÊ¹ÄÜ,flash²Ù×÷ǰºóµ÷ÓÃ
|
#define OUT_FLASH_CTRL_ENABLE EEPROM_2_CTRL_ENABLE
|
#define OUT_FLASH_CTRL_DISABLE EEPROM_2_CTRL_DISABLE
|
|
|
#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 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_MultipleRead(uint8* pBuffer,uint32 ReadAddr,uint16 NumByteToRead);
|
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
|