Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

50 строки
1.8 KiB

  1. #ifndef SPI_FLASH_H /* Guard against multiple inclusion */
  2. #define SPI_FLASH_H
  3. #define SPI_FLASH_READ 0x03
  4. #define SPI_FLASH_HI_SPEED_READ 0x0b
  5. #define SPI_FLASH_4KB_SECOTR_ERASE 0x20
  6. #define SPI_FLASH_32KB_BLOCK_ERASE 0x52
  7. #define SPI_FLASH_64KB_BLOCK_ERASE 0xd8
  8. #define SPI_FLASH_CHIP_ERASE 0x60
  9. #define SPI_FLASH_BYTE_PROGRAM 0x02
  10. #define SPI_FLASH_AAI_WORD_PROGRAM 0xad
  11. #define SPI_FLASH_READ_STATUS_REG 0x05
  12. #define SPI_FLASH_ENABLE_WRITE_STATUS_REG 0x50
  13. #define SPI_FLASH_WRITE_STATUS_REG 0x01
  14. #define SPI_FLASH_WRITE_ENABLE 0x06
  15. #define SPI_FLASH_WRITE_DISABLE 0x04
  16. #define SPI_FLASH_READ_ID 0x90
  17. #define SPI_FLASH_READ_JEDEC_ID 0x9f
  18. #define SPI_FLASH_ENABLE_SO_BUSY 0x70
  19. #define SPI_FLASH_DISABLE_SO_BUSY 0x80
  20. #define SPI_FLASH_BUSY_MASK 0x01
  21. #define SPI_FLASH_VENDOR_ID 0xBF
  22. #define SPI_FLASH_CHIP_ID 0x41
  23. #define SPI_FLASH_MAX_ADDRESS 0x1FFFFF
  24. #define SPI_FLASH_SECTOR_SIZE 0x1000
  25. #define SPI_FLASH_64K_SECTOR_SIZE 0x10000
  26. #define SPI_NB_SECTORS 0x1FF //511 sectors = SPI_FLASH_MAX_ADDRESS / SPI_FLASH_SECTOR_SIZE
  27. int InitSPIFlash();
  28. int SPIFlashCheckChipID();
  29. unsigned char SPIFlashReadStatusReg(int print);
  30. int SPIFlashCheckAndConfigure();
  31. int SPIFlashReadBuffer(unsigned char *Buf, int Size, int StartAddress);
  32. int SPIFlashCheckBusy();
  33. int SPIFlashWriteEnable();
  34. int SPIFlashEraseSector(int SectorAddress);
  35. int SPIFlashErase64KSector(int SectorAddress, int Blocking);
  36. int SPIFlashWriteSectorWorkingBuffer(int SectorAddress, int Erase);
  37. int SPIFlashWriteBuffer(unsigned char *Buf, int Size, int StartAddress);
  38. int SPIFlashWriteByte(unsigned int ByteAddress, char byte, int blocking);
  39. int SPIFlashIsPresent();
  40. #endif /* SPI_FLASH_H */