common_config.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. #ifndef COMMON_CONFIG_H
  2. #define COMMON_CONFIG_H
  3. #include "at32f403a_407.h"
  4. #ifdef DEBUG
  5. #define DBG
  6. #else
  7. #undef DBG
  8. #define DBG if (0)
  9. #endif
  10. /**
  11. * @brief Маркер ревизии платы для валидации *.bin файла
  12. *
  13. */
  14. #define HW_REV_LEN 16
  15. #define HW_REV_OFFSET 0x1F0
  16. #define HW_REV "MT_M03"
  17. /**
  18. * @brief Название модели устройства
  19. */
  20. #define MODEL "Метролог M3"
  21. /**
  22. * @brief Производитель
  23. */
  24. #define MANUFACTURER "АО \"НПК РоТеК\""
  25. /**
  26. * @brief Версия прошивки
  27. */
  28. #define FW_VERSION "1.00.01"
  29. /**
  30. * @brief MD5 CRC
  31. */
  32. #define MD5_CRC "BF704428A06FE45359B2037ADBAA2C6E"
  33. /**
  34. * @brief Адрес сектора настроек
  35. */
  36. #define SETTINGS_SECTOR 0x08020000
  37. /**
  38. * @brief Адрес CRC настроек
  39. */
  40. #define CRC_ADDRESS 0x080207FC
  41. /**
  42. * @brief Адрес сектора системных настроек
  43. */
  44. #define SYS_SECTOR 0x08020800
  45. /**
  46. * @brief Адрес CRC системных настроек
  47. */
  48. #define SYS_CRC_ADDRESS 0x08020FFC
  49. /**
  50. * @brief Слово для контроля целостности структуры настроек
  51. */
  52. #define SETTINGS_CONTROL_WORD 123456789
  53. /**
  54. * @brief Число (-1) попыток загрузки основной прошивки
  55. */
  56. #define BOOT_TRY 26
  57. /**
  58. * @brief Таймаут возврата в основное ПО, сек.
  59. */
  60. #define UPDATE_TIMEOUT 120
  61. #define USER_FLASH_FIRST_PAGE_ADDRESS 0x08021000
  62. #define USER_FLASH_END_ADDRESS 0x080C0FFF
  63. #define USER_FLASH_CRC_ADDRESS 0x080C0FFC
  64. #define FLASH_SECTOR_SIZE 0x800
  65. #define IAP_FLASH_FIRST_PAGE_ADDRESS 0x08000000 // Only as example see comment
  66. #define IAP_FLASH_CRC_ADDRESS 0x0801FFFC
  67. #define SYSTEMTICK_PERIOD_MS 1
  68. // Абсолютный адрес основоного FW
  69. #define FW_BEGIN_ADDRESS 0x08021000
  70. #define FLASH_PAGE_SIZE 0x00000800U
  71. // Номер первой страницы FW
  72. //#define FW_FIRST_PAGE ((FW_BEGIN_ADDRESS - 0x08000000)/2048)
  73. //
  74. #define MQTT_CLIENT
  75. // LwIP Software watchdog
  76. //#define SOFTWARE_LWIP_WATCHDOG
  77. //
  78. #define USB_RNDIS
  79. /**
  80. * @brief Название файла прошивки
  81. */
  82. #define MAIN_FW_NAME "MT_M03.bin"
  83. /**
  84. * @brief Название файла прошивки (backup)
  85. */
  86. #define BACKUP_MAIN_FW_NAME "BACKUP.bin"
  87. /**
  88. * @brief Вкл/выкл лог
  89. */
  90. #define LOG_ENABLE
  91. /**
  92. * @brief Название файла лога
  93. */
  94. #define LOG_NAME "LOG.txt"
  95. #define FLASH_TYPE_MX25L1606E
  96. // -------------------------------------------------------------------------- //
  97. typedef enum
  98. {
  99. MB_REV_0 = 0,
  100. MB_REV_1 = 1,
  101. MB_REV_2 = 2,
  102. MB_REV_3 = 3,
  103. MB_REV_4 = 4,
  104. MB_REV_5 = 5,
  105. MB_REV_6 = 6,
  106. MB_REV_7 = 7,
  107. } MBOARD_REV_t;
  108. typedef enum
  109. {
  110. DB_ABS = 0,
  111. DB_REV_1 = 1,
  112. DB_REV_2 = 2,
  113. DB_REV_3 = 3,
  114. DB_REV_4 = 4,
  115. DB_REV_5 = 5,
  116. DB_REV_6 = 6,
  117. DB_REV_7 = 7,
  118. DB_REV_8 = 8,
  119. DB_REV_9 = 9,
  120. DB_REV_10 = 10,
  121. } DBOARD_REV_t;
  122. typedef enum
  123. {
  124. ADC_PWR_MEAS = 0,
  125. ADC_DB_REV = 1,
  126. ADC_MB_REV = 2,
  127. } ADC_REV_CH_t;
  128. extern uint8_t mboard_rev; // Ревизия основной платы
  129. extern uint8_t dboard_rev; // Ревизия дочерней платы
  130. #endif /* #ifndef COMMON_CONFIG_H */
  131. /********************************* (C) РОТЕК **********************************/