|
- #ifndef SPI_FLASH_H /* Guard against multiple inclusion */
- #define SPI_FLASH_H
-
- #define SPI_FLASH_READ 0x03
- #define SPI_FLASH_HI_SPEED_READ 0x0b
- #define SPI_FLASH_4KB_SECOTR_ERASE 0x20
- #define SPI_FLASH_32KB_BLOCK_ERASE 0x52
- #define SPI_FLASH_64KB_BLOCK_ERASE 0xd8
- #define SPI_FLASH_CHIP_ERASE 0x60
- #define SPI_FLASH_BYTE_PROGRAM 0x02
- #define SPI_FLASH_AAI_WORD_PROGRAM 0xad
- #define SPI_FLASH_READ_STATUS_REG 0x05
- #define SPI_FLASH_ENABLE_WRITE_STATUS_REG 0x50
- #define SPI_FLASH_WRITE_STATUS_REG 0x01
- #define SPI_FLASH_WRITE_ENABLE 0x06
- #define SPI_FLASH_WRITE_DISABLE 0x04
- #define SPI_FLASH_READ_ID 0x90
- #define SPI_FLASH_READ_JEDEC_ID 0x9f
- #define SPI_FLASH_ENABLE_SO_BUSY 0x70
- #define SPI_FLASH_DISABLE_SO_BUSY 0x80
-
-
- #define SPI_FLASH_BUSY_MASK 0x01
-
- #define SPI_FLASH_VENDOR_ID 0xBF
- #define SPI_FLASH_CHIP_ID 0x41
- #define SPI_FLASH_MAX_ADDRESS 0x1FFFFF
- #define SPI_FLASH_SECTOR_SIZE 0x1000
- #define SPI_FLASH_64K_SECTOR_SIZE 0x10000
- #define SPI_NB_SECTORS 0x1FF //511 sectors = SPI_FLASH_MAX_ADDRESS / SPI_FLASH_SECTOR_SIZE
-
-
- int InitSPIFlash();
- int SPIFlashCheckChipID();
- unsigned char SPIFlashReadStatusReg(int print);
- int SPIFlashCheckAndConfigure();
- int SPIFlashReadBuffer(unsigned char *Buf, int Size, int StartAddress);
- int SPIFlashCheckBusy();
- int SPIFlashWriteEnable();
- int SPIFlashEraseSector(int SectorAddress);
- int SPIFlashErase64KSector(int SectorAddress, int Blocking);
- int SPIFlashWriteSectorWorkingBuffer(int SectorAddress, int Erase);
- int SPIFlashWriteBuffer(unsigned char *Buf, int Size, int StartAddress);
- int SPIFlashWriteByte(unsigned int ByteAddress, char byte, int blocking);
- int SPIFlashIsPresent();
-
-
- #endif /* SPI_FLASH_H */
|