eeprom.h 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603
  1. /*
  2. * eeprom.h
  3. *
  4. * Created on: 2020. 4. 22.
  5. * Author: parkyj
  6. */
  7. #ifndef EEPROM_H_
  8. #define EEPROM_H_
  9. #define EEPROM_M24C08_ID 0xA0
  10. #define EEPROM_Block0_ADDRESS EEPROM_M24C08_ID
  11. #define EEPROM_ATT_BASE 0x0000 + 96
  12. #if 1 // PYJ.2020.04.25_BEGIN --
  13. #define EEPROM_ATT_DL1_TABLE_ADDRESDS (( EEPROM_ATT_BASE + (sizeof(ATT_TABLE_st)) ) & 0xFFFF) //128
  14. #define EEPROM_ATT_DL2_TABLE_ADDRESDS (( EEPROM_ATT_DL1_TABLE_ADDRESDS + (sizeof(ATT_TABLE_st)) ) & 0xFFFF)
  15. #define EEPROM_ATT_DL3_TABLE_ADDRESDS (( EEPROM_ATT_DL2_TABLE_ADDRESDS + (sizeof(ATT_TABLE_st)) ) & 0xFFFF)
  16. #define EEPROM_ATT_DL4_TABLE_ADDRESDS (( EEPROM_ATT_DL3_TABLE_ADDRESDS + (sizeof(ATT_TABLE_st)) ) & 0xFFFF)
  17. #define EEPROM_ATT_UL1_TABLE_ADDRESDS (( EEPROM_ATT_DL4_TABLE_ADDRESDS + (sizeof(ATT_TABLE_st)) ) & 0xFFFF)
  18. #define EEPROM_ATT_UL2_TABLE_ADDRESDS (( EEPROM_ATT_UL1_TABLE_ADDRESDS + (sizeof(ATT_TABLE_st)) ) & 0xFFFF)
  19. #define EEPROM_ATT_UL3_TABLE_ADDRESDS (( EEPROM_ATT_UL2_TABLE_ADDRESDS + (sizeof(ATT_TABLE_st)) ) & 0xFFFF)
  20. #define EEPROM_ATT_UL4_TABLE_ADDRESDS (( EEPROM_ATT_UL3_TABLE_ADDRESDS + (sizeof(ATT_TABLE_st)) ) & 0xFFFF)//128
  21. #define EEPROM_DET_DL1_TABLE_ADDRESDS (( EEPROM_ATT_UL4_TABLE_ADDRESDS + (sizeof(DET_TABLEDL_st)+ 2)) & 0xFFFF)
  22. #define EEPROM_DET_DL2_TABLE_ADDRESDS (( EEPROM_DET_DL1_TABLE_ADDRESDS + (sizeof(DET_TABLEDL_st)+ 2)) & 0xFFFF)
  23. #define EEPROM_DET_DL3_TABLE_ADDRESDS (( EEPROM_DET_DL2_TABLE_ADDRESDS + (sizeof(DET_TABLEDL_st)+ 2)) & 0xFFFF)
  24. #define EEPROM_DET_DL4_TABLE_ADDRESDS (( EEPROM_DET_DL3_TABLE_ADDRESDS + (sizeof(DET_TABLEDL_st)+ 2)) & 0xFFFF)
  25. #define EEPROM_DET_UL1_TABLE_ADDRESDS (( EEPROM_DET_DL4_TABLE_ADDRESDS + (sizeof(DET_TABLEUL_st) + 4)) & 0xFFFF)
  26. #define EEPROM_DET_UL2_TABLE_ADDRESDS (( EEPROM_DET_UL1_TABLE_ADDRESDS + (sizeof(DET_TABLEUL_st)+ 4)) & 0xFFFF)
  27. #define EEPROM_DET_UL3_TABLE_ADDRESDS (( EEPROM_DET_UL2_TABLE_ADDRESDS + (sizeof(DET_TABLEUL_st)+ 4)) & 0xFFFF)
  28. #define EEPROM_DET_UL4_TABLE_ADDRESDS (( EEPROM_DET_UL3_TABLE_ADDRESDS + (sizeof(DET_TABLEUL_st)+ 4)) & 0xFFFF)
  29. #define EEPROM_TEMP_DL1_TABLE_ADDRESDS (( EEPROM_DET_UL4_TABLE_ADDRESDS + (sizeof(TEMP_TABLE_st)+12)) & 0xFFFF)
  30. #define EEPROM_TEMP_DL2_TABLE_ADDRESDS (( EEPROM_TEMP_DL1_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)+12)) & 0xFFFF)
  31. #define EEPROM_TEMP_DL3_TABLE_ADDRESDS (( EEPROM_TEMP_DL2_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)+12)) & 0xFFFF)
  32. #define EEPROM_TEMP_DL4_TABLE_ADDRESDS (( EEPROM_TEMP_DL3_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)+12)) & 0xFFFF)
  33. #define EEPROM_TEMP_UL1_TABLE_ADDRESDS (( EEPROM_TEMP_DL4_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)+12)) & 0xFFFF)
  34. #define EEPROM_TEMP_UL2_TABLE_ADDRESDS (( EEPROM_TEMP_UL1_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)+12)) & 0xFFFF)
  35. #define EEPROM_TEMP_UL3_TABLE_ADDRESDS (( EEPROM_TEMP_UL2_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)+12)) & 0xFFFF)
  36. #define EEPROM_TEMP_UL4_TABLE_ADDRESDS (( EEPROM_TEMP_UL3_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st)+12)) & 0xFFFF)
  37. #define EEPROM_USER_ATTEN_VALUE_ADDRESDS (( EEPROM_TEMP_UL4_TABLE_ADDRESDS +( sizeof(USER_ATTEN_st)+16)) & 0xFFFF)
  38. #define EEPROM_WINDOW_STATUS_ADDRESDS ((EEPROM_USER_ATTEN_VALUE_ADDRESDS + (sizeof(BLUESTATUS_st))) & 0xFFFF) //96byte
  39. #else
  40. #define EEPROM_WINDOW_STATUS_ADDRESDS ((EEPROM_ATT_BASE + (sizeof(BLUESTATUS_st))) & 0xFFFF) //96byte
  41. #define EEPROM_ATT_DL1_TABLE_ADDRESDS (( EEPROM_WINDOW_STATUS_ADDRESDS + (sizeof(ATT_TABLE_st)) )& 0xFFFF) //128
  42. #define EEPROM_ATT_DL2_TABLE_ADDRESDS (( EEPROM_ATT_DL1_TABLE_ADDRESDS + (sizeof(ATT_TABLE_st)) ) & 0xFFFF)
  43. #define EEPROM_ATT_DL3_TABLE_ADDRESDS (( EEPROM_ATT_DL2_TABLE_ADDRESDS + (sizeof(ATT_TABLE_st)) ) & 0xFFFF)
  44. #define EEPROM_ATT_DL4_TABLE_ADDRESDS (( EEPROM_ATT_DL3_TABLE_ADDRESDS + (sizeof(ATT_TABLE_st)) ) & 0xFFFF)
  45. #define EEPROM_ATT_UL1_TABLE_ADDRESDS (( EEPROM_ATT_DL4_TABLE_ADDRESDS + (sizeof(ATT_TABLE_st)) ) & 0xFFFF)
  46. #define EEPROM_ATT_UL2_TABLE_ADDRESDS (( EEPROM_ATT_UL1_TABLE_ADDRESDS + (sizeof(ATT_TABLE_st)) ) & 0xFFFF)
  47. #define EEPROM_ATT_UL3_TABLE_ADDRESDS (( EEPROM_ATT_UL2_TABLE_ADDRESDS + (sizeof(ATT_TABLE_st)) ) & 0xFFFF)
  48. #define EEPROM_ATT_UL4_TABLE_ADDRESDS (( EEPROM_ATT_UL3_TABLE_ADDRESDS + (sizeof(ATT_TABLE_st)) ) & 0xFFFF)//128
  49. #define EEPROM_DET_DL1_TABLE_ADDRESDS (( EEPROM_ATT_UL4_TABLE_ADDRESDS + (sizeof(DET_TABLEDL_st))) & 0xFFFF)
  50. #define EEPROM_DET_DL2_TABLE_ADDRESDS (( EEPROM_DET_DL1_TABLE_ADDRESDS + (sizeof(DET_TABLEDL_st))) & 0xFFFF)
  51. #define EEPROM_DET_DL3_TABLE_ADDRESDS (( EEPROM_DET_DL2_TABLE_ADDRESDS + (sizeof(DET_TABLEDL_st))) & 0xFFFF)
  52. #define EEPROM_DET_DL4_TABLE_ADDRESDS (( EEPROM_DET_DL3_TABLE_ADDRESDS + (sizeof(DET_TABLEDL_st))) & 0xFFFF)
  53. #define EEPROM_DET_UL1_TABLE_ADDRESDS (( EEPROM_DET_DL4_TABLE_ADDRESDS + (sizeof(DET_TABLEUL_st))) & 0xFFFF)
  54. #define EEPROM_DET_UL2_TABLE_ADDRESDS (( EEPROM_DET_UL1_TABLE_ADDRESDS + (sizeof(DET_TABLEUL_st))) & 0xFFFF)
  55. #define EEPROM_DET_UL3_TABLE_ADDRESDS (( EEPROM_DET_UL2_TABLE_ADDRESDS + (sizeof(DET_TABLEUL_st))) & 0xFFFF)
  56. #define EEPROM_DET_UL4_TABLE_ADDRESDS (( EEPROM_DET_UL3_TABLE_ADDRESDS + (sizeof(DET_TABLEUL_st))) & 0xFFFF)
  57. #define EEPROM_TEMP_DL1_TABLE_ADDRESDS (( EEPROM_DET_UL4_TABLE_ADDRESDS + (sizeof(TEMP_TABLE_st))) & 0xFFFF)
  58. #define EEPROM_TEMP_DL2_TABLE_ADDRESDS (( EEPROM_TEMP_DL1_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st))) & 0xFFFF)
  59. #define EEPROM_TEMP_DL3_TABLE_ADDRESDS (( EEPROM_TEMP_DL2_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st))) & 0xFFFF)
  60. #define EEPROM_TEMP_DL4_TABLE_ADDRESDS (( EEPROM_TEMP_DL3_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st))) & 0xFFFF)
  61. #define EEPROM_TEMP_UL1_TABLE_ADDRESDS (( EEPROM_TEMP_DL4_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st))) & 0xFFFF)
  62. #define EEPROM_TEMP_UL2_TABLE_ADDRESDS (( EEPROM_TEMP_UL1_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st))) & 0xFFFF)
  63. #define EEPROM_TEMP_UL3_TABLE_ADDRESDS (( EEPROM_TEMP_UL2_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st))) & 0xFFFF)
  64. #define EEPROM_TEMP_UL4_TABLE_ADDRESDS (( EEPROM_TEMP_UL3_TABLE_ADDRESDS +( sizeof(TEMP_TABLE_st))) & 0xFFFF)
  65. #endif // PYJ.2020.04.25_END --
  66. #define MAKE_ADDRESS(_addr, _e2) ((uint8_t)EEPROM_M24C08_ADDR | \
  67. ((_e2) ? EEPROM_M24C08_ADDR_E2 : 0) | \
  68. ((uint8_t)((_addr) >> 7) & EEPROM_M24C08_BYTE_ADDR_H))
  69. #define EEPROM_M24C08_ADDR 0xA0 //!< M24C08 device identifier
  70. #define EEPROM_M24C08_ADDR_E2 0x08 //!< M24C08 E2 address bit
  71. #define EEPROM_M24C08_BYTE_ADDR_H 0x06
  72. HAL_StatusTypeDef EEPROM_M24C08_Read(uint8_t devid,uint16_t Address,uint8_t* data,uint16_t size);
  73. HAL_StatusTypeDef EEPROM_M24C08_write(uint8_t devid,uint16_t Address,uint8_t* data,uint16_t size);
  74. HAL_StatusTypeDef EEPROM_M24C08_ByteRead(uint16_t devid,uint16_t Address,uint8_t* data,uint8_t size);
  75. HAL_StatusTypeDef EEPROM_M24C08_Bytewrite(uint16_t devid,uint16_t Address,uint8_t* data,uint8_t size);
  76. HAL_StatusTypeDef EEPROM_M24C08_Zerowrite(uint8_t devid,uint16_t Address);
  77. void EEPROM_M24C08_Init(void);
  78. typedef struct{
  79. uint8_t bluecell_User_DL1_H; uint8_t bluecell_User_DL1_L;
  80. uint8_t bluecell_User_DL2_H; uint8_t bluecell_User_DL2_L;
  81. uint8_t bluecell_User_DL3_H; uint8_t bluecell_User_DL3_L;
  82. uint8_t bluecell_User_DL4_H; uint8_t bluecell_User_DL4_L;
  83. uint8_t bluecell_User_UL1_H; uint8_t bluecell_User_UL1_L;
  84. uint8_t bluecell_User_UL2_H; uint8_t bluecell_User_UL2_L;
  85. uint8_t bluecell_User_UL3_H; uint8_t bluecell_User_UL3_L;
  86. uint8_t bluecell_User_UL4_H; uint8_t bluecell_User_UL4_L;
  87. }USER_ATTEN_st;
  88. typedef struct{
  89. uint8_t Table_10_Temp_H; uint8_t Table_10_Temp_L;
  90. uint8_t Table_15_Temp_H; uint8_t Table_15_Temp_L;
  91. uint8_t Table_20_Temp_H; uint8_t Table_20_Temp_L;
  92. uint8_t Table_25_Temp_H; uint8_t Table_25_Temp_L;
  93. uint8_t Table_30_Temp_H; uint8_t Table_30_Temp_L;
  94. uint8_t Table_35_Temp_H; uint8_t Table_35_Temp_L;
  95. uint8_t Table_40_Temp_H; uint8_t Table_40_Temp_L;
  96. uint8_t Table_45_Temp_H; uint8_t Table_45_Temp_L;
  97. uint8_t Table_50_Temp_H; uint8_t Table_50_Temp_L;
  98. uint8_t Table_55_Temp_H; uint8_t Table_55_Temp_L;
  99. }TEMP_TABLE_st;
  100. typedef struct{
  101. uint8_t Table_0_0_dBm;
  102. uint8_t Table_0_5_dBm;
  103. uint8_t Table_1_0_dBm;
  104. uint8_t Table_1_5_dBm;
  105. uint8_t Table_2_0_dBm;
  106. uint8_t Table_2_5_dBm;
  107. uint8_t Table_3_0_dBm;
  108. uint8_t Table_3_5_dBm;
  109. uint8_t Table_4_0_dBm;
  110. uint8_t Table_4_5_dBm;
  111. uint8_t Table_5_0_dBm;
  112. uint8_t Table_5_5_dBm;
  113. uint8_t Table_6_0_dBm;
  114. uint8_t Table_6_5_dBm;
  115. uint8_t Table_7_0_dBm;
  116. uint8_t Table_7_5_dBm;
  117. uint8_t Table_8_0_dBm;
  118. uint8_t Table_8_5_dBm;
  119. uint8_t Table_9_0_dBm;
  120. uint8_t Table_9_5_dBm;
  121. uint8_t Table_10_0_dBm;
  122. uint8_t Table_10_5_dBm;
  123. uint8_t Table_11_0_dBm;
  124. uint8_t Table_11_5_dBm;
  125. uint8_t Table_12_0_dBm;
  126. uint8_t Table_12_5_dBm;
  127. uint8_t Table_13_0_dBm;
  128. uint8_t Table_13_5_dBm;
  129. uint8_t Table_14_0_dBm;
  130. uint8_t Table_14_5_dBm;
  131. uint8_t Table_15_0_dBm;
  132. uint8_t Table_15_5_dBm;
  133. uint8_t Table_16_0_dBm;
  134. uint8_t Table_16_5_dBm;
  135. uint8_t Table_17_0_dBm;
  136. uint8_t Table_17_5_dBm;
  137. uint8_t Table_18_0_dBm;
  138. uint8_t Table_18_5_dBm;
  139. uint8_t Table_19_0_dBm;
  140. uint8_t Table_19_5_dBm;
  141. uint8_t Table_20_0_dBm;
  142. uint8_t Table_20_5_dBm;
  143. uint8_t Table_21_0_dBm;
  144. uint8_t Table_21_5_dBm;
  145. uint8_t Table_22_0_dBm;
  146. uint8_t Table_22_5_dBm;
  147. uint8_t Table_23_0_dBm;
  148. uint8_t Table_23_5_dBm;
  149. uint8_t Table_24_0_dBm;
  150. uint8_t Table_24_5_dBm;
  151. uint8_t Table_25_0_dBm;
  152. uint8_t Table_25_5_dBm;
  153. uint8_t Table_26_0_dBm;
  154. uint8_t Table_26_5_dBm;
  155. uint8_t Table_27_0_dBm;
  156. uint8_t Table_27_5_dBm;
  157. uint8_t Table_28_0_dBm;
  158. uint8_t Table_28_5_dBm;
  159. uint8_t Table_29_0_dBm;
  160. uint8_t Table_29_5_dBm;
  161. uint8_t Table_30_0_dBm;
  162. uint8_t Table_30_5_dBm;
  163. uint8_t Table_31_0_dBm;
  164. uint8_t Table_31_5_dBm;
  165. }ATT_TABLE_st;
  166. typedef struct{
  167. uint8_t Table_Det5_dBm_H ;
  168. uint8_t Table_Det5_dBm_L ;
  169. uint8_t Table_Det4_dBm_H ;
  170. uint8_t Table_Det4_dBm_L ;
  171. uint8_t Table_Det3_dBm_H ;
  172. uint8_t Table_Det3_dBm_L ;
  173. uint8_t Table_Det2_dBm_H ;
  174. uint8_t Table_Det2_dBm_L ;
  175. uint8_t Table_Det1_dBm_H ;
  176. uint8_t Table_Det1_dBm_L ;
  177. uint8_t Table_Det0_dBm_H ;
  178. uint8_t Table_Det0_dBm_L ;
  179. uint8_t Table_Det_1_dBm_H ;
  180. uint8_t Table_Det_1_dBm_L ;
  181. uint8_t Table_Det_2_dBm_H ;
  182. uint8_t Table_Det_2_dBm_L ;
  183. uint8_t Table_Det_3_dBm_H ;
  184. uint8_t Table_Det_3_dBm_L ;
  185. uint8_t Table_Det_4_dBm_H ;
  186. uint8_t Table_Det_4_dBm_L ;
  187. uint8_t Table_Det_5_dBm_H ;
  188. uint8_t Table_Det_5_dBm_L ;
  189. uint8_t Table_Det_6_dBm_H ;
  190. uint8_t Table_Det_6_dBm_L ;
  191. uint8_t Table_Det_7_dBm_H ;
  192. uint8_t Table_Det_7_dBm_L ;
  193. uint8_t Table_Det_8_dBm_H ;
  194. uint8_t Table_Det_8_dBm_L ;
  195. uint8_t Table_Det_9_dBm_H ;
  196. uint8_t Table_Det_9_dBm_L ;
  197. uint8_t Table_Det_10_dBm_H ;
  198. uint8_t Table_Det_10_dBm_L ;
  199. uint8_t Table_Det_11_dBm_H ;
  200. uint8_t Table_Det_11_dBm_L ;
  201. uint8_t Table_Det_12_dBm_H ;
  202. uint8_t Table_Det_12_dBm_L ;
  203. uint8_t Table_Det_13_dBm_H ;
  204. uint8_t Table_Det_13_dBm_L ;
  205. uint8_t Table_Det_14_dBm_H ;
  206. uint8_t Table_Det_14_dBm_L ;
  207. uint8_t Table_Det_15_dBm_H ;
  208. uint8_t Table_Det_15_dBm_L ;
  209. uint8_t Table_Det_16_dBm_H ;
  210. uint8_t Table_Det_16_dBm_L ;
  211. uint8_t Table_Det_17_dBm_H ;
  212. uint8_t Table_Det_17_dBm_L ;
  213. uint8_t Table_Det_18_dBm_H ;
  214. uint8_t Table_Det_18_dBm_L ;
  215. uint8_t Table_Det_19_dBm_H ;
  216. uint8_t Table_Det_19_dBm_L ;
  217. uint8_t Table_Det_20_dBm_H ;
  218. uint8_t Table_Det_20_dBm_L ;
  219. uint8_t Table_Det_21_dBm_H ;
  220. uint8_t Table_Det_21_dBm_L ;
  221. uint8_t Table_Det_22_dBm_H ;
  222. uint8_t Table_Det_22_dBm_L ;
  223. uint8_t Table_Det_23_dBm_H ;
  224. uint8_t Table_Det_23_dBm_L ;
  225. uint8_t Table_Det_24_dBm_H ;
  226. uint8_t Table_Det_24_dBm_L ;
  227. uint8_t Table_Det_25_dBm_H ;
  228. uint8_t Table_Det_25_dBm_L ;
  229. }DET_TABLEDL_st;
  230. typedef struct{
  231. uint8_t Table_Det_15_dBm_H ;
  232. uint8_t Table_Det_15_dBm_L ;
  233. uint8_t Table_Det_16_dBm_H ;
  234. uint8_t Table_Det_16_dBm_L ;
  235. uint8_t Table_Det_17_dBm_H ;
  236. uint8_t Table_Det_17_dBm_L ;
  237. uint8_t Table_Det_18_dBm_H ;
  238. uint8_t Table_Det_18_dBm_L ;
  239. uint8_t Table_Det_19_dBm_H ;
  240. uint8_t Table_Det_19_dBm_L ;
  241. uint8_t Table_Det_20_dBm_H ;//1.8
  242. uint8_t Table_Det_20_dBm_L ;//1.6
  243. uint8_t Table_Det_21_dBm_H ;//1.4
  244. uint8_t Table_Det_21_dBm_L ;
  245. uint8_t Table_Det_22_dBm_H ;
  246. uint8_t Table_Det_22_dBm_L ;
  247. uint8_t Table_Det_23_dBm_H ;
  248. uint8_t Table_Det_23_dBm_L ;
  249. uint8_t Table_Det_24_dBm_H ;
  250. uint8_t Table_Det_24_dBm_L ;
  251. uint8_t Table_Det_25_dBm_H ;
  252. uint8_t Table_Det_25_dBm_L ;
  253. uint8_t Table_Det_26_dBm_H ;
  254. uint8_t Table_Det_26_dBm_L ;
  255. uint8_t Table_Det_27_dBm_H ;
  256. uint8_t Table_Det_27_dBm_L ;
  257. uint8_t Table_Det_28_dBm_H ;
  258. uint8_t Table_Det_28_dBm_L ;
  259. uint8_t Table_Det_29_dBm_H ;
  260. uint8_t Table_Det_29_dBm_L ;
  261. uint8_t Table_Det_30_dBm_H ;
  262. uint8_t Table_Det_30_dBm_L ;
  263. uint8_t Table_Det_31_dBm_H ;
  264. uint8_t Table_Det_31_dBm_L ;
  265. uint8_t Table_Det_32_dBm_H ;
  266. uint8_t Table_Det_32_dBm_L ;
  267. uint8_t Table_Det_33_dBm_H ;
  268. uint8_t Table_Det_33_dBm_L ;
  269. uint8_t Table_Det_34_dBm_H ;
  270. uint8_t Table_Det_34_dBm_L ;
  271. uint8_t Table_Det_35_dBm_H ;
  272. uint8_t Table_Det_35_dBm_L ;
  273. uint8_t Table_Det_36_dBm_H ;
  274. uint8_t Table_Det_36_dBm_L ;
  275. uint8_t Table_Det_37_dBm_H ;
  276. uint8_t Table_Det_37_dBm_L ;
  277. uint8_t Table_Det_38_dBm_H ;
  278. uint8_t Table_Det_38_dBm_L ;
  279. uint8_t Table_Det_39_dBm_H ;
  280. uint8_t Table_Det_39_dBm_L ;
  281. uint8_t Table_Det_40_dBm_H ;
  282. uint8_t Table_Det_40_dBm_L ;
  283. uint8_t Table_Det_41_dBm_H ;
  284. uint8_t Table_Det_41_dBm_L ;
  285. uint8_t Table_Det_42_dBm_H ;
  286. uint8_t Table_Det_42_dBm_L ;
  287. uint8_t Table_Det_43_dBm_H ;
  288. uint8_t Table_Det_43_dBm_L ;
  289. uint8_t Table_Det_44_dBm_H ;
  290. uint8_t Table_Det_44_dBm_L ;
  291. uint8_t Table_Det_45_dBm_H ;
  292. uint8_t Table_Det_45_dBm_L ;
  293. uint8_t Table_Det_46_dBm_H ;
  294. uint8_t Table_Det_46_dBm_L ;
  295. uint8_t Table_Det_47_dBm_H ;
  296. uint8_t Table_Det_47_dBm_L ;
  297. uint8_t Table_Det_48_dBm_H ;
  298. uint8_t Table_Det_48_dBm_L ;
  299. uint8_t Table_Det_49_dBm_H ;
  300. uint8_t Table_Det_49_dBm_L ;
  301. uint8_t Table_Det_50_dBm_H ;
  302. uint8_t Table_Det_50_dBm_L ;
  303. uint8_t Table_Det_51_dBm_H ;
  304. uint8_t Table_Det_51_dBm_L ;
  305. uint8_t Table_Det_52_dBm_H ;
  306. uint8_t Table_Det_52_dBm_L ;
  307. uint8_t Table_Det_53_dBm_H ;
  308. uint8_t Table_Det_53_dBm_L ;
  309. uint8_t Table_Det_54_dBm_H ;
  310. uint8_t Table_Det_54_dBm_L ;
  311. uint8_t Table_Det_55_dBm_H ;
  312. uint8_t Table_Det_55_dBm_L ;
  313. uint8_t Table_Det_56_dBm_H ;
  314. uint8_t Table_Det_56_dBm_L ;
  315. uint8_t Table_Det_57_dBm_H ;
  316. uint8_t Table_Det_57_dBm_L ;
  317. uint8_t Table_Det_58_dBm_H ;
  318. uint8_t Table_Det_58_dBm_L ;
  319. uint8_t Table_Det_59_dBm_H ;
  320. uint8_t Table_Det_59_dBm_L ;
  321. uint8_t Table_Det_60_dBm_H ;
  322. uint8_t Table_Det_60_dBm_L ;
  323. }DET_TABLEUL_st;
  324. typedef struct{
  325. uint8_t bluecell_header;
  326. uint8_t bluecell_type;
  327. uint8_t bluecell_length;
  328. uint8_t bluecell_crcindex;
  329. uint8_t Selftest1;
  330. uint8_t Selftest2;
  331. uint8_t Selftest3;
  332. uint8_t Selftest4;
  333. uint8_t ATT_DL1_PATH;
  334. uint8_t ATT_DL2_PATH;
  335. uint8_t ATT_DL3_PATH;
  336. uint8_t ATT_DL4_PATH;
  337. uint8_t ATT_UL1_PATH;
  338. uint8_t ATT_UL2_PATH;
  339. uint8_t ATT_UL3_PATH;
  340. uint8_t ATT_UL4_PATH;
  341. uint8_t ATT_DL1_H;
  342. uint8_t ATT_DL1_L;
  343. uint8_t ATT_DL2_H;
  344. uint8_t ATT_DL2_L;
  345. uint8_t ATT_DL3_H;
  346. uint8_t ATT_DL3_L;
  347. uint8_t ATT_DL4_H;
  348. uint8_t ATT_DL4_L;
  349. uint8_t ATT_UL1_H;
  350. uint8_t ATT_UL1_L;
  351. uint8_t ATT_UL2_H;
  352. uint8_t ATT_UL2_L;
  353. uint8_t ATT_UL3_H;
  354. uint8_t ATT_UL3_L;
  355. uint8_t ATT_UL4_H;
  356. uint8_t ATT_UL4_L;
  357. uint8_t ULO_P1_Level1_H;
  358. uint8_t ULO_P1_Level1_L;
  359. uint8_t ULO_P2_Level2_H;
  360. uint8_t ULO_P2_Level2_L;
  361. uint8_t ULO_P3_Level3_H;
  362. uint8_t ULO_P3_Level3_L;
  363. uint8_t ULO_P4_Level4_H;
  364. uint8_t ULO_P4_Level4_L;
  365. uint8_t DLI_P1_Level1_H;
  366. uint8_t DLI_P1_Level1_L;
  367. uint8_t DLI_P2_Level2_H;
  368. uint8_t DLI_P2_Level2_L;
  369. uint8_t DLI_P3_Level3_H;
  370. uint8_t DLI_P3_Level3_L;
  371. uint8_t DLI_P4_Level4_H;
  372. uint8_t DLI_P4_Level4_L;
  373. uint8_t DET_TEMP;
  374. uint8_t DLI_AGC_ON_OFF;
  375. uint8_t ULO_ALC_ON_OFF;
  376. uint8_t ULO_Level1_H;
  377. uint8_t ULO_Level1_L;
  378. uint8_t ULO_Level2_H;
  379. uint8_t ULO_Level2_L;
  380. uint8_t ULO_Level3_H;
  381. uint8_t ULO_Level3_L;
  382. uint8_t ULO_Level4_H;
  383. uint8_t ULO_Level4_L;
  384. uint8_t DLI_Level1_H;
  385. uint8_t DLI_Level1_L;
  386. uint8_t DLI_Level2_H;
  387. uint8_t DLI_Level2_L;
  388. uint8_t DLI_Level3_H;
  389. uint8_t DLI_Level3_L;
  390. uint8_t DLI_Level4_H;
  391. uint8_t DLI_Level4_L;
  392. uint8_t ULO_ALC_Threshold_H;
  393. uint8_t ULO_ALC_Threshold_L;
  394. uint8_t BLUECELL_RESERVE17;
  395. uint8_t BLUECELL_RESERVE18;
  396. uint8_t BLUECELL_RESERVE19;
  397. uint8_t BLUECELL_RESERVE20;
  398. uint8_t BLUECELL_RESERVE21;
  399. uint8_t bluecell_User_DL1_H;
  400. uint8_t bluecell_User_DL1_L;
  401. uint8_t bluecell_User_DL2_H;
  402. uint8_t bluecell_User_DL2_L;
  403. uint8_t bluecell_User_DL3_H;
  404. uint8_t bluecell_User_DL3_L;
  405. uint8_t bluecell_User_DL4_H;
  406. uint8_t bluecell_User_DL4_L;
  407. uint8_t bluecell_User_UL1_H;
  408. uint8_t bluecell_User_UL1_L;
  409. uint8_t bluecell_User_UL2_H;
  410. uint8_t bluecell_User_UL2_L;
  411. uint8_t bluecell_User_UL3_H;
  412. uint8_t bluecell_User_UL3_L;
  413. uint8_t bluecell_User_UL4_H;
  414. uint8_t bluecell_User_UL4_L;
  415. uint8_t bluecell_User_TEMP_H;
  416. uint8_t bluecell_User_TEMP_L;
  417. int8_t bluecell_User_TEMP_OFFSET;
  418. int8_t Temp_High_Threshold;
  419. int8_t Temp_High_Threshold_Default;
  420. uint8_t DLI_Level_High_Threshold_H;
  421. uint8_t DLI_Level_High_Threshold_L;
  422. uint8_t DLI_Level_Low_Threshold_H;
  423. uint8_t DLI_Level_Low_Threshold_L;
  424. uint8_t DLI_Level_High_Low_Threshold_default;
  425. uint8_t ALARM_TEMP_HIGH; //bit
  426. uint8_t ALARM_DLI_Level;
  427. uint8_t ALARM_DLI_SHTUTDOWN;
  428. uint8_t ALARM_DLI_AGC_Alarm;
  429. uint8_t ALARM_ULO_ALC_Alarm;
  430. uint8_t ALARM_ULO_Level;
  431. uint8_t ALARM_ULO_SHTUTDOWN;
  432. uint8_t ALARM_MASK1;
  433. uint8_t ALARM_MASK2;
  434. uint8_t ALARM_MASK3;
  435. uint8_t ALARM_MASK4;
  436. uint8_t ALARM_MASK5;
  437. uint8_t ALARM_TESTMODE;
  438. uint8_t ALARM_Test_Dummy1;
  439. uint8_t ALARM_Test_Dummy2;
  440. uint8_t ALARM_Test_Dummy3;
  441. uint8_t ALARM_Test_Dummy4;
  442. uint8_t ALARM_Test_Dummy5;
  443. uint8_t CPUVERSION1;
  444. uint8_t CPUVERSION2;
  445. uint8_t CPUVERSION3;
  446. uint8_t CPU_Current_Bank;
  447. uint8_t CPU_Bank_Select;//Reboot_by;
  448. uint8_t CPU_Bank1_Image_Version1;
  449. uint8_t CPU_Bank1_Image_Version2;
  450. uint8_t CPU_Bank1_Image_Version3;
  451. uint8_t CPU_Bank1_Image_BuildTime1;
  452. uint8_t CPU_Bank1_Image_BuildTime2;
  453. uint8_t CPU_Bank1_Image_BuildTime3;
  454. uint8_t CPU_Bank1_Image_BuildTime4;
  455. uint8_t CPU_Bank1_Image_BuildTime5;
  456. uint8_t CPU_Bank1_Image_BuildTime6;
  457. uint8_t CPU_Bank1_Image_Name[32];
  458. uint8_t CPU_Bank2_Image_Version1;
  459. uint8_t CPU_Bank2_Image_Version2;
  460. uint8_t CPU_Bank2_Image_Version3;
  461. uint8_t CPU_Bank2_Image_BuildTime1;
  462. uint8_t CPU_Bank2_Image_BuildTime2;
  463. uint8_t CPU_Bank2_Image_BuildTime3;
  464. uint8_t CPU_Bank2_Image_BuildTime4;
  465. uint8_t CPU_Bank2_Image_BuildTime5;
  466. uint8_t CPU_Bank2_Image_BuildTime6;
  467. uint8_t CPU_Bank2_Image_Name[32];
  468. uint8_t S_W_Reset;
  469. uint8_t Factory_Set_Initialization;
  470. uint8_t Temp_High_Alarm;
  471. uint8_t LED_TEST;
  472. uint8_t NODE;
  473. uint8_t Type;
  474. uint8_t PCB_Version[2];
  475. uint8_t Serial_Number[20]; // INDEX : 20
  476. uint8_t Manufacture;
  477. uint8_t Manufacture_Date[3];
  478. uint8_t Freq_ID;
  479. uint8_t Carrier_ID;
  480. uint8_t Carrier_ON_OFF;
  481. uint8_t DLI_Level_High_Alarm1;
  482. uint8_t DLI_Level_High_Alarm2;
  483. uint8_t DLI_Level_High_Alarm3;
  484. uint8_t DLI_Level_High_Alarm4;
  485. uint8_t DLI_Level_Low_Alarm1;
  486. uint8_t DLI_Level_Low_Alarm2;
  487. uint8_t DLI_Level_Low_Alarm3;
  488. uint8_t DLI_Level_Low_Alarm4;
  489. uint8_t DLI_FRBT_Atten1_H;
  490. uint8_t DLI_FRBT_Atten1_L;
  491. uint8_t DLI_FRBT_Atten2_H;
  492. uint8_t DLI_FRBT_Atten2_L;
  493. uint8_t DLI_FRBT_Atten3_H;
  494. uint8_t DLI_FRBT_Atten3_L;
  495. uint8_t DLI_FRBT_Atten4_H;
  496. uint8_t DLI_FRBT_Atten4_L;
  497. uint8_t DLI_FRBT_D_Day;
  498. uint8_t DLI_FRBT_Status;
  499. uint8_t DLI_AGC_Threshold_H;
  500. uint8_t DLI_AGC_Threshold_L;
  501. uint8_t DLI_AGC_Threshold_default;
  502. uint8_t DLI_Shutdown_ON_OFF;
  503. uint8_t DLI_Shutdown_Threshold_H;
  504. uint8_t DLI_Shutdown_Threshold_L;
  505. uint8_t DLI_Shutdown_Threshold_Default;
  506. uint8_t DLI_Shutdown_Retry_Count1;
  507. uint8_t DLI_Shutdown_Retry_Count2;
  508. uint8_t DLI_Shutdown_Retry_Count3;
  509. uint8_t DLI_Shutdown_Retry_Count4;
  510. uint8_t DLI_AGC_Alarm1;
  511. uint8_t DLI_AGC_Alarm2;
  512. uint8_t DLI_AGC_Alarm3;
  513. uint8_t DLI_AGC_Alarm4;
  514. uint8_t DLI_Shutdown_Alarm1;
  515. uint8_t DLI_Shutdown_Alarm2;
  516. uint8_t DLI_Shutdown_Alarm3;
  517. uint8_t DLI_Shutdown_Alarm4;
  518. uint8_t ULO_Level_High_Threshold_H;
  519. uint8_t ULO_Level_High_Threshold_L;
  520. uint8_t ULO_Level_High_Threshold_default;
  521. uint8_t BLUECELL_RESERVE28;//ADC3 8
  522. uint8_t BLUECELL_RESERVE29;//ADC3 8
  523. uint8_t BLUECELL_RESERVE30;//ADC1 4
  524. uint8_t BLUECELL_RESERVE31;//ADC1 4
  525. uint8_t BLUECELL_RESERVE32;//ADC1 5
  526. uint8_t BLUECELL_RESERVE33;//ADC1 5
  527. uint8_t BLUECELL_RESERVE34;//ADC1 6
  528. uint8_t BLUECELL_RESERVE35;//ADC1 6
  529. uint8_t BLUECELL_RESERVE36;//ADC3 4
  530. uint8_t BLUECELL_RESERVE37;//ADC3 4
  531. uint8_t ULO_Level_High_Alarm1;
  532. uint8_t ULO_Level_High_Alarm2;
  533. uint8_t ULO_Level_High_Alarm3;
  534. uint8_t ULO_Level_High_Alarm4;
  535. uint8_t ULO_ALC_Threshold_Default;
  536. uint8_t ULO_Shutdown_ON_OFF;
  537. uint8_t ULO_Shutdown_Threshold_H;
  538. uint8_t ULO_Shutdown_Threshold_L;
  539. uint8_t ULO_Shutdown_Threshold_Default;
  540. uint8_t ULO_Shutdown_Retry_Count1;
  541. uint8_t ULO_Shutdown_Retry_Count2;
  542. uint8_t ULO_Shutdown_Retry_Count3;
  543. uint8_t ULO_Shutdown_Retry_Count4;
  544. uint8_t ULO_ALC_Alarm1;
  545. uint8_t ULO_ALC_Alarm2;
  546. uint8_t ULO_ALC_Alarm3;
  547. uint8_t ULO_ALC_Alarm4;
  548. uint8_t ULO_Shutdown_Alarm1;
  549. uint8_t ULO_Shutdown_Alarm2;
  550. uint8_t ULO_Shutdown_Alarm3;
  551. uint8_t ULO_Shutdown_Alarm4;
  552. uint8_t Reserve0;
  553. uint8_t Reserve1;
  554. uint8_t Reserve2;
  555. uint8_t Reserve3;
  556. uint8_t Reserve4;
  557. uint8_t Reserve5;
  558. uint8_t bluecell_crc_H;
  559. uint8_t bluecell_crc_L;
  560. uint8_t bluecell_etx;
  561. }BLUESTATUS_st;
  562. // Exported functions ---------------------------------------------------------
  563. // ----------------------------------------------------------------------------
  564. #endif /* EEPROM_H_ */