STM32F769IDiscovery  1.00
uDANTE Audio Networking with STM32F7 DISCO board
n25q512a.h
Go to the documentation of this file.
1 
38 /* Define to prevent recursive inclusion -------------------------------------*/
39 #ifndef __N25Q512A_H
40 #define __N25Q512A_H
41 
42 #ifdef __cplusplus
43  extern "C" {
44 #endif
45 
46 /* Includes ------------------------------------------------------------------*/
47 
75 #define N25Q512A_FLASH_SIZE 0x4000000 /* 512 MBits => 64MBytes */
76 #define N25Q512A_SECTOR_SIZE 0x10000 /* 1024 sectors of 64KBytes */
77 #define N25Q512A_SUBSECTOR_SIZE 0x1000 /* 16384 subsectors of 4kBytes */
78 #define N25Q512A_PAGE_SIZE 0x100 /* 262144 pages of 256 bytes */
79 
80 #define N25Q512A_DUMMY_CYCLES_READ 8
81 #define N25Q512A_DUMMY_CYCLES_READ_QUAD 10
82 #define N25Q512A_DUMMY_CYCLES_READ_DTR 6
83 #define N25Q512A_DUMMY_CYCLES_READ_QUAD_DTR 8
84 
85 #define N25Q512A_BULK_ERASE_MAX_TIME 480000
86 #define N25Q512A_SECTOR_ERASE_MAX_TIME 3000
87 #define N25Q512A_SUBSECTOR_ERASE_MAX_TIME 800
88 
92 /* Reset Operations */
93 #define RESET_ENABLE_CMD 0x66
94 #define RESET_MEMORY_CMD 0x99
95 
96 /* Identification Operations */
97 #define READ_ID_CMD 0x9E
98 #define READ_ID_CMD2 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_DTR_CMD 0x3D
112 #define DUAL_OUT_FAST_READ_4_BYTE_ADDR_CMD 0x3C
113 
114 #define DUAL_INOUT_FAST_READ_CMD 0xBB
115 #define DUAL_INOUT_FAST_READ_DTR_CMD 0xBD
116 #define DUAL_INOUT_FAST_READ_4_BYTE_ADDR_CMD 0xBC
117 
118 #define QUAD_OUT_FAST_READ_CMD 0x6B
119 #define QUAD_OUT_FAST_READ_DTR_CMD 0x6D
120 #define QUAD_OUT_FAST_READ_4_BYTE_ADDR_CMD 0x6C
121 
122 #define QUAD_INOUT_FAST_READ_CMD 0xEB
123 #define QUAD_INOUT_FAST_READ_DTR_CMD 0xED
124 #define QUAD_INOUT_FAST_READ_4_BYTE_ADDR_CMD 0xEC
125 
126 /* Write Operations */
127 #define WRITE_ENABLE_CMD 0x06
128 #define WRITE_DISABLE_CMD 0x04
129 
130 /* Register Operations */
131 #define READ_STATUS_REG_CMD 0x05
132 #define WRITE_STATUS_REG_CMD 0x01
133 
134 #define READ_LOCK_REG_CMD 0xE8
135 #define WRITE_LOCK_REG_CMD 0xE5
136 
137 #define READ_FLAG_STATUS_REG_CMD 0x70
138 #define CLEAR_FLAG_STATUS_REG_CMD 0x50
139 
140 #define READ_NONVOL_CFG_REG_CMD 0xB5
141 #define WRITE_NONVOL_CFG_REG_CMD 0xB1
142 
143 #define READ_VOL_CFG_REG_CMD 0x85
144 #define WRITE_VOL_CFG_REG_CMD 0x81
145 
146 #define READ_ENHANCED_VOL_CFG_REG_CMD 0x65
147 #define WRITE_ENHANCED_VOL_CFG_REG_CMD 0x61
148 
149 #define READ_EXT_ADDR_REG_CMD 0xC8
150 #define WRITE_EXT_ADDR_REG_CMD 0xC5
151 
152 /* Program Operations */
153 #define PAGE_PROG_CMD 0x02
154 #define PAGE_PROG_4_BYTE_ADDR_CMD 0x12
155 
156 #define DUAL_IN_FAST_PROG_CMD 0xA2
157 #define EXT_DUAL_IN_FAST_PROG_CMD 0xD2
158 
159 #define QUAD_IN_FAST_PROG_CMD 0x32
160 #define EXT_QUAD_IN_FAST_PROG_CMD 0x12 /*0x38*/
161 #define QUAD_IN_FAST_PROG_4_BYTE_ADDR_CMD 0x34
162 
163 /* Erase Operations */
164 #define SUBSECTOR_ERASE_CMD 0x20
165 #define SUBSECTOR_ERASE_4_BYTE_ADDR_CMD 0x21
166 
167 #define SECTOR_ERASE_CMD 0xD8
168 #define SECTOR_ERASE_4_BYTE_ADDR_CMD 0xDC
169 
170 #define BULK_ERASE_CMD 0xC7
171 
172 #define PROG_ERASE_RESUME_CMD 0x7A
173 #define PROG_ERASE_SUSPEND_CMD 0x75
174 
175 /* One-Time Programmable Operations */
176 #define READ_OTP_ARRAY_CMD 0x4B
177 #define PROG_OTP_ARRAY_CMD 0x42
178 
179 /* 4-byte Address Mode Operations */
180 #define ENTER_4_BYTE_ADDR_MODE_CMD 0xB7
181 #define EXIT_4_BYTE_ADDR_MODE_CMD 0xE9
182 
183 /* Quad Operations */
184 #define ENTER_QUAD_CMD 0x35
185 #define EXIT_QUAD_CMD 0xF5
186 
190 /* Status Register */
191 #define N25Q512A_SR_WIP ((uint8_t)0x01)
192 #define N25Q512A_SR_WREN ((uint8_t)0x02)
193 #define N25Q512A_SR_BLOCKPR ((uint8_t)0x5C)
194 #define N25Q512A_SR_PRBOTTOM ((uint8_t)0x20)
195 #define N25Q512A_SR_SRWREN ((uint8_t)0x80)
197 /* Non volatile Configuration Register */
198 #define N25Q512A_NVCR_NBADDR ((uint16_t)0x0001)
199 #define N25Q512A_NVCR_SEGMENT ((uint16_t)0x0002)
200 #define N25Q512A_NVCR_DUAL ((uint16_t)0x0004)
201 #define N25Q512A_NVCR_QUAB ((uint16_t)0x0008)
202 #define N25Q512A_NVCR_RH ((uint16_t)0x0010)
203 #define N25Q512A_NVCR_ODS ((uint16_t)0x01C0)
204 #define N25Q512A_NVCR_XIP ((uint16_t)0x0E00)
205 #define N25Q512A_NVCR_NB_DUMMY ((uint16_t)0xF000)
207 /* Volatile Configuration Register */
208 #define N25Q512A_VCR_WRAP ((uint8_t)0x03)
209 #define N25Q512A_VCR_XIP ((uint8_t)0x08)
210 #define N25Q512A_VCR_NB_DUMMY ((uint8_t)0xF0)
212 /* Extended Address Register */
213 #define N25Q512A_EAR_A24 ((uint8_t)0x01)
215 /* Enhanced Volatile Configuration Register */
216 #define N25Q512A_EVCR_ODS ((uint8_t)0x07)
217 #define N25Q512A_EVCR_VPPA ((uint8_t)0x08)
218 #define N25Q512A_EVCR_RH ((uint8_t)0x10)
219 #define N25Q512A_EVCR_DUAL ((uint8_t)0x40)
220 #define N25Q512A_EVCR_QUAD ((uint8_t)0x80)
222 /* Flag Status Register */
223 #define N25Q512A_FSR_NBADDR ((uint8_t)0x01)
224 #define N25Q512A_FSR_PRERR ((uint8_t)0x02)
225 #define N25Q512A_FSR_PGSUS ((uint8_t)0x04)
226 #define N25Q512A_FSR_VPPERR ((uint8_t)0x08)
227 #define N25Q512A_FSR_PGERR ((uint8_t)0x10)
228 #define N25Q512A_FSR_ERERR ((uint8_t)0x20)
229 #define N25Q512A_FSR_ERSUS ((uint8_t)0x40)
230 #define N25Q512A_FSR_READY ((uint8_t)0x80)
243 #ifdef __cplusplus
244 }
245 #endif
246 
247 #endif /* __N25Q512A_H */
248 
261 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/