41 lines
1.2 KiB
C
41 lines
1.2 KiB
C
#ifndef _W25QXX_H_
|
|
#define _W25QXX_H_
|
|
#include "main.h"
|
|
|
|
enum {
|
|
ManufactDeviceID_CMD = 0x90,
|
|
READ_STATU_REGISTER_1 = 0x05,
|
|
READ_STATU_REGISTER_2 = 0x35,
|
|
WRITE_STATU_REGISTER = 0x01,
|
|
READ_DATA_CMD = 0x03,
|
|
FAST_READ_CMD = 0x0B,
|
|
FAST_READ_DUAL_O_CMD = 0x3B,
|
|
FAST_READ_DUAL_IO_CMD = 0xBB,
|
|
FAST_READ_QUAD_O_CMD = 0x6B,
|
|
FAST_READ_QUAD_IO_CMD = 0xEB,
|
|
WRITE_ENABLE_CMD = 0x06,
|
|
WRITE_DISABLE_CMD = 0x04,
|
|
SECTOR_ERASE_CMD = 0x20,
|
|
CHIP_ERASE_CMD = 0xc7,
|
|
PAGE_PROGRAM_CMD = 0x02,
|
|
QUAD_PAGE_PROGRAM_CMD = 0x32,
|
|
BLOCK_ERASE_64KB_CMD = 0xD8,
|
|
BLOCK_ERASE_32KB_CMD = 0x52,
|
|
ERASE_SUSPEND_CMD = 0x75,
|
|
ERASE_RESUME_CMD = 0x7A,
|
|
HIGH_PERFORM_MODE_CMD = 0xA3,
|
|
ENABLE_RESET_CMD = 0x66,
|
|
RESET_DEVICE_CMD = 0x99,
|
|
};
|
|
|
|
int w25qxx_init(void);
|
|
int w25qxx_memory_mapped(void);
|
|
uint16_t w25qxx_read_deviceid(void);
|
|
int w25qxx_read(uint8_t* buffer, uint32_t start_addr, uint16_t nbytes);
|
|
int w25qxx_erase_sector(uint32_t sector_addr);
|
|
int w25qxx_erase_chip(void);
|
|
int w25qxx_page_program(uint8_t* dat, uint32_t write_addr, uint16_t nbytes);
|
|
int w25qxx_reset(void);
|
|
|
|
#endif /* _W25QXX_H_ */
|