W25Q16JV_LL.h 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. // Ôàéë ñ îïðåäåëåíèÿìè ôîðìàòîâ ïàêåòîâ íèçêîóðîâíåâûõ êîììàíäàìè äëÿ AT45DB161E.
  2. // v 1.0 îò 16/07/15
  3. // Àâòîð: Ñû÷åâ À.
  4. #ifndef W25Q16JV_LL_H
  5. #define W25Q16JV_LL_H
  6. #if (!defined(W25Q16JV_LOWLEVEL) && !defined(W25Q16JV_APILEVEL))
  7. #error FLASH HAL: âû ïîäêëþ÷èëè çàãîëîâî÷íûé ôàéë äëÿ íèçêîóðîâíåâûõ îïåðàöèé.
  8. #endif
  9. #if (defined(W25Q16JV_LOWLEVEL) || defined(W25Q16JV_APILEVEL))
  10. #include "drivers\flash\base\flash_api_types.h"
  11. #include "drivers\flash\w25q\lowlevel\W25Q16JV_GLOB.h" // îïðåäåëåíèÿ äëÿ AT45DB161E
  12. __flash_protectionregister_t * __flash_internal_getbuffer_protect();
  13. //__FLASH_BYTE * __flash_internal_getbuffer_page();
  14. #endif
  15. #ifdef W25Q16JV_LOWLEVEL
  16. #define __FLASH_LL_FILLADDRESS(pack, addr)\
  17. { pack->addr_23_16 = (addr)>>16; \
  18. pack->addr_15_8 = (addr)>>8; \
  19. pack->addr_7_0 = (addr)&0xFF; }
  20. //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  21. #pragma pack( push, 1 )
  22. typedef struct
  23. {
  24. __FLASH_BYTE opcode; // êîìàíäà ÏÎÑËÅÄÎÂÀÒÅËÜÍÎÅ ×ÒÅÍÈÅ (ÁÛÑÒÐÎÅ)
  25. __FLASH_BYTE addr_23_16; // Àäðåñ A23..A16
  26. __FLASH_BYTE addr_15_8; // Àäðåñ A15..A08
  27. __FLASH_BYTE addr_7_0; // Àäðåñ A07..A00
  28. }
  29. __flash_packet_arrayreadfast_t; // [W25Q OK]
  30. #pragma pack( pop )
  31. //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  32. #pragma pack( push, 1 )
  33. typedef struct
  34. {
  35. __FLASH_BYTE opcode; // êîìàíäà ÏÎÑËÅÄÎÂÀÒÅËÜÍÎÅ ×ÒÅÍÈÅ
  36. __FLASH_BYTE addr_23_16; // Àäðåñ A23..A16
  37. __FLASH_BYTE addr_15_8; // Àäðåñ A15..A08
  38. __FLASH_BYTE addr_7_0; // Àäðåñ A07..A00
  39. }
  40. __flash_packet_arrayread_t; // [W25Q OK]
  41. #pragma pack( pop )
  42. //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  43. #pragma pack( push, 1 )
  44. typedef struct
  45. {
  46. __FLASH_BYTE opcode; // êîìàíäà ÇÀÏÈÑÜ ÑÒÐÀÍÈÖÛ
  47. __FLASH_BYTE addr_23_16; // Àäðåñ A23..A16
  48. __FLASH_BYTE addr_15_8; // Àäðåñ A15..A08
  49. __FLASH_BYTE addr_7_0; // Àäðåñ A07..A00
  50. }
  51. __flash_packet_page_program_t; // [W25Q OK]
  52. #pragma pack( pop )
  53. //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  54. #pragma pack( push, 1 )
  55. typedef struct
  56. {
  57. __FLASH_BYTE opcode; // êîìàíäà ÑÒÈÐÀÍÈÅ ÑÒÐÀÍÈÖÛ
  58. __FLASH_BYTE addr_23_16; // Àäðåñ A23..A16
  59. __FLASH_BYTE addr_15_8; // Àäðåñ A15..A08
  60. __FLASH_BYTE addr_7_0; // Àäðåñ A07..A00
  61. }
  62. __flash_packet_pageerase_t; // [W25Q OK]
  63. #pragma pack( pop )
  64. //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  65. #pragma pack( push, 1 )
  66. typedef struct
  67. {
  68. __FLASH_BYTE opcode; // êîìàíäà ÑÒÈÐÀÍÈÅ ÁËÎÊÀ (=ÑÒÐÀÍÈÖÀ)
  69. __FLASH_BYTE addr_23_16; // Àäðåñ A23..A16
  70. __FLASH_BYTE addr_15_8; // Àäðåñ A15..A08
  71. __FLASH_BYTE addr_7_0; // Àäðåñ A07..A00
  72. }
  73. __flash_packet_blockerase_t; // [W25Q OK]
  74. #pragma pack( pop )
  75. //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  76. #pragma pack( push, 1 )
  77. typedef struct
  78. {
  79. __FLASH_BYTE opcode; // êîìàíäà ÑÒÈÐÀÍÈÅ ÑÅÊÒÎÐÀ
  80. __FLASH_BYTE addr_23_16; // Àäðåñ A23..A16
  81. __FLASH_BYTE addr_15_8; // Àäðåñ A15..A08
  82. __FLASH_BYTE addr_7_0; // Àäðåñ A07..A00
  83. }
  84. __flash_packet_sectorerase_t; // [W25Q OK]
  85. #pragma pack( pop )
  86. //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  87. #pragma pack( push, 1 )
  88. typedef struct
  89. {
  90. __FLASH_BYTE opcode; // êîìàíäà áëîêèðîâêè/ðàçáëîêèðîâêè âñåõ Lock-áèòîâ ñåêòîðîâ
  91. }
  92. __flash_packet_globallockcontrol_t; // [W25Q OK]
  93. #pragma pack( pop )
  94. //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  95. #pragma pack( push, 1 )
  96. typedef struct
  97. {
  98. __FLASH_BYTE opcode; // êîìàíäà ðàçðåøåíèÿ/çàïðåùåíèÿ çàïèñè
  99. }
  100. __flash_packet_writecontrol_t; // [W25Q OK]
  101. #pragma pack( pop )
  102. //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  103. #pragma pack( push, 1 )
  104. typedef struct
  105. {
  106. __FLASH_BYTE opcode; // êîìàíäà ×ÒÅÍÈÅ ÑÒÀÒÓÑÀ
  107. }
  108. __flash_packet_statusread_t; // [W25Q OK]
  109. #pragma pack( pop )
  110. //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  111. #pragma pack( push, 1 )
  112. typedef struct
  113. {
  114. __FLASH_BYTE opcode; // êîìàíäà ÇÀÏÈÑÜ ÑÒÀÒÓÑÀ
  115. __FLASH_BYTE status; // êîìàíäà ÇÀÏÈÑÜ ÑÒÀÒÓÑÀ
  116. }
  117. __flash_packet_statuswrite_t; // [W25Q OK]
  118. #pragma pack( pop )
  119. //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  120. #pragma pack( push, 1 )
  121. typedef struct
  122. {
  123. __FLASH_BYTE opcode; // êîìàíäà ÏÅÐÅÕÎÄ â ñïÿùèé ðåæèì
  124. }
  125. __flash_packet_powerdown_t; // [W25Q OK]
  126. #pragma pack( pop )
  127. //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  128. #pragma pack( push, 1 )
  129. typedef struct
  130. {
  131. __FLASH_BYTE opcode; // êîìàíäà ÂÎÇÂÐÀÒ èç ñïÿùåãî ðåæèìà
  132. }
  133. __flash_packet_powerup_t; // [W25Q OK]
  134. #pragma pack( pop )
  135. //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  136. #pragma pack( push, 1 )
  137. typedef struct
  138. {
  139. __FLASH_BYTE opcode; // êîìàíäà ÏÎËÓ×ÈÒÜ èäåíòèôèêàòîð ïðîèçâîäèòåëÿ
  140. }
  141. __flash_packet_manufactureridread_t; // [W25Q OK]
  142. #pragma pack( pop )
  143. //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  144. #pragma pack( push, 1 )
  145. typedef struct
  146. {
  147. __FLASH_BYTE opcode; // êîìàíäà ÏÎËÓ×ÈÒÜ SFDP ðåãèñòð
  148. __FLASH_BYTE zero1; // =0
  149. __FLASH_BYTE zero2; // =0
  150. __FLASH_BYTE offset; // ñìåùåíèå â áàéòàõ ðåãèñòðà SDFP
  151. __FLASH_BYTE dummy; // òðåáóåòñÿ ïåðåäàòü ôèêòèâíûé áàéò
  152. }
  153. __flash_packet_sfdp_read_t; // [W25Q OK]
  154. #pragma pack( pop )
  155. //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  156. #pragma pack( push, 1 )
  157. typedef struct
  158. {
  159. __FLASH_BYTE opcode; // êîìàíäà ÏÎËÓ×ÈÒÜ Unique ID
  160. __FLASH_BYTE zero1; // òðåáóåòñÿ ïåðåäàòü ôèêòèâíûé áàéò
  161. __FLASH_BYTE zero2; // òðåáóåòñÿ ïåðåäàòü ôèêòèâíûé áàéò
  162. __FLASH_BYTE zero3; // òðåáóåòñÿ ïåðåäàòü ôèêòèâíûé áàéò
  163. __FLASH_BYTE zero4; // òðåáóåòñÿ ïåðåäàòü ôèêòèâíûé áàéò
  164. }
  165. __flash_packet_uid_read_t; // [W25Q OK]
  166. #pragma pack( pop )
  167. //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  168. #pragma pack( push, 1 )
  169. typedef struct
  170. {
  171. __FLASH_BYTE opcode; // êîìàíäà ÑÒÅÐÅÒÜ ÐÅÃÈÑÒÐ ÁÅÇÎÏÀÑÍÎÑÒÈ
  172. __FLASH_BYTE zero; // =0
  173. __FLASH_BYTE zero_2 : 4; // =0
  174. __FLASH_BYTE regSelector : 4; // âûáîð ðåãèñòðà: 0x1 = Register #1, ... 0x3 = Register #3
  175. __FLASH_BYTE zero_3; // =0
  176. }
  177. __flash_packet_securityregistererase_t; // [W25Q OK]
  178. #pragma pack( pop )
  179. //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  180. #pragma pack( push, 1 )
  181. typedef struct
  182. {
  183. __FLASH_BYTE opcode; // êîìàíäà ÇÀÏÈÑÀÒÜ ÐÅÃÈÑÒÐ ÁÅÇÎÏÀÑÍÎÑÒÈ
  184. __FLASH_BYTE zero; // =0
  185. __FLASH_BYTE zero_2 : 4; // =0
  186. __FLASH_BYTE regSelector : 4; // âûáîð ðåãèñòðà: 0x1 = Register #1, ... 0x3 = Register #3
  187. __FLASH_BYTE byteSelector; // =0
  188. }
  189. __flash_packet_securityregisterwrite_t; // [W25Q OK]
  190. #pragma pack( pop )
  191. //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  192. #pragma pack( push, 1 )
  193. typedef struct
  194. {
  195. __FLASH_BYTE opcode; // êîìàíäà ÏÐÎ×ÈÒÀÒÜ ÐÅÃÈÑÒÐ ÁÅÇÎÏÀÑÍÎÑÒÈ
  196. __FLASH_BYTE zero; // =0
  197. __FLASH_BYTE zero_2 : 4; // =0
  198. __FLASH_BYTE regSelector : 4; // âûáîð ðåãèñòðà: 0x1 = Register #1, ... 0x3 = Register #3
  199. __FLASH_BYTE byteSelector; // íà÷àëüíûé àäðåñ áàéòà ðåãèñòðà
  200. }
  201. __flash_packet_securityregisterread_t; // [W25Q OK]
  202. #pragma pack( pop )
  203. //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  204. #pragma pack( push, 1 )
  205. typedef struct
  206. {
  207. __FLASH_BYTE opcode; // êîìàíäà ÇÀÏÈÑÀÒÜ ÈÍÄÈÂÈÄÓÀËÜÍÓÞ ÁËÎÊÈÐÎÂÊÓ
  208. __FLASH_BYTE addr_23_16; // Àäðåñ A23..A16
  209. __FLASH_BYTE addr_15_8; // Àäðåñ A15..A08
  210. __FLASH_BYTE addr_7_0; // Àäðåñ A07..A00
  211. }
  212. __flash_packet_protectregister_rw_t;
  213. #pragma pack( pop )
  214. //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  215. #endif
  216. #endif