ChibiOS  0.0.0
m25q.h File Reference

Micron serial flash driver header. More...

Go to the source code of this file.

Data Structures

struct  M25QConfig
 Type of a M25Q configuration structure. More...
 
struct  M25QDriverVMT
 M25Q virtual methods table. More...
 
struct  M25QDriver
 Type of M25Q flash class. More...
 

Macros

#define _m25q_methods   _jesd216_flash_methods
 M25Q specific methods. More...
 
Version identification
#define EX_M25Q_VERSION   "1.0.0"
 M25Q driver version string. More...
 
#define EX_M25Q_MAJOR   1
 M25Q driver version major number. More...
 
#define EX_M25Q_MINOR   0
 M25Q driver version minor number. More...
 
#define EX_M25Q_PATCH   0
 M25Q driver version patch number. More...
 
Command codes
#define M25Q_CMD_RESET_ENABLE   0x66
 
#define M25Q_CMD_RESET_MEMORY   0x99
 
#define M25Q_CMD_READ_ID   0x9F
 
#define M25Q_CMD_MULTIPLE_IO_READ_ID   0xAF
 
#define M25Q_CMD_READ_DISCOVERY_PARAMETER   0x5A
 
#define M25Q_CMD_READ   0x03
 
#define M25Q_CMD_FAST_READ   0x0B
 
#define M25Q_CMD_WRITE_ENABLE   0x06
 
#define M25Q_CMD_WRITE_DISABLE   0x04
 
#define M25Q_CMD_READ_STATUS_REGISTER   0x05
 
#define M25Q_CMD_WRITE_STATUS_REGISTER   0x01
 
#define M25Q_CMD_READ_LOCK_REGISTER   0xE8
 
#define M25Q_CMD_WRITE_LOCK_REGISTER   0xE5
 
#define M25Q_CMD_READ_FLAG_STATUS_REGISTER   0x70
 
#define M25Q_CMD_CLEAR_FLAG_STATUS_REGISTER   0x50
 
#define M25Q_CMD_READ_NV_CONFIGURATION_REGISTER   0xB5
 
#define M25Q_CMD_WRITE_NV_CONFIGURATION_REGISTER   0xB1
 
#define M25Q_CMD_READ_V_CONF_REGISTER   0x85
 
#define M25Q_CMD_WRITE_V_CONF_REGISTER   0x81
 
#define M25Q_CMD_READ_ENHANCED_V_CONF_REGISTER   0x65
 
#define M25Q_CMD_WRITE_ENHANCED_V_CONF_REGISTER   0x61
 
#define M25Q_CMD_PAGE_PROGRAM   0x02
 
#define M25Q_CMD_SUBSECTOR_ERASE   0x20
 
#define M25Q_CMD_SECTOR_ERASE   0xD8
 
#define M25Q_CMD_BULK_ERASE   0xC7
 
#define M25Q_CMD_PROGRAM_ERASE_RESUME   0x7A
 
#define M25Q_CMD_PROGRAM_ERASE_SUSPEND   0x75
 
#define M25Q_CMD_READ_OTP_ARRAY   0x4B
 
#define M25Q_CMD_PROGRAM_OTP_ARRAY   0x42
 
Flags status register bits
#define M25Q_FLAGS_PROGRAM_ERASE   0x80U
 
#define M25Q_FLAGS_ERASE_SUSPEND   0x40U
 
#define M25Q_FLAGS_ERASE_ERROR   0x20U
 
#define M25Q_FLAGS_PROGRAM_ERROR   0x10U
 
#define M25Q_FLAGS_VPP_ERROR   0x08U
 
#define M25Q_FLAGS_PROGRAM_SUSPEND   0x04U
 
#define M25Q_FLAGS_PROTECTION_ERROR   0x02U
 
#define M25Q_FLAGS_RESERVED   0x01U
 
#define M25Q_FLAGS_ALL_ERRORS
 
Configuration options
#define M25Q_READ_DUMMY_CYCLES   8
 Number of dummy cycles for fast read (1..15). More...
 
#define M25Q_SWITCH_WIDTH   TRUE
 Switch QSPI bus width on initialization. More...
 
#define M25Q_NICE_WAITING   TRUE
 Delays insertions. More...
 
#define M25Q_USE_SUB_SECTORS   FALSE
 Uses 4kB sub-sectors rather than 64kB sectors. More...
 
#define M25Q_SUPPORTED_MANUFACTURE_IDS   {0x20}
 Supported JEDEC manufacturer identifiers. More...
 
#define M25Q_SUPPORTED_MEMORY_TYPE_IDS   {0xBA, 0xBB}
 Supported memory type identifiers. More...
 
#define M25Q_COMPARE_BUFFER_SIZE   32
 Size of the compare buffer. More...
 

Functions

void m25qObjectInit (M25QDriver *devp)
 Initializes an instance. More...
 
void m25qStart (M25QDriver *devp, const M25QConfig *config)
 Configures and activates N25Q128 driver. More...
 
void m25qStop (M25QDriver *devp)
 Deactivates the N25Q128 driver. More...
 
void m25qMemoryMap (M25QDriver *devp, uint8_t **addrp)
 Enters the memory Mapping mode. More...
 
void m25qMemoryUnmap (M25QDriver *devp)
 Leaves the memory Mapping mode. More...
 

Detailed Description

Micron serial flash driver header.

Definition in file m25q.h.