#ifndef _OFF_CHIP_FLASH_H_ #define _OFF_CHIP_FLASH_H_ #include "define_all.h" #include "e2p.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 SPI0_CS_PORT #define FLASH_CS_PIN SPI0_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;E2P_CS1_H;}while(0) #define FLASH_CS_DISABLE do{FLASH_CS_HIGH;E2P_CS1_H;}while(0) #define FLASH_ReadWriteByte(dat) SpiWriteAndRead(dat) //#define FLASH_ioconfig() SPI2_ioconfig() u8 Flash_ReadSR(void); void FLASH_Write_SR(u8 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(u8* 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(u8* 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