#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_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 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