hwsetup.h 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. /************************************************************************
  2. Project: Welling Motor Control Paltform
  3. Filename: hwsetup.h
  4. Partner Filename: hwsetup.c
  5. Description: The header file of hwsetup.c
  6. Complier: IAR Embedded Workbench for ARM 7.80.4
  7. CPU TYPE : STM32F30x
  8. *************************************************************************
  9. Copyright (c) 2018 Welling Motor Technology(Shanghai) Co. Ltd.
  10. All rights reserved.
  11. *************************************************************************
  12. *************************************************************************
  13. Revising History (ECL of this file):
  14. ************************************************************************/
  15. /************************************************************************
  16. Beginning of File, do not put anything above here except notes
  17. Compiler Directives:
  18. ************************************************************************/
  19. #ifndef HWSETUP_H
  20. #define HWSETUP_H
  21. #include "ti_msp_dl_config.h"//#include "at32f421.h"////#include "stm32f10x.h "
  22. //#include "stm32f10x_conf.h "
  23. //#include "STLmain.h"
  24. /************************************************************************
  25. Compiler Directives (N/A)
  26. ************************************************************************/
  27. #ifdef _HWSETUP_C_
  28. #define _HWSETUP_EXT
  29. #else
  30. #define _HWSETUP_EXT extern
  31. #endif
  32. /************************************************************************
  33. Definitions & Macros
  34. ************************************************************************/
  35. /* Frequency & time setting define */
  36. #define CORECLK_KHZ CLK_CORE_KHZ // Internal Clock
  37. #define AHBCLK_KHZ CLK_AHB_KHZ // AHB Clock
  38. #define TIM0CLK_KHZ CLK_TIM0_KHZ // TIM0 Clock
  39. #define APB1CLK_KHZ CLK_APB1_KHZ // APB1 Clock
  40. #define TIM1CLK_KHZ CLK_TIM1_KHZ // TIM1 Clock
  41. #define APB2CLK_KHZ CLK_APB2_KHZ // APB2 Clock
  42. #define TIM2CLK_KHZ CLK_APB2_KHZ // TIM1 Clock
  43. /* TIM3 CNT CLK define */
  44. #define TIM3CNTCLK_KHZ 3600 /* 36000/10 */
  45. /* TIME TASK BASE*/
  46. #define HW_1MS_PERIOD TIM0CLK_KHZ / 2
  47. /* PWM period define */
  48. #define HW_PWM_PERIOD (TIM0CLK_KHZ * 1000 / FPWM_HZ)
  49. #define HW_HPWM_PERIOD (HW_PWM_PERIOD / 2)
  50. #define HW_HHPWM_PERIOD (HW_HPWM_PERIOD / 2)
  51. #define HW_HHHPWM_PERIOD (HW_HHPWM_PERIOD / 2)
  52. #define HW_PWM_PERIOD_INV (((ULONG)1 << 21) / HW_PWM_PERIOD) // Q21
  53. /* PWM dead time define*/
  54. //#define HW_DEAD_TIME_US PWM_DEAD_TIME_US //unit: 0.1us
  55. /* ADC trigger time */
  56. #define HW_ADC_TRI_TIME_US 10 /* unit: 0.1us */
  57. /* Timer0 DMA number */
  58. #define TIM1_DMA_NUM 6
  59. /* SPI0 receive DMA number */
  60. #define SPI3_RX_DMA_NUM 15
  61. /* SPI0 transmission DMA number */
  62. #define SPI3_TX_DMA_NUM 15
  63. /* ADC DMA number */
  64. #define ADC1_DMA_NUM 6
  65. #define ADC2_DMA_NUM 8
  66. /* Interrupt ON/OFF define */
  67. #define ENABLE_IRQ __enable_irq()//stl_voEnableIrq()
  68. #define DISABLE_IRQ __disable_irq() //stl_voDisableIrq()
  69. ///* ADC result register define */
  70. //#define ADC_IA_REG ADC1->JDR1
  71. //#define ADC_IB_REG ADC1->JDR2
  72. //#define ADC_VDC_REG ADC1->JDR4
  73. //#define ADC_IPM_TEMP_REG ADC1->JDR3
  74. /* IPM fault flag define */
  75. #define MCU_BRKIN_FLG 1//(TMR1->ists & 0x0080)
  76. #define MCU_BRKIN_FLG_CLR 1//(TMR1->ists &= ~0x0080)
  77. #define MCU_POEN_FLG_EN 1// (TMR1->brk |= 0x00008000)
  78. /* Relay control define */
  79. #define IO_CTRL_RLY_CLZ 1//(GPIOA->ODR |= 0x1000)
  80. #define IO_CTRL_RLY_OPEN 1//(GPIOA->ODR &= ~0x1000)
  81. /* SPI3 synchronizing signal */
  82. //#define IO_SPI3_SYNC_HIGH (GPIOA->ODR|=0x0800)
  83. //#define IO_SPI3_SYNC_LOW (GPIOA->ODR&=~0x0800)
  84. /* Test_LED0 define */
  85. #define IO_TST_LED0_HIGH1// (GPIOF->ODR |= 0x0002)
  86. #define IO_TST_LED0_LOW 1//(GPIOF->ODR &= ~0x0002)
  87. /* SPI resolver enable */
  88. #define IO_SPI3_NSS_DISABLE 1//(GPIOD->ODR |= 0x0004)
  89. #define IO_SPI3_NSS_ENABLE 1//(GPIOD->ODR &= ~0x0004)
  90. //#define IO_TST_LED0_TOGGLE (GPIO_TG(GPIOF)|=0x0002)
  91. /* Write2EE Enable */
  92. #define IO_WRITE2EE_DISABLE 1//(GPIOB->ODR |= 0x0020)
  93. #define IO_WRITE2EE_ENABLE 1//(GPIOB->ODR &= ~0x0020)
  94. /* PC10 IO Test */
  95. #define IO_PC10_TEST_ENABLE 1//(GPIOC->ODR |= 0x0400)
  96. #define IO_PC10_TEST_DISABLE 1//(GPIOC->ODR &= ~0x0400)
  97. /* PC11 IO Test */
  98. #define IO_PC11_TEST_ENABLE 1//(GPIOC->ODR |= 0x0800)
  99. #define IO_PC11_TEST_DISABLE 1//(GPIOC->ODR &= ~0x0800)
  100. /************************************************************************
  101. TypeDefs & Structure defines (N/A)
  102. ************************************************************************/
  103. /************************************************************************
  104. Constant Table
  105. *************************************************************************/
  106. /************************************************************************
  107. Exported Variables
  108. ************************************************************************/
  109. #ifdef _HWSETUP_C_
  110. _HWSETUP_EXT _Bool hw_blPWMOnFlg = FALSE;
  111. _HWSETUP_EXT _Bool hw_blChrgOvrFlg = FALSE;
  112. _HWSETUP_EXT UWORD hw_uwChrgCt = 0;
  113. _HWSETUP_EXT UWORD hw_uwPWMCmpr[TIM1_DMA_NUM];
  114. _HWSETUP_EXT UWORD hw_uwADC1[ADC1_DMA_NUM];
  115. _HWSETUP_EXT UWORD hw_uwADC2[ADC2_DMA_NUM];
  116. #else
  117. _HWSETUP_EXT _Bool hw_blPWMOnFlg;
  118. _HWSETUP_EXT _Bool hw_blChrgOvrFlg;
  119. _HWSETUP_EXT UWORD hw_uwChrgCt;
  120. _HWSETUP_EXT UWORD hw_uwPWMCmpr[TIM1_DMA_NUM];
  121. _HWSETUP_EXT UWORD hw_uwADC1[ADC1_DMA_NUM];
  122. _HWSETUP_EXT UWORD hw_uwADC2[ADC2_DMA_NUM];
  123. #endif
  124. /************************************************************************
  125. RAM ALLOCATION (N/A)
  126. ************************************************************************/
  127. /************************************************************************
  128. Exported Function Call Prototypes
  129. ************************************************************************/
  130. #ifdef _HWSETUP_C_
  131. _HWSETUP_EXT void hw_voHardwareSetup1(void);
  132. _HWSETUP_EXT void hw_voHardwareSetup2(void);
  133. _HWSETUP_EXT void hw_voInitSysCtrl(void);
  134. _HWSETUP_EXT void hw_voInitInt(void);
  135. _HWSETUP_EXT void hw_voInitPeri(void);
  136. _HWSETUP_EXT void hw_voInitGPIO(void);
  137. _HWSETUP_EXT void hw_voEnInt(void);
  138. _HWSETUP_EXT void hw_voTimEn(void);
  139. _HWSETUP_EXT void hw_voInitDMA(void);
  140. _HWSETUP_EXT void hw_voInitADC(void);
  141. _HWSETUP_EXT void hw_voInitTim1(void);
  142. _HWSETUP_EXT void hw_voInitTim2(void);
  143. _HWSETUP_EXT void hw_voInitTim3(void);
  144. _HWSETUP_EXT void hw_voInitTim4(void);
  145. _HWSETUP_EXT void hw_voInitUART1(void);
  146. _HWSETUP_EXT void hw_voInitUART2(void);
  147. _HWSETUP_EXT void hw_voInitSysTick(void);
  148. _HWSETUP_EXT void hw_voInitCAN(void);
  149. _HWSETUP_EXT void hw_voPWMInit(void);
  150. _HWSETUP_EXT void hw_voPWMOn(void);
  151. _HWSETUP_EXT void hw_voPWMOff(void);
  152. _HWSETUP_EXT void hw_voCharge(void);
  153. _HWSETUP_EXT void hw_voThrPhsShrt(void);
  154. _HWSETUP_EXT void hw_voIWDGInit(UWORD prer, UWORD rlr);
  155. _HWSETUP_EXT void hw_SetIphaseSample(void);
  156. //_HWSETUP_EXT void hw_SetRdsonSample(adc_channel_select_type adc_channel);
  157. #else
  158. _HWSETUP_EXT void hw_voHardwareSetup1(void);
  159. _HWSETUP_EXT void hw_voHardwareSetup2(void);
  160. _HWSETUP_EXT void hw_voEnInt(void);
  161. _HWSETUP_EXT void hw_voTimEn(void);
  162. _HWSETUP_EXT void hw_voPWMInit(void);
  163. _HWSETUP_EXT void hw_voPWMOn(void);
  164. _HWSETUP_EXT void hw_voPWMOff(void);
  165. _HWSETUP_EXT void hw_voCharge(void);
  166. _HWSETUP_EXT void hw_voThrPhsShrt(void);
  167. _HWSETUP_EXT void hw_voIWDGInit(UWORD prer, UWORD rlr);
  168. _HWSETUP_EXT void hw_SetIphaseSample(void);
  169. //_HWSETUP_EXT void hw_SetRdsonSample(adc_channel_select_type adc_channel);
  170. #endif
  171. /************************************************************************
  172. Flag Define (N/A)
  173. ************************************************************************/
  174. /***********************************************************************/
  175. #endif
  176. /************************************************************************
  177. Copyright (c) 2018 Welling Motor Technology(Shanghai) Co. Ltd.
  178. All rights reserved.
  179. *************************************************************************
  180. End of this File (EOF)!
  181. Do not put anything after this part!
  182. ************************************************************************/