123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- /************************************************************************
- 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 8.40.2
- CPU TYPE : GD32F30x
- *************************************************************************
- Copyright (c) 2022 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
- #ifndef RUN_ARCH_SIM
- #include "gd32f30x_libopt.h"
- #include "STLmain.h"
- #endif
- #include "syspar.h"
- #include "board_config.h"
- #ifdef __cplusplus
- extern "C" {
- #endif // __cplusplus
- /************************************************************************
- 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 APB1CLK_KHZ CLK_APB1_KHZ // APB1 Clock
- #define APB2CLK_KHZ CLK_APB2_KHZ // APB2 Clock
- #define TIM0CLK_KHZ CLK_TIM0_KHZ // TIM0 Clock
- #define TIM1CLK_KHZ (CLK_TIM0_KHZ /100)
- #define TIM2CLK_KHZ CLK_TIM0_KHZ
- #define TIM5CLK_KHZ (CLK_TIM0_KHZ / 2 )
- /* Timer2 for switchhall */
- #define TIM2CNTCLK_KHZ 72 // not use
- /* Time task base use TIMER5 */
- #define HW_1MS_PERIOD TIM5CLK_KHZ
- /* PWM period define */
- #define HW_PWM_PERIOD HW_INIT_PWM_PERIOD
- #define HW_HPWM_PERIOD HW_INIT_HPWM_PERIOD
- #define HW_HHPWM_PERIOD HW_INIT_HHPWM_PERIOD
- #define HW_HHHPWM_PERIOD HW_INIT_HHHPWM_PERIOD
- #define HW_PWM_PERIOD_INV (((ULONG)1 << 21) / HW_PWM_PERIOD) // Q21
- /* ADC trigger time */
- #define HW_ADC_TRI_TIME_US 10 /* unit: 0.1us */
- /* Timer0 DMA number */
- #define TIM1_DMA_NUM 6
- /* ADC DMA number */
- #define ADC0_DMA_NUM 8
- #define ADC1_DMA_NUM 1
- #define ADC2_DMA_NUM 7
- /* Interrupt ON/OFF define */
- #define ENABLE_IRQ stl_voEnableIrq()
- #define DISABLE_IRQ stl_voDisableIrq()
- /* IPM fault flag define */
- // #define MCU_BRKIN_FLG (TIMER_INTF(TIMER0) & 0x0080)
- // #define MCU_BRKIN_FLG_CLR (TIMER_INTF(TIMER0) &= ~0x0080)
- // #define MCU_POEN_FLG_EN (TIMER_CCHP(TIMER0) |= 0x00008000)
- /* SPI CS enable */
- //#define IO_SPI2_NSS_DISABLE (GPIO_OCTL(GPIOD)|= 0x0004)
- //#define IO_SPI2_NSS_ENABLE (GPIO_OCTL(GPIOD)&= ~0x0004)
- ///* I2C Write2EE enable */
- //#define IO_WRITE2EE_DISABLE (GPIO_OCTL(GPIOC)|= 0x1000)
- //#define IO_WRITE2EE_ENABLE (GPIO_OCTL(GPIOC) &= ~0x1000)
- ///* Bike brake state */
- //#define IO_BIKEBRAKE_STATE (GPIO_ISTAT(GPIOC) & 0x4000)
- //#define IO_CANDANCEDIR_STATE (GPIO_ISTAT(GPIOB) & 0x0004)
- ///* Bike light on/off */
- //#define IO_BIKELIGHT_FRONT_ON (GPIO_OCTL(GPIOC) |= 0x8000)
- //#define IO_BIKELIGHT_FRONT_OFF (GPIO_OCTL(GPIOC) &= ~0x8000)
- //#define IO_BIKELIGHT_FRONT_12V_ENABLE (GPIO_OCTL(GPIOC) |= 0x2000)
- //#define IO_BIKELIGHT_FRONT_12V_DISABLE (GPIO_OCTL(GPIOC) &= ~0x2000)
- //#define IO_BIKELIGHT_REAR_ON (GPIO_OCTL(GPIOC) |= 0x0100)
- //#define IO_BIKELIGHT_REAR_OFF (GPIO_OCTL(GPIOC) &= ~0x0100)
- //#define IO_BIKELIGHT_REAR_12V_ENABLE (GPIO_OCTL(GPIOC) |= 0x0080)
- //#define IO_BIKELIGHT_REAR_12V_DISABLE (GPIO_OCTL(GPIOC) &= ~0x0080)
- ///* Power lock on/off */
- //#define IO_POWERLOCK_ON (GPIO_OCTL(GPIOC) |= 0x0002)
- //#define IO_POWERLOCK_OFF (GPIO_OCTL(GPIOC) &= ~0x0002)
- //#define IO_POWER_STATE (GPIO_ISTAT(GPIOC) & 0x0001)
- /* TIMER1 capture value */
- //#define TIMER1_CAP_BIKESPD TIMER_CH3CV(TIMER1)
- //#define TIMER1_CAP_CANDANCE TIMER_CH2CV(TIMER1)
- /************************************************************************
- 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_uwADC0[ADC0_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_uwADC0[ADC0_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_voInitTim0(void);
- _HWSETUP_EXT void hw_voInitTim1(void);
- _HWSETUP_EXT void hw_voInitTim2(void);
- _HWSETUP_EXT void hw_voInitTim3(void);
- _HWSETUP_EXT void hw_voInitTim5(void);
- _HWSETUP_EXT void hw_voInitTim6(void);
- _HWSETUP_EXT void hw_voInitUART3(void);
- _HWSETUP_EXT void hw_voInitSPI2(void);
- _HWSETUP_EXT void hw_voInitI2C0(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_voInitEXTI(void);
- #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);
- #endif
- /************************************************************************
- Flag Define (N/A)
- ************************************************************************/
- #ifdef __cplusplus
- }
- #endif // __cplusplus
- #endif
- /************************************************************************
- Copyright (c) 2022 Welling Motor Technology(Shanghai) Co. Ltd.
- All rights reserved.
- *************************************************************************
- End of this File (EOF)!
- Do not put anything after this part!
- ************************************************************************/
|