Sfoglia il codice sorgente

update gpio and pin setup

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui 3 anni fa
parent
commit
6b32f07b07

+ 142 - 10
Applications/bsp/adc.c

@@ -7,10 +7,17 @@
 #define REG_CHAN_DMA 1
 
 #ifdef REG_CHAN_DMA
-#define REG_CHAN_NUM 7
-s16 adc_buffer[REG_CHAN_NUM] = {0, 0, 0, 0, 0, 0, 0};
+#ifndef MC100_HW_V1
+#define ADC01_NUM 7
+#define ADC2_NUM 0
+#else
+#define ADC01_NUM 5
+#define ADC2_NUM 4
+#endif
+#define REG_CHAN_NUM (ADC01_NUM + ADC2_NUM)
+s16 adc_buffer[REG_CHAN_NUM];
 
-static void adc_dma_init(void)
+static void adc01_dma_init(void)
 {
     dma_parameter_struct dma_init_struct;
     rcu_periph_clock_enable(RCU_DMA0);
@@ -20,7 +27,7 @@ static void adc_dma_init(void)
     dma_init_struct.memory_addr  = (uint32_t)adc_buffer;
     dma_init_struct.memory_inc   = DMA_MEMORY_INCREASE_ENABLE;
     dma_init_struct.memory_width = DMA_MEMORY_WIDTH_16BIT;
-    dma_init_struct.number       = REG_CHAN_NUM;
+    dma_init_struct.number       = ADC01_NUM;
     dma_init_struct.periph_addr  = (uint32_t)(&ADC_RDATA(ADC0));
     dma_init_struct.periph_inc   = DMA_PERIPH_INCREASE_DISABLE;
     dma_init_struct.periph_width = DMA_PERIPHERAL_WIDTH_16BIT;
@@ -29,12 +36,33 @@ static void adc_dma_init(void)
     dma_circulation_enable(DMA0, DMA_CH0);
     dma_memory_to_memory_disable(DMA0, DMA_CH0);
 
-    /* enable the full transfer interrupt */
-    dma_interrupt_flag_clear(DMA0, DMA_CH0, DMA_INT_FLAG_FTF);
-    dma_interrupt_enable(DMA0, DMA_CH0, DMA_INT_FTF);
-
     dma_channel_enable(DMA0, DMA_CH0);
 }
+
+#ifdef MC100_HW_V1
+static void adc2_dma_init(void)
+{
+    dma_parameter_struct dma_init_struct;
+    rcu_periph_clock_enable(RCU_DMA1);
+
+    dma_deinit(DMA1, DMA_CH4);
+    dma_init_struct.direction    = DMA_PERIPHERAL_TO_MEMORY;
+    dma_init_struct.memory_addr  = (uint32_t)(adc_buffer + ADC01_NUM);
+    dma_init_struct.memory_inc   = DMA_MEMORY_INCREASE_ENABLE;
+    dma_init_struct.memory_width = DMA_MEMORY_WIDTH_16BIT;
+    dma_init_struct.number       = ADC2_NUM;
+    dma_init_struct.periph_addr  = (uint32_t)(&ADC_RDATA(ADC2));
+    dma_init_struct.periph_inc   = DMA_PERIPH_INCREASE_DISABLE;
+    dma_init_struct.periph_width = DMA_PERIPHERAL_WIDTH_16BIT;
+    dma_init_struct.priority     = DMA_PRIORITY_ULTRA_HIGH;
+    dma_init(DMA1, DMA_CH4, &dma_init_struct);
+    dma_circulation_enable(DMA1, DMA_CH4);
+    dma_memory_to_memory_disable(DMA1, DMA_CH4);
+
+    dma_channel_enable(DMA1, DMA_CH4);
+}
+#endif
+
 #endif
 
 static void adc0_init(void){
@@ -79,7 +107,8 @@ static void adc0_init(void){
 
 #ifdef REG_CHAN_DMA
     /* configure ADC regular channel */
-    adc_channel_length_config(ADC0, ADC_REGULAR_CHANNEL, REG_CHAN_NUM);
+    adc_channel_length_config(ADC0, ADC_REGULAR_CHANNEL, ADC01_NUM);
+#ifndef MC100_HW_V1
     adc_regular_channel_config(ADC0, 0, VBUS_V_CHAN, ADC_REGCHAN_SAMPLE_TIME);
     adc_regular_channel_config(ADC0, 1, THROTTLE_CHAN, ADC_REGCHAN_SAMPLE_TIME);
 	adc_regular_channel_config(ADC0, 2, U_VOL_ADC_CHAN, ADC_REGCHAN_SAMPLE_TIME);
@@ -87,6 +116,13 @@ static void adc0_init(void){
 	adc_regular_channel_config(ADC0, 4, W_VOL_ADC_CHAN, ADC_REGCHAN_SAMPLE_TIME);
 	adc_regular_channel_config(ADC0, 5, MOS_TEMP_ADC_CHAN, ADC_REGCHAN_SAMPLE_TIME);
 	adc_regular_channel_config(ADC0, 6, MOTOR_TEMP_ADC_CHAN, ADC_REGCHAN_SAMPLE_TIME);
+#else
+	adc_regular_channel_config(ADC0, 0, MOS_TEMP_ADC_CHAN, ADC_REGCHAN_SAMPLE_TIME);
+	adc_regular_channel_config(ADC0, 1, MOS_TEMP1_ADC_CHAN, ADC_REGCHAN_SAMPLE_TIME);
+	adc_regular_channel_config(ADC0, 2, U_VOL_ADC_CHAN, ADC_REGCHAN_SAMPLE_TIME);
+	adc_regular_channel_config(ADC0, 3, V_VOL_ADC_CHAN, ADC_REGCHAN_SAMPLE_TIME);
+	adc_regular_channel_config(ADC0, 4, W_VOL_ADC_CHAN, ADC_REGCHAN_SAMPLE_TIME);
+#endif
 #endif
     /* configure ADC regular channel trigger */
     adc_external_trigger_source_config(ADC0, ADC_REGULAR_CHANNEL, ADC0_1_2_EXTTRIG_REGULAR_NONE);
@@ -148,6 +184,51 @@ static void adc1_init(void){
     adc_software_trigger_enable(ADC1, ADC_INSERTED_CHANNEL);	
 }
 
+#ifdef MC100_HW_V1
+static void adc2_init(void){
+    /* config ADC clock */
+    rcu_adc_clock_config(RCU_CKADC_CKAPB2_DIV4); //APB2 clk 120M, adc clk 30M
+
+	rcu_periph_clock_enable(RCU_ADC2);
+
+	adc_deinit(ADC2);
+	
+    adc_special_function_config(ADC2, ADC_CONTINUOUS_MODE, ENABLE);
+    adc_special_function_config(ADC2, ADC_SCAN_MODE, ENABLE);
+
+    /* configure ADC data alignment */
+    adc_data_alignment_config(ADC2, ADC_DATAALIGN_RIGHT);
+	
+	adc_oversample_mode_config(ADC2, ADC_OVERSAMPLING_ALL_CONVERT, ADC_OVERSAMPLING_SHIFT_1B, ADC_OVERSAMPLING_RATIO_MUL2);
+	adc_oversample_mode_enable(ADC2);
+
+#ifdef REG_CHAN_DMA
+    /* configure ADC regular channel */
+    adc_channel_length_config(ADC2, ADC_REGULAR_CHANNEL, ADC2_NUM);
+    adc_regular_channel_config(ADC2, 0, VBUS_V_CHAN, ADC_REGCHAN_SAMPLE_TIME);
+	adc_regular_channel_config(ADC2, 1, ACC_V_CHAN, ADC_REGCHAN_SAMPLE_TIME);
+    adc_regular_channel_config(ADC2, 2, THROTTLE_CHAN, ADC_REGCHAN_SAMPLE_TIME);
+	adc_regular_channel_config(ADC2, 3, MOTOR_TEMP_ADC_CHAN, ADC_REGCHAN_SAMPLE_TIME);
+#endif
+    /* configure ADC regular channel trigger */
+    adc_external_trigger_source_config(ADC2, ADC_REGULAR_CHANNEL, ADC0_1_2_EXTTRIG_REGULAR_NONE);
+    adc_external_trigger_config(ADC2, ADC_REGULAR_CHANNEL, ENABLE);
+#ifdef REG_CHAN_DMA
+	adc_dma_mode_enable(ADC2);
+#endif
+    /* enable ADC interface */
+    adc_enable(ADC2);
+
+	delay_ms(1);
+    /* ADC calibration and reset calibration */
+    adc_calibration_enable(ADC2);
+
+#ifdef REG_CHAN_DMA
+	adc_software_trigger_enable(ADC2, ADC_REGULAR_CHANNEL);
+#endif
+}
+#endif
+
 static void adc_gpio_init(void) {
 
 	rcu_periph_clock_enable(RCU_AF);
@@ -170,6 +251,12 @@ static void adc_gpio_init(void) {
 	/* configure ADC pin, bus voltage sampling -- ADC_IN0(PA0) */
 	gpio_init(VBUS_V_ADC_GROUP, VBUS_V_ADC_MODE, GPIO_OSPEED_50MHZ, VBUS_V_ADC_PIN);
 #endif
+#ifdef ACC_V_ADC_GROUP
+	rcu_periph_clock_enable(ACC_V_ADC_RCU);
+	/* configure ADC pin, bus voltage sampling -- ADC_IN0(PA0) */
+	gpio_init(ACC_V_ADC_GROUP, ACC_V_ADC_MODE, GPIO_OSPEED_50MHZ, ACC_V_ADC_PIN);
+#endif
+
 #ifdef THROTTLE_V_ADC_GROUP
 	rcu_periph_clock_enable(THROTTLE_V_ADC_RCU);
 	/* configure ADC pin, bus voltage sampling -- ADC_IN0(PA0) */
@@ -199,6 +286,11 @@ static void adc_gpio_init(void) {
 	rcu_periph_clock_enable(MOS_TEMP_ADC_RCU);
 	gpio_init(MOS_TEMP_ADC_CHAN, MOS_TEMP_ADC_MODE, GPIO_OSPEED_50MHZ, MOS_TEMP_ADC_PIN);
 #endif
+#ifdef MOS_TEMP1_ADC_CHAN
+	rcu_periph_clock_enable(MOS_TEMP1_ADC_RCU);
+	gpio_init(MOS_TEMP1_ADC_CHAN, MOS_TEMP1_ADC_MODE, GPIO_OSPEED_50MHZ, MOS_TEMP1_ADC_PIN);
+#endif
+
 #ifdef MOTOR_TEMP_ADC_CHAN
 	rcu_periph_clock_enable(MOTOR_TEMP_ADC_RCU);
 	gpio_init(MOTOR_TEMP_ADC_CHAN, MOTOR_TEMP_ADC_MODE, GPIO_OSPEED_50MHZ, MOTOR_TEMP_ADC_PIN);
@@ -209,19 +301,42 @@ static void adc_gpio_init(void) {
 void adc_init(void) {
 	adc_gpio_init();
 #ifdef REG_CHAN_DMA	
-	adc_dma_init();
+	adc01_dma_init();
+#ifdef MC100_HW_V1
+	adc2_dma_init();
+#endif
 #endif
 	adc0_init();
 	adc1_init();
+#ifdef MC100_HW_V1
+	adc2_init();
+#endif
 	adc_current_sample_config(0);
 }
 
 u16 adc_get_vbus(void) {
+#ifdef MC100_HW_V1
+	return adc_buffer[ADC01_NUM + 0];
+#else
 	return adc_buffer[0];
+#endif
 }
 
+u16 adc_get_acc(void) {
+#ifdef MC100_HW_V1
+	return adc_buffer[ADC01_NUM + 1];
+#else
+	return adc_get_vbus();
+#endif
+}
+
+
 u16 adc_get_throttle(void) {
+#ifdef MC100_HW_V1
+	return adc_buffer[ADC01_NUM + 2];
+#else
 	return adc_buffer[1];
+#endif
 }
 
 void adc_get_uvw_phaseV(u16 *uvw) {
@@ -231,11 +346,28 @@ void adc_get_uvw_phaseV(u16 *uvw) {
 }
 
 u16 adc_get_mos_temp(void) {
+#ifdef MC100_HW_V1
+	return adc_buffer[0];
+#else
 	return adc_buffer[5];
+#endif
 }
 
+u16 adc_get_mos_temp2(void) {
+#ifdef MC100_HW_V1
+	return adc_buffer[1];
+#else
+	return adc_get_mos_temp();
+#endif
+}
+
+
 u16 adc_get_motor_temp(void) {
+#ifdef MC100_HW_V1
+	return adc_buffer[ADC01_NUM + 3];
+#else
 	return adc_buffer[6];
+#endif
 }
 
 void adc_start_convert(void) {

+ 2 - 1
Applications/bsp/adc.h

@@ -125,9 +125,10 @@ s32 adc_sample_regular_channel(int chan, int times);
 void adc_start_convert(void);
 void adc_stop_convert(void);
 u16 adc_get_vbus(void);
+u16 adc_get_acc(void);
 u16 adc_get_throttle(void);
 void adc_get_uvw_phaseV(u16 *uvw);
 u16 adc_get_mos_temp(void);
+u16 adc_get_mos_temp2(void);
 u16 adc_get_motor_temp(void);
-
 #endif /* _ADC_H__ */

+ 54 - 13
Applications/bsp/board_mc100_v1.h

@@ -9,7 +9,7 @@
 #define CONFIG_MOS_MAX_VOL 145.0F
 #define CONFIG_MAX_DC_VOL 120.0F
 #define CONFIG_RATED_DC_VOL (96.0f)   /* 母线最大电压 V*/
-#define CONFIG_MIN_DC_VOL   (36.0f)
+#define CONFIG_MIN_DC_VOL   (20.0f)
 
 #define CONFIG_MAX_VBUS_CURRENT 200.0f
 #define CONFIG_MAX_MOT_RPM      9000.0f
@@ -18,7 +18,7 @@
 #define CONFIG_MAX_TORQUE       50.0F
 
 #define CONFIG_CURRENT_BANDWITH  1000.0f /* 电流环带宽 */
-#define CONFIG_BEEP 
+//#define CONFIG_BEEP 
 #define CONFIG_STALL_MAX_CURRENT 100.0f //最大堵转相电流电流
 #define CONFIG_STALL_MAX_TIME    3000   //ms, 超过最大堵转电流持续时间,判断堵转
 #define CONFIG_UNDER_VOL_RPM     1000
@@ -112,23 +112,44 @@
 
 
 /* 母线电压采集 */
-#define VBUS_V_CHAN 		ADC_CHANNEL_4
+#define VBUS_V_CHAN 		ADC_CHANNEL_3  //adc012
 #define VBUS_V_ADC_GROUP 	GPIOA
-#define VBUS_V_ADC_PIN 		GPIO_PIN_4
+#define VBUS_V_ADC_PIN 		GPIO_PIN_3
 #define VBUS_V_ADC_RCU 		RCU_GPIOA
 #define VBUS_V_ADC_MODE 	GPIO_MODE_AIN
-#define VBUS_VOL_CEOF (ADC_REFERENCE_VOLTAGE*41/ADC_FULL_MAX)
+#define VBUS_VOL_CEOF 		(ADC_REFERENCE_VOLTAGE*41/ADC_FULL_MAX)
+
+#define ACC_V_CHAN 		ADC_CHANNEL_2    //adc012
+#define ACC_V_ADC_GROUP 	GPIOA
+#define ACC_V_ADC_PIN 		GPIO_PIN_2
+#define ACC_V_ADC_RCU 		RCU_GPIOA
+#define ACC_V_ADC_MODE 	GPIO_MODE_AIN
+#define ACC_VOL_CEOF 		(ADC_REFERENCE_VOLTAGE*41/ADC_FULL_MAX)
+
+#define VBUS_I_CHAN 		ADC_CHANNEL_4
+#define VBUS_I_ADC_GROUP 	GPIOA
+#define VBUS_I_ADC_PIN 		GPIO_PIN_4
+#define VBUS_I_ADC_RCU 		RCU_GPIOA
+#define VBUS_I_ADC_MODE 	GPIO_MODE_AIN
+#define VBUS_I_CEOF         (0.3362f)
+
 
 /* MOS 温度采集 */
-#define MOS_TEMP_ADC_CHAN     ADC_CHANNEL_3
-#define MOS_TEMP_ADC_GROUP 	GPIOA
-#define MOS_TEMP_ADC_PIN 	GPIO_PIN_3
-#define MOS_TEMP_ADC_RCU 	RCU_GPIOA
-#define MOS_TEMP_ADC_MODE 	GPIO_MODE_AIN
+#define MOS_TEMP_ADC_CHAN    ADC_CHANNEL_14
+#define MOS_TEMP_ADC_GROUP 	 GPIOC
+#define MOS_TEMP_ADC_PIN 	 GPIO_PIN_4
+#define MOS_TEMP_ADC_RCU 	 RCU_GPIOC
+#define MOS_TEMP_ADC_MODE 	 GPIO_MODE_AIN
+
+#define MOS_TEMP1_ADC_CHAN   ADC_CHANNEL_15
+#define MOS_TEMP1_ADC_GROUP  GPIOC
+#define MOS_TEMP1_ADC_PIN 	 GPIO_PIN_5
+#define MOS_TEMP1_ADC_RCU 	 RCU_GPIOC
+#define MOS_TEMP1_ADC_MODE 	 GPIO_MODE_AIN
 #define MOS_TEMP_R(adc) ((adc)/ADC_FULL_MAX / ((1.0f - (adc)/ADC_FULL_MAX)/(10.0f*1000.0f)))
 
 /* 电机温度采集 */
-#define MOTOR_TEMP_ADC_CHAN     ADC_CHANNEL_0
+#define MOTOR_TEMP_ADC_CHAN     ADC_CHANNEL_0 //adc012
 #define MOTOR_TEMP_ADC_GROUP 	GPIOA
 #define MOTOR_TEMP_ADC_PIN 	GPIO_PIN_0
 #define MOTOR_TEMP_ADC_RCU 	RCU_GPIOA
@@ -136,10 +157,10 @@
 #define MOTOR_TEMP_R(adc) ((adc)/ADC_FULL_MAX / ((1.0f - (adc)/ADC_FULL_MAX)/2000.0f))
 
 /* 是否有母线电流采集 */
-#define NO_SAMPLE_IDC //如果硬件没有采集母线电流,定义一下
+//#define NO_SAMPLE_IDC //如果硬件没有采集母线电流,定义一下
 
 /* 转把电压采集 */
-#define THROTTLE_CHAN           ADC_CHANNEL_1 //转把信号
+#define THROTTLE_CHAN           ADC_CHANNEL_1 //转把信号 adc012
 #define THROTTLE_V_ADC_GROUP 	GPIOA
 #define THROTTLE_V_ADC_PIN 		GPIO_PIN_1
 #define THROTTLE_V_ADC_RCU 		RCU_GPIOA
@@ -176,8 +197,28 @@
 #define GPIO_BRAKE_EXIT_SRC_GROUP GPIO_PORT_SOURCE_GPIOB
 #define GPIO_BRAKE_EXIT_SRC_PIN GPIO_PIN_SOURCE_3
 
+/* 前刹 */
+#define GPIO_BRAKE1_IN_GROUP 	GPIOD
+#define GPIO_BRAKE1_IN_PIN 	GPIO_PIN_2
+#define GPIO_BRAKE1_IN_RCU 	RCU_GPIOD
+#define GPIO_BRAKE1_IN_MODE 	GPIO_MODE_IN_FLOATING
+#define GPIO_BRAKE1_IRQ  EXTI2_IRQn
+#define GPIO_BRAKE1_EXTI EXTI_2
+#define GPIO_BRAKE1_EXIT_SRC_GROUP GPIO_PORT_SOURCE_GPIOD
+#define GPIO_BRAKE1_EXIT_SRC_PIN GPIO_PIN_SOURCE_2
 #define GPIO_BREAK_MODE GPIO_LOW_BRK_MODE      
 
+/* 锁电机线,  使用查询模式 */
+#define GPIO_MLOCK_IN_GROUP GPIOC
+#define GPIO_MLOCK_IN_PIN GPIO_PIN_13
+#define GPIO_MLOCK_IN_RCU RCU_GPIOC
+#define GPIO_MLOCK_IN_MODE 	GPIO_MODE_IN_FLOATING
+
+/* 触发U相检测 */
+#define GPIO_UDEC_OUT_GROUP 	GPIOB
+#define GPIO_UDEC_OUT_PIN 	GPIO_PIN_9
+#define GPIO_UDEC_OUT_RCU 	RCU_GPIOB
+#define GPIO_UDEC_OUT_MODE 	GPIO_MODE_OUT_PP
 
 /* 是否用编码器 */
 #define USE_ENCODER_ABI

+ 7 - 0
Applications/bsp/board_yuanqu.h

@@ -178,6 +178,13 @@
 
 #define GPIO_BREAK_MODE GPIO_LOW_BRK_MODE      
 
+/* 触发U相检测 */
+#define GPIO_UDEC_OUT_GROUP 	GPIOA
+#define GPIO_UDEC_OUT_PIN 	GPIO_PIN_14
+#define GPIO_UDEC_OUT_RCU 	RCU_GPIOA
+#define GPIO_UDEC_OUT_MODE 	GPIO_MODE_OUT_PP
+#define GPIO_UDEC_OUT_REMAP_DISABLE  GPIO_SWJ_DISABLE_REMAP
+#define GPIO_UDEC_OUT_REMAP_ENABLE  GPIO_SWJ_SWDPENABLE_REMAP
 
 /* 是否用编码器 */
 #define USE_ENCODER_ABI

+ 0 - 1
Applications/bsp/can.c

@@ -222,7 +222,6 @@ void shark_can0_reset(void){
 void shark_can0_deinit(void){
 	can_deinit(CAN0);
 	rcu_periph_clock_disable(RCU_CAN0);
-	gpio_init(GPIOB, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_2MHZ, GPIO_PIN_9);  
 }
 
 void shark_can0_init(void){

+ 11 - 5
Applications/bsp/gpio.c

@@ -69,14 +69,20 @@ void mc_brk_gpio_init(void) {
 }
 
 void gpio_phase_u_detect(bool enable) {
+#ifdef GPIO_UDEC_OUT_GROUP
 	if (enable) {
-		gpio_init(GPIOA, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_14);
-		gpio_pin_remap_config(GPIO_SWJ_DISABLE_REMAP, ENABLE);
-		gpio_bit_write(GPIOA, GPIO_PIN_14, SET);
+		gpio_init(GPIO_UDEC_OUT_GROUP, GPIO_UDEC_OUT_MODE, GPIO_OSPEED_50MHZ, GPIO_UDEC_OUT_PIN);
+	#ifdef GPIO_UDEC_OUT_REMAP_DISABLE
+		gpio_pin_remap_config(GPIO_UDEC_OUT_REMAP_DISABLE, ENABLE);
+	#endif
+		gpio_bit_write(GPIO_UDEC_OUT_GROUP, GPIO_UDEC_OUT_PIN, SET);
 	}else {
-		gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_14);
-		gpio_pin_remap_config(GPIO_SWJ_SWDPENABLE_REMAP, ENABLE);
+		gpio_init(GPIO_UDEC_OUT_GROUP, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_UDEC_OUT_PIN);
+	#ifdef GPIO_UDEC_OUT_REMAP_ENABLE
+		gpio_pin_remap_config(GPIO_UDEC_OUT_REMAP_ENABLE, ENABLE);
+	#endif
 	}
+#endif
 }
 
 bool mc_get_gpio_brake(void) {

+ 1 - 1
Applications/foc/limit.c

@@ -16,7 +16,7 @@ static limter_t mos_temp_lim[] = { //mos过温限流,限制相电流
 	{.enter_pointer = 120, .exit_pointer = 20, .limit_value = 0},
 };  
 static limter_t vol_under_lim[] = { //欠压限流,限制母线
-	{.enter_pointer = 40, .exit_pointer = 48, .limit_value = 10},
+	{.enter_pointer = 20, .exit_pointer = 20, .limit_value = 10},
 };
 
 void limter_set_under_voltage(s16 und_vol) {

+ 4 - 4
Applications/foc/samples.c

@@ -137,21 +137,21 @@ void sample_uvw_phase(void) {
 }
 
 void sample_motor_temp(void) {
-#ifdef MOTOR_BLUESHARK_OLD
+//#ifdef MOTOR_BLUESHARK_OLD
 	u16 adc = adc_get_motor_temp();
 	u16 r = MOTOR_TEMP_R(adc);
 	motor_temp.value = ntc_get_motor_temp(r);
 	LowPass_Filter(motor_temp.filted_value, motor_temp.value, motor_temp.lowpass);
-#endif
+//#endif
 }
 
 void sample_mos_temp(void) {
-#ifdef MOTOR_BLUESHARK_OLD
+//#ifdef MOTOR_BLUESHARK_OLD
 	u16 adc = adc_get_mos_temp();
 	u16 r = MOS_TEMP_R(adc);
 	mos_temp.value = ntc_get_mos_temp(r);
 	LowPass_Filter(mos_temp.filted_value, mos_temp.value, mos_temp.lowpass);
-#endif
+//#endif
 }
 
 

+ 4 - 1
Librarys/CMSIS/GD/GD32F30x/Source/system_gd32f30x.c

@@ -50,8 +50,11 @@
 //#define __SYSTEM_CLOCK_48M_PLL_IRC8M            (uint32_t)(48000000)
 //#define __SYSTEM_CLOCK_72M_PLL_IRC8M            (uint32_t)(72000000)
 //#define __SYSTEM_CLOCK_108M_PLL_IRC8M           (uint32_t)(108000000)
+#ifdef MC100_HW_V1
+#define __SYSTEM_CLOCK_120M_PLL_HXTAL           (uint32_t)(120000000)
+#else
 #define __SYSTEM_CLOCK_120M_PLL_IRC8M           (uint32_t)(120000000)
-
+#endif
 /* use HXTAL(XD series CK_HXTAL = 8M, CL series CK_HXTAL = 25M) */
 //#define __SYSTEM_CLOCK_HXTAL                    (uint32_t)(__HXTAL)
 //#define __SYSTEM_CLOCK_48M_PLL_HXTAL            (uint32_t)(48000000)

+ 31 - 6
Project/MC100.uvoptx

@@ -77,7 +77,7 @@
         <tvExpOptDlg>0</tvExpOptDlg>
         <IsCurrentTarget>1</IsCurrentTarget>
       </OPTFL>
-      <CpuCode>0</CpuCode>
+      <CpuCode>255</CpuCode>
       <DebugOpt>
         <uSim>0</uSim>
         <uTrg>1</uTrg>
@@ -103,7 +103,7 @@
         <bEvRecOn>1</bEvRecOn>
         <bSchkAxf>0</bSchkAxf>
         <bTchkAxf>0</bTchkAxf>
-        <nTsel>0</nTsel>
+        <nTsel>4</nTsel>
         <sDll></sDll>
         <sDllPa></sDllPa>
         <sDlgDll></sDlgDll>
@@ -114,9 +114,34 @@
         <tDlgDll></tDlgDll>
         <tDlgPa></tDlgPa>
         <tIfile></tIfile>
-        <pMon>BIN\UL2CM3.DLL</pMon>
+        <pMon>Segger\JL2CM3.dll</pMon>
       </DebugOpt>
       <TargetDriverDllRegistry>
+        <SetRegEntry>
+          <Number>0</Number>
+          <Key>ARMRTXEVENTFLAGS</Key>
+          <Name>-L70 -Z18 -C0 -M0 -T1</Name>
+        </SetRegEntry>
+        <SetRegEntry>
+          <Number>0</Number>
+          <Key>DLGTARM</Key>
+          <Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)</Name>
+        </SetRegEntry>
+        <SetRegEntry>
+          <Number>0</Number>
+          <Key>ARMDBGFLAGS</Key>
+          <Name></Name>
+        </SetRegEntry>
+        <SetRegEntry>
+          <Number>0</Number>
+          <Key>DLGUARM</Key>
+          <Name>?</Name>
+        </SetRegEntry>
+        <SetRegEntry>
+          <Number>0</Number>
+          <Key>JL2CM3</Key>
+          <Name>-U81480416 -O78 -S0 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO7 -FD20000000 -FC1000 -FN1 -FF0GD32F30x_HD.FLM -FS08000000 -FL010000 -FP0($$Device:GD32F303RC$Flash\GD32F30x_HD.FLM)</Name>
+        </SetRegEntry>
         <SetRegEntry>
           <Number>0</Number>
           <Key>UL2CM3</Key>
@@ -130,12 +155,12 @@
       <DebugFlag>
         <trace>0</trace>
         <periodic>0</periodic>
-        <aLwin>0</aLwin>
+        <aLwin>1</aLwin>
         <aCover>0</aCover>
         <aSer1>0</aSer1>
         <aSer2>0</aSer2>
         <aPa>0</aPa>
-        <viewmode>0</viewmode>
+        <viewmode>1</viewmode>
         <vrSel>0</vrSel>
         <aSym>0</aSym>
         <aTbox>0</aTbox>
@@ -1035,7 +1060,7 @@
 
   <Group>
     <GroupName>StartUp</GroupName>
-    <tvExp>0</tvExp>
+    <tvExp>1</tvExp>
     <tvExpOptDlg>0</tvExpOptDlg>
     <cbSel>0</cbSel>
     <RteFlg>0</RteFlg>