boardinit.h 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. #ifndef _BOARD_H_
  2. #define _BOARD_H_
  3. #include "Uart.h"
  4. #include "Timer.h"
  5. #include "flash.h"
  6. #include "fifo.h"
  7. #include "timeout.h"
  8. #include "I2C.h"
  9. #include "epprom.h"
  10. #include "rtc.h"
  11. #include "key.h"
  12. #define PORT_MAX_NUM 64
  13. #define SEL_74CH165 1
  14. #define USE_PORT_ID 0
  15. enum {
  16. CEN = 0x01,
  17. CLK = 0x02,
  18. PLN = 0x03,
  19. };
  20. enum {
  21. PORT_00 = 0x01,
  22. PORT_01 = 0x02,
  23. PORT_02 = 0x04,
  24. PORT_03 = 0x08,
  25. PORT_ALL = 0x0F,
  26. };
  27. typedef struct port_msg_{
  28. uint32_t group;
  29. uint32_t cePin;
  30. uint32_t doutPin;
  31. uint32_t cpPin;
  32. uint32_t plPin;
  33. }PortMsg;
  34. extern PortMsg g_portMsg[4];
  35. /*---------------------------------------------------------------
  36. * PORT1: COM65 ----- CS0 PD0 (in)
  37. * DOUT ----- CS1 PD1 (in)
  38. * PL ----- CS2 PD2 (out)
  39. * CP ----- CS3 PD3 (out)
  40. * DIN ----- CS4 PD4 (没有用到)
  41. * CE_N ----- CS5 PD5 (out)
  42. * COM1 ----- CS6 PD6 (in)
  43. * ---------------------------------------------------------------*/
  44. #define CEN_NSS_LOW_01() gpio_bit_reset(GPIOD, GPIO_PIN_5)
  45. #define CEN_NSS_HIGH_01() gpio_bit_set(GPIOD, GPIO_PIN_5)
  46. #define OUT_H165_01() gpio_input_bit_get(GPIOD, GPIO_PIN_1)
  47. #define CLK_LOW_01() gpio_bit_reset(GPIOD, GPIO_PIN_3)
  48. #define CLK_HIGH_01() gpio_bit_set(GPIOD, GPIO_PIN_3)
  49. #define PLN_LOW_01() gpio_bit_reset(GPIOD, GPIO_PIN_2)
  50. #define PLN_HIGH_01() gpio_bit_set(GPIOD, GPIO_PIN_2)
  51. /*---------------------------------------------------------------
  52. * PORT2: COM65 ----- AD0 PE0 (in)
  53. * DOUT ----- AD1 PE1 (in)
  54. * PL ----- AD2 PE2 (out)
  55. * CP ----- AD3 PE3 (out)
  56. * DIN ----- AD4 PE4 (没有用到)
  57. * CE_N ----- AD5 PE5 (out)
  58. * COM1 ----- AD6 PE6 (in)
  59. * ---------------------------------------------------------------*/
  60. #define CEN_NSS_LOW_02() gpio_bit_reset(GPIOE, GPIO_PIN_5)
  61. #define CEN_NSS_HIGH_02() gpio_bit_set(GPIOE, GPIO_PIN_5)
  62. #define OUT_H165_02() gpio_input_bit_get(GPIOE, GPIO_PIN_1)
  63. #define CLK_LOW_02() gpio_bit_reset(GPIOE, GPIO_PIN_3)
  64. #define CLK_HIGH_02() gpio_bit_set(GPIOE, GPIO_PIN_3)
  65. #define PLN_LOW_02() gpio_bit_reset(GPIOE, GPIO_PIN_2)
  66. #define PLN_HIGH_02() gpio_bit_set(GPIOE, GPIO_PIN_2)
  67. /*---------------------------------------------------------------
  68. * PORT3: COM65 ----- CS15 PD8 (in)
  69. * DOUT ----- CS14 PD9 (in)
  70. * PL ----- CS13 PD10 (out)
  71. * CP ----- CS12 PD11 (out)
  72. * DIN ----- CS11 PD12 (没有用到)
  73. * CE_N ----- CS10 PD13 (out)
  74. * COM1 ----- CS6 PD6 (in)
  75. * ---------------------------------------------------------------*/
  76. #define CEN_NSS_LOW_03() gpio_bit_reset(GPIOD, GPIO_PIN_13)
  77. #define CEN_NSS_HIGH_03() gpio_bit_set(GPIOD, GPIO_PIN_13)
  78. #define OUT_H165_03() gpio_input_bit_get(GPIOD, GPIO_PIN_9)
  79. #define CLK_LOW_03() gpio_bit_reset(GPIOD, GPIO_PIN_11)
  80. #define CLK_HIGH_03() gpio_bit_set(GPIOD, GPIO_PIN_11)
  81. #define PLN_LOW_03() gpio_bit_reset(GPIOD, GPIO_PIN_10)
  82. #define PLN_HIGH_03() gpio_bit_set(GPIOD, GPIO_PIN_10)
  83. /*---------------------------------------------------------------
  84. * Port4: COM65 ----- AD09 PE09 (in)
  85. * DOUT ----- AD10 PE10 (in)
  86. * PL ----- AD11 PE11 (out)
  87. * CP ----- AD12 PE12 (out)
  88. * DIN ----- AD13 PE13 (没有用到)
  89. * CE_N ----- AD14 PE14 (out)
  90. * COM1 ----- AD15 PE15 (in)
  91. * ---------------------------------------------------------------*/
  92. #define CEN_NSS_LOW_P4() gpio_bit_reset(GPIOE, GPIO_PIN_14)
  93. #define CEN_NSS_HIGH_P4() gpio_bit_set(GPIOE, GPIO_PIN_14)
  94. #define OUT_H165_P4() gpio_input_bit_get(GPIOE, GPIO_PIN_10)
  95. #define CLK_LOW_P4() gpio_bit_reset(GPIOE, GPIO_PIN_12)
  96. #define CLK_HIGH_P4() gpio_bit_set(GPIOE, GPIO_PIN_12)
  97. #define PLN_LOW_P4() gpio_bit_reset(GPIOE, GPIO_PIN_11)
  98. #define PLN_HIGH_P4() gpio_bit_set(GPIOE, GPIO_PIN_11)
  99. enum _RESET_FLAG_{
  100. RESET_PINRST = 0x01, // NRST 引脚复位
  101. RESET_PORRSTF = 0x02, // 上电掉电复位
  102. RESET_SFTRSTF = 0x04, // 软件复位
  103. RESET_IWDGRSTF = 0x08, //独立看门狗复位
  104. RESET_WWDGRSTF = 0x10, // 窗口看门狗复位
  105. RESET_LPWRRSTF = 0x20, // 低功耗复位
  106. };
  107. typedef struct {
  108. uint32_t tick;
  109. uint8_t status;
  110. }ExitTest;
  111. typedef struct {
  112. ExitTest exittest[25];
  113. uint32_t count;
  114. uint8_t btestStart;
  115. uint32_t width[20]; //
  116. uint8_t wCount; //
  117. }TestInitConut;
  118. extern TestInitConut testcount;
  119. typedef struct gpio_exti_{
  120. uint32_t csGroup; // 片选组GPIOD GPIOC GPIOB
  121. uint32_t csPin; // 具体的管脚
  122. exti_line_enum extiLine; // 中断标志脚 comm
  123. uint32_t extiPin; // 中断管脚 comm
  124. uint8_t extiPinSource; //
  125. uint8_t extiIRQn; // 中断源
  126. uint8_t outputPort;
  127. }__attribute__((packed))extiMsg_t;
  128. extern extiMsg_t g_extimsg; // 中断信息
  129. typedef enum {
  130. IDENTITY_SLAVE = 0x01, // 从设备
  131. IDENTITY_MASTER = 0x02, // 主设备
  132. }Identity;
  133. extern Identity g_iDentity; // 身份信息 主或从
  134. typedef struct _dev_reset_msg_{
  135. uint8_t resetflag;
  136. uint32_t resetNum;
  137. }__attribute__((packed))DevResetMsg;
  138. extern DevResetMsg g_devResetMsg;
  139. typedef struct _dev_pt_msg_{
  140. uint16_t firstPowerUp; // 是否为第一次上电 0x5A5A 说明已经上过电
  141. uint8_t eepromVer; // eeprom 的版本
  142. uint8_t binit; // 是否初始化
  143. uint32_t devSn; // 设备SN
  144. uint16_t devType1; // 设备类型
  145. uint16_t devfactory; // 设备厂家信息
  146. uint16_t seqNo ; // 生产批次号
  147. uint32_t data; // 生产日期
  148. uint8_t pcbVersion; // 硬件(PCB)版本
  149. uint32_t sqare; //备用
  150. }__attribute__((packed))DevPtMsg;
  151. extern DevPtMsg g_devPtMsg;
  152. typedef struct _dev_app_version_{
  153. uint32_t bootVer;
  154. uint32_t ptVer;
  155. uint32_t app1Ver;
  156. uint32_t app2Ver;
  157. uint32_t app3Ver;
  158. }__attribute__((packed))DevAppVersion;
  159. extern DevAppVersion g_devAppVer;
  160. extern void set_port_pin(uint8_t cmd,uint8_t index);
  161. extern void set_port_all_pin(uint8_t cmd,uint8_t index);
  162. extern void reset_port_pin(uint8_t cmd,uint8_t index);
  163. extern void reset_port_all_pin(uint8_t cmd,uint8_t index);//0x01 02 04 08
  164. extern uint8_t read_daout_pin(uint8_t index);
  165. extern void exti_gpio_init(void);
  166. extern void init_fwdgt_timer(void);
  167. extern void fwdgt_feed(uint32_t tickt);
  168. extern void board_init(void);
  169. extern void uart_init(void);
  170. extern void init_4g_power_up(void);
  171. extern uint32_t power_up_system_resettype(void);
  172. #endif