/************************************************************************ Project: Welling Motor Control Paltform Filename: hwsetup.h Partner Filename: hwsetup.c Description: The header file of hwsetup.c Complier: IAR Embedded Workbench for ARM 7.80.4 CPU TYPE : STM32F30x ************************************************************************* Copyright (c) 2018 Welling Motor Technology(Shanghai) Co. Ltd. All rights reserved. ************************************************************************* ************************************************************************* Revising History (ECL of this file): ************************************************************************/ /************************************************************************ Beginning of File, do not put anything above here except notes Compiler Directives: ************************************************************************/ #ifndef HWSETUP_H #define HWSETUP_H #include "ti_msp_dl_config.h"//#include "at32f421.h"////#include "stm32f10x.h " //#include "stm32f10x_conf.h " //#include "STLmain.h" /************************************************************************ Compiler Directives (N/A) ************************************************************************/ #ifdef _HWSETUP_C_ #define _HWSETUP_EXT #else #define _HWSETUP_EXT extern #endif /************************************************************************ Definitions & Macros ************************************************************************/ /* Frequency & time setting define */ #define CORECLK_KHZ CLK_CORE_KHZ // Internal Clock #define AHBCLK_KHZ CLK_AHB_KHZ // AHB Clock #define TIM0CLK_KHZ CLK_TIM0_KHZ // TIM0 Clock #define APB1CLK_KHZ CLK_APB1_KHZ // APB1 Clock #define TIM1CLK_KHZ CLK_TIM1_KHZ // TIM1 Clock #define APB2CLK_KHZ CLK_APB2_KHZ // APB2 Clock #define TIM2CLK_KHZ CLK_APB2_KHZ // TIM1 Clock /* TIM3 CNT CLK define */ #define TIM3CNTCLK_KHZ 3600 /* 36000/10 */ /* TIME TASK BASE*/ #define HW_1MS_PERIOD TIM0CLK_KHZ / 2 /* PWM period define */ #define HW_PWM_PERIOD (TIM0CLK_KHZ * 1000 / FPWM_HZ) #define HW_HPWM_PERIOD (HW_PWM_PERIOD / 2) #define HW_HHPWM_PERIOD (HW_HPWM_PERIOD / 2) #define HW_HHHPWM_PERIOD (HW_HHPWM_PERIOD / 2) #define HW_PWM_PERIOD_INV (((ULONG)1 << 21) / HW_PWM_PERIOD) // Q21 /* PWM dead time define*/ //#define HW_DEAD_TIME_US PWM_DEAD_TIME_US //unit: 0.1us /* ADC trigger time */ #define HW_ADC_TRI_TIME_US 10 /* unit: 0.1us */ /* Timer0 DMA number */ #define TIM1_DMA_NUM 6 /* SPI0 receive DMA number */ #define SPI3_RX_DMA_NUM 15 /* SPI0 transmission DMA number */ #define SPI3_TX_DMA_NUM 15 /* ADC DMA number */ #define ADC1_DMA_NUM 6 #define ADC2_DMA_NUM 8 /* Interrupt ON/OFF define */ #define ENABLE_IRQ __enable_irq()//stl_voEnableIrq() #define DISABLE_IRQ __disable_irq() //stl_voDisableIrq() ///* ADC result register define */ //#define ADC_IA_REG ADC1->JDR1 //#define ADC_IB_REG ADC1->JDR2 //#define ADC_VDC_REG ADC1->JDR4 //#define ADC_IPM_TEMP_REG ADC1->JDR3 /* IPM fault flag define */ #define MCU_BRKIN_FLG 1//(TMR1->ists & 0x0080) #define MCU_BRKIN_FLG_CLR 1//(TMR1->ists &= ~0x0080) #define MCU_POEN_FLG_EN 1// (TMR1->brk |= 0x00008000) /* Relay control define */ #define IO_CTRL_RLY_CLZ 1//(GPIOA->ODR |= 0x1000) #define IO_CTRL_RLY_OPEN 1//(GPIOA->ODR &= ~0x1000) /* SPI3 synchronizing signal */ //#define IO_SPI3_SYNC_HIGH (GPIOA->ODR|=0x0800) //#define IO_SPI3_SYNC_LOW (GPIOA->ODR&=~0x0800) /* Test_LED0 define */ #define IO_TST_LED0_HIGH1// (GPIOF->ODR |= 0x0002) #define IO_TST_LED0_LOW 1//(GPIOF->ODR &= ~0x0002) /* SPI resolver enable */ #define IO_SPI3_NSS_DISABLE 1//(GPIOD->ODR |= 0x0004) #define IO_SPI3_NSS_ENABLE 1//(GPIOD->ODR &= ~0x0004) //#define IO_TST_LED0_TOGGLE (GPIO_TG(GPIOF)|=0x0002) /* Write2EE Enable */ #define IO_WRITE2EE_DISABLE 1//(GPIOB->ODR |= 0x0020) #define IO_WRITE2EE_ENABLE 1//(GPIOB->ODR &= ~0x0020) /* PC10 IO Test */ #define IO_PC10_TEST_ENABLE 1//(GPIOC->ODR |= 0x0400) #define IO_PC10_TEST_DISABLE 1//(GPIOC->ODR &= ~0x0400) /* PC11 IO Test */ #define IO_PC11_TEST_ENABLE 1//(GPIOC->ODR |= 0x0800) #define IO_PC11_TEST_DISABLE 1//(GPIOC->ODR &= ~0x0800) /************************************************************************ TypeDefs & Structure defines (N/A) ************************************************************************/ /************************************************************************ Constant Table *************************************************************************/ /************************************************************************ Exported Variables ************************************************************************/ #ifdef _HWSETUP_C_ _HWSETUP_EXT _Bool hw_blPWMOnFlg = FALSE; _HWSETUP_EXT _Bool hw_blChrgOvrFlg = FALSE; _HWSETUP_EXT UWORD hw_uwChrgCt = 0; _HWSETUP_EXT UWORD hw_uwPWMCmpr[TIM1_DMA_NUM]; _HWSETUP_EXT UWORD hw_uwADC1[ADC1_DMA_NUM]; _HWSETUP_EXT UWORD hw_uwADC2[ADC2_DMA_NUM]; #else _HWSETUP_EXT _Bool hw_blPWMOnFlg; _HWSETUP_EXT _Bool hw_blChrgOvrFlg; _HWSETUP_EXT UWORD hw_uwChrgCt; _HWSETUP_EXT UWORD hw_uwPWMCmpr[TIM1_DMA_NUM]; _HWSETUP_EXT UWORD hw_uwADC1[ADC1_DMA_NUM]; _HWSETUP_EXT UWORD hw_uwADC2[ADC2_DMA_NUM]; #endif /************************************************************************ RAM ALLOCATION (N/A) ************************************************************************/ /************************************************************************ Exported Function Call Prototypes ************************************************************************/ #ifdef _HWSETUP_C_ _HWSETUP_EXT void hw_voHardwareSetup1(void); _HWSETUP_EXT void hw_voHardwareSetup2(void); _HWSETUP_EXT void hw_voInitSysCtrl(void); _HWSETUP_EXT void hw_voInitInt(void); _HWSETUP_EXT void hw_voInitPeri(void); _HWSETUP_EXT void hw_voInitGPIO(void); _HWSETUP_EXT void hw_voEnInt(void); _HWSETUP_EXT void hw_voTimEn(void); _HWSETUP_EXT void hw_voInitDMA(void); _HWSETUP_EXT void hw_voInitADC(void); _HWSETUP_EXT void hw_voInitTim1(void); _HWSETUP_EXT void hw_voInitTim2(void); _HWSETUP_EXT void hw_voInitTim3(void); _HWSETUP_EXT void hw_voInitTim4(void); _HWSETUP_EXT void hw_voInitUART1(void); _HWSETUP_EXT void hw_voInitUART2(void); _HWSETUP_EXT void hw_voInitSysTick(void); _HWSETUP_EXT void hw_voInitCAN(void); _HWSETUP_EXT void hw_voPWMInit(void); _HWSETUP_EXT void hw_voPWMOn(void); _HWSETUP_EXT void hw_voPWMOff(void); _HWSETUP_EXT void hw_voCharge(void); _HWSETUP_EXT void hw_voThrPhsShrt(void); _HWSETUP_EXT void hw_voIWDGInit(UWORD prer, UWORD rlr); _HWSETUP_EXT void hw_SetIphaseSample(void); //_HWSETUP_EXT void hw_SetRdsonSample(adc_channel_select_type adc_channel); #else _HWSETUP_EXT void hw_voHardwareSetup1(void); _HWSETUP_EXT void hw_voHardwareSetup2(void); _HWSETUP_EXT void hw_voEnInt(void); _HWSETUP_EXT void hw_voTimEn(void); _HWSETUP_EXT void hw_voPWMInit(void); _HWSETUP_EXT void hw_voPWMOn(void); _HWSETUP_EXT void hw_voPWMOff(void); _HWSETUP_EXT void hw_voCharge(void); _HWSETUP_EXT void hw_voThrPhsShrt(void); _HWSETUP_EXT void hw_voIWDGInit(UWORD prer, UWORD rlr); _HWSETUP_EXT void hw_SetIphaseSample(void); //_HWSETUP_EXT void hw_SetRdsonSample(adc_channel_select_type adc_channel); #endif /************************************************************************ Flag Define (N/A) ************************************************************************/ /***********************************************************************/ #endif /************************************************************************ Copyright (c) 2018 Welling Motor Technology(Shanghai) Co. Ltd. All rights reserved. ************************************************************************* End of this File (EOF)! Do not put anything after this part! ************************************************************************/