STM32F769IDiscovery  1.00
uDANTE Audio Networking with STM32F7 DISCO board
mx25l512.h
Go to the documentation of this file.
1 
38 /* Define to prevent recursive inclusion -------------------------------------*/
39 #ifndef __MX25L512_H
40 #define __MX25L512_H
41 
42 #ifdef __cplusplus
43  extern "C" {
44 #endif
45 
46 /* Includes ------------------------------------------------------------------*/
47 
75 #define MX25L512_FLASH_SIZE 0x4000000 /* 512 MBits => 64MBytes */
76 #define MX25L512_SECTOR_SIZE 0x10000 /* 1024 sectors of 64KBytes */
77 #define MX25L512_SUBSECTOR_SIZE 0x1000 /* 16384 subsectors of 4kBytes */
78 #define MX25L512_PAGE_SIZE 0x100 /* 262144 pages of 256 bytes */
79 
80 #define MX25L512_DUMMY_CYCLES_READ_QUAD 3
81 #define MX25L512_DUMMY_CYCLES_READ 8
82 #define MX25L512_DUMMY_CYCLES_READ_QUAD_IO 10
83 #define MX25L512_DUMMY_CYCLES_READ_DTR 6
84 #define MX25L512_DUMMY_CYCLES_READ_QUAD_DTR 8
85 
86 #define MX25L512_BULK_ERASE_MAX_TIME 600000
87 #define MX25L512_SECTOR_ERASE_MAX_TIME 2000
88 #define MX25L512_SUBSECTOR_ERASE_MAX_TIME 800
89 
93 /* Reset Operations */
94 #define RESET_ENABLE_CMD 0x66
95 #define RESET_MEMORY_CMD 0x99
96 
97 /* Identification Operations */
98 #define READ_ID_CMD 0x9F
99 #define MULTIPLE_IO_READ_ID_CMD 0xAF
100 #define READ_SERIAL_FLASH_DISCO_PARAM_CMD 0x5A
101 
102 /* Read Operations */
103 #define READ_CMD 0x03
104 #define READ_4_BYTE_ADDR_CMD 0x13
105 
106 #define FAST_READ_CMD 0x0B
107 #define FAST_READ_DTR_CMD 0x0D
108 #define FAST_READ_4_BYTE_ADDR_CMD 0x0C
109 
110 #define DUAL_OUT_FAST_READ_CMD 0x3B
111 #define DUAL_OUT_FAST_READ_4_BYTE_ADDR_CMD 0x3C
112 
113 #define DUAL_INOUT_FAST_READ_CMD 0xBB
114 #define DUAL_INOUT_FAST_READ_DTR_CMD 0xBD
115 #define DUAL_INOUT_FAST_READ_4_BYTE_ADDR_CMD 0xBC
116 
117 #define QUAD_OUT_FAST_READ_CMD 0x6B
118 #define QUAD_OUT_FAST_READ_4_BYTE_ADDR_CMD 0x6C
119 
120 #define QUAD_INOUT_FAST_READ_CMD 0xEB
121 #define QUAD_INOUT_FAST_READ_DTR_CMD 0xED
122 #define QPI_READ_4_BYTE_ADDR_CMD 0xEC
123 
124 /* Write Operations */
125 #define WRITE_ENABLE_CMD 0x06
126 #define WRITE_DISABLE_CMD 0x04
127 
128 /* Register Operations */
129 #define READ_STATUS_REG_CMD 0x05
130 #define READ_CFG_REG_CMD 0x15
131 #define WRITE_STATUS_CFG_REG_CMD 0x01
132 
133 #define READ_LOCK_REG_CMD 0x2D
134 #define WRITE_LOCK_REG_CMD 0x2C
135 
136 #define READ_EXT_ADDR_REG_CMD 0xC8
137 #define WRITE_EXT_ADDR_REG_CMD 0xC5
138 
139 /* Program Operations */
140 #define PAGE_PROG_CMD 0x02
141 #define QPI_PAGE_PROG_4_BYTE_ADDR_CMD 0x12
142 
143 #define QUAD_IN_FAST_PROG_CMD 0x38
144 #define EXT_QUAD_IN_FAST_PROG_CMD 0x38
145 #define QUAD_IN_FAST_PROG_4_BYTE_ADDR_CMD 0x3E
146 
147 /* Erase Operations */
148 #define SUBSECTOR_ERASE_CMD 0x20
149 #define SUBSECTOR_ERASE_4_BYTE_ADDR_CMD 0x21
150 
151 #define SECTOR_ERASE_CMD 0xD8
152 #define SECTOR_ERASE_4_BYTE_ADDR_CMD 0xDC
153 
154 #define BULK_ERASE_CMD 0xC7
155 
156 #define PROG_ERASE_RESUME_CMD 0x30
157 #define PROG_ERASE_SUSPEND_CMD 0xB0
158 
159 /* 4-byte Address Mode Operations */
160 #define ENTER_4_BYTE_ADDR_MODE_CMD 0xB7
161 #define EXIT_4_BYTE_ADDR_MODE_CMD 0xE9
162 
163 /* Quad Operations */
164 #define ENTER_QUAD_CMD 0x35
165 #define EXIT_QUAD_CMD 0xF5
166 
170 /* Status Register */
171 #define MX25L512_SR_WIP ((uint8_t)0x01)
172 #define MX25L512_SR_WREN ((uint8_t)0x02)
173 #define MX25L512_SR_BLOCKPR ((uint8_t)0x5C)
174 #define MX25L512_SR_PRBOTTOM ((uint8_t)0x20)
175 #define MX25L512_SR_QUADEN ((uint8_t)0x40)
176 #define MX25L512_SR_SRWREN ((uint8_t)0x80)
178 /* Configuration Register */
179 #define MX25L512_CR_ODS ((uint8_t)0x07)
180 #define MX25L512_CR_ODS_30 ((uint8_t)0x07)
181 #define MX25L512_CR_ODS_15 ((uint8_t)0x06)
182 #define MX25L512_CR_ODS_20 ((uint8_t)0x05)
183 #define MX25L512_CR_ODS_45 ((uint8_t)0x03)
184 #define MX25L512_CR_ODS_60 ((uint8_t)0x02)
185 #define MX25L512_CR_ODS_90 ((uint8_t)0x01)
186 #define MX25L512_CR_TB ((uint8_t)0x08)
187 #define MX25L512_CR_PBE ((uint8_t)0x10)
188 #define MX25L512_CR_4BYTE ((uint8_t)0x20)
189 #define MX25L512_CR_NB_DUMMY ((uint8_t)0xC0)
191 #define MX25L512_MANUFACTURER_ID ((uint8_t)0xC2)
192 #define MX25L512_DEVICE_ID_MEM_TYPE ((uint8_t)0x20)
193 #define MX25L512_DEVICE_ID_MEM_CAPACITY ((uint8_t)0x1A)
194 #define MX25L512_UNIQUE_ID_DATA_LENGTH ((uint8_t)0x10) /*JCC: not checked */
195 
207 #ifdef __cplusplus
208 }
209 #endif
210 
211 #endif /* __MX25L512_H */
212 
225 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/