common_config.h 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. #ifndef COMMON_CONFIG_H
  2. #define COMMON_CONFIG_H
  3. #include "at32f403a_407.h"
  4. #define METROLOG_M3
  5. /**
  6. * @brief Маркер ревизии платы для валидации *.bin файла
  7. *
  8. */
  9. #define HW_REV_LEN 16
  10. #define HW_REV_OFFSET 0x1F0
  11. #define HW_REV "MT_M03"
  12. /**
  13. * @brief Название модели устройства
  14. */
  15. #define MODEL "Метролог M3"
  16. /**
  17. * @brief Производитель
  18. */
  19. #define MANUFACTURER "АО \"НПК РоТеК\""
  20. /**
  21. * @brief Версия прошивки
  22. */
  23. #define VERSION "1.01t"
  24. /**
  25. * @brief MD5 CRC
  26. */
  27. #define MD5_CRC "BF704428A06FE45359B2037ADBAA2C6E"
  28. /**
  29. * @brief Адрес сектора настроек
  30. */
  31. #define SETTINGS_SECTOR 0x08020000
  32. /**
  33. * @brief Адрес CRC настроек
  34. */
  35. #define CRC_ADDRESS 0x080207FC
  36. /**
  37. * @brief Адрес сектора системных настроек
  38. */
  39. #define SYS_SECTOR 0x08020800
  40. /**
  41. * @brief Адрес CRC системных настроек
  42. */
  43. #define SYS_CRC_ADDRESS 0x08020FFC
  44. /**
  45. * @brief Слово для контроля целостности структуры настроек
  46. */
  47. #define SETTINGS_CONTROL_WORD 123456789
  48. /**
  49. * @brief Число (-1) попыток загрузки основной прошивки
  50. */
  51. #define BOOT_TRY 26
  52. /**
  53. * @brief Таймаут возврата в основное ПО, сек.
  54. */
  55. #define UPDATE_TIMEOUT 120
  56. #define USER_FLASH_FIRST_PAGE_ADDRESS 0x08021000
  57. #define USER_FLASH_END_ADDRESS 0x080C0FFF
  58. #define USER_FLASH_CRC_ADDRESS 0x080C0FFC
  59. #define FLASH_SECTOR_SIZE 0x800
  60. #define IAP_FLASH_FIRST_PAGE_ADDRESS 0x08000000 // Only as example see comment
  61. #define IAP_FLASH_CRC_ADDRESS 0x0801FFFC
  62. #define SYSTEMTICK_PERIOD_MS 1
  63. //
  64. #define MQTT_CLIENT
  65. // LwIP Software watchdog
  66. //#define SOFTWARE_LWIP_WATCHDOG
  67. //
  68. #define USB_RNDIS
  69. /**
  70. * @brief Название файла прошивки
  71. */
  72. #define MAIN_FW_NAME "MT_M03.bin"
  73. /**
  74. * @brief Название файла прошивки (backup)
  75. */
  76. #define BACKUP_MAIN_FW_NAME "BACKUP.bin"
  77. /**
  78. * @brief Вкл/выкл лог
  79. */
  80. #define LOG_ENABLE
  81. /**
  82. * @brief Название файла лога
  83. */
  84. #define LOG_NAME "LOG.txt"
  85. //#define FLASH_TYPE_AT25SF161
  86. #define FLASH_TYPE_MX25L1606E
  87. // -------------------------------------------------------------------------- //
  88. typedef enum
  89. {
  90. MB_REV_0 = 0,
  91. MB_REV_1 = 1,
  92. MB_REV_2 = 2,
  93. MB_REV_3 = 3,
  94. MB_REV_4 = 4,
  95. MB_REV_5 = 5,
  96. MB_REV_6 = 6,
  97. MB_REV_7 = 7,
  98. } MBOARD_REV_t;
  99. typedef enum
  100. {
  101. DB_ABS = 0,
  102. DB_REV_1 = 1,
  103. DB_REV_2 = 2,
  104. DB_REV_3 = 3,
  105. DB_REV_4 = 4,
  106. DB_REV_5 = 5,
  107. DB_REV_6 = 6,
  108. DB_REV_7 = 7,
  109. DB_REV_8 = 8,
  110. DB_REV_9 = 9,
  111. DB_REV_10 = 10,
  112. } DBOARD_REV_t;
  113. typedef enum
  114. {
  115. ADC_PWR_MEAS = 0,
  116. ADC_DB_REV = 1,
  117. ADC_MB_REV = 2,
  118. } ADC_REV_CH_t;
  119. extern uint8_t mboard_rev; // Ревизия основной платы
  120. extern uint8_t dboard_rev; // Ревизия дочерней платы
  121. // -------------------------------------------------------------------------- //
  122. // Вывод DEBUG
  123. //#define SETTINGS_DEBUG // Настройки
  124. //#define CM_DEBUG // Connection manager
  125. //#define CM_PING_DEBUG
  126. //#define FS_DEBUG // SPI FLASH и файловая система
  127. //#define GSM_DEBUG // GSM
  128. //#define MQTT__DEBUG // MQTT
  129. //#define POWER_DEBUG // Power manager
  130. //#define BOOT_DEBUG // Bootloader
  131. #define USB_DEBUG // USB RNDIS
  132. #ifdef DEBUG
  133. #ifdef SETTINGS_DEBUG
  134. #define SDBG
  135. #else
  136. #define SDBG if (0)
  137. #endif
  138. #ifdef CM_DEBUG
  139. #define CMDBG
  140. #else
  141. #define CMDBG if (0)
  142. #endif
  143. #ifdef CM_PING_DEBUG
  144. #define CMPDBG
  145. #else
  146. #define CMPDBG if (0)
  147. #endif
  148. #ifdef FS_DEBUG
  149. #define FSDBG
  150. #else
  151. #define FSDBG if (0)
  152. #endif
  153. #ifdef GSM_DEBUG
  154. #define GDBG
  155. #else
  156. #define GDBG if (0)
  157. #endif
  158. #ifdef MQTT__DEBUG
  159. #define MQDBG
  160. #else
  161. #define MQDBG if (0)
  162. #endif
  163. #ifdef POWER_DEBUG
  164. #define PMDBG
  165. #else
  166. #define PMDBG if (0)
  167. #endif
  168. #ifdef BOOT_DEBUG
  169. #define BOOTDBG
  170. #else
  171. #define BOOTDBG if (0)
  172. #endif
  173. #ifdef USB_DEBUG
  174. #define UDBG
  175. #else
  176. #define UDBG if (0)
  177. #endif
  178. #else
  179. #define SDBG if (0)
  180. #define CMDBG if (0)
  181. #define FSDBG if (0)
  182. #define GDBG if (0)
  183. #define MQDBG if (0)
  184. #define CMPDBG if (0)
  185. #define PMDBG if (0)
  186. #define BOOTDBG if (0)
  187. #define UDBG if (0)
  188. #endif
  189. #endif /* #ifndef COMMON_CONFIG_H */
  190. /********************************* (C) РОТЕК **********************************/