|
|
@@ -5,25 +5,12 @@
|
|
|
#include "math/fast_math.h"
|
|
|
|
|
|
|
|
|
-#ifndef CONFIG_BOARD_MCXXX
|
|
|
-#define ADC01_NUM 7
|
|
|
-#define ADC2_NUM 0
|
|
|
-
|
|
|
-#define VBUS_V_BUFF_IDX 0
|
|
|
-#define THROTTLE_BUFF_IDX 1
|
|
|
-#define U_VOL_BUFF_IDX 2
|
|
|
-#define V_VOL_BUFF_IDX 3
|
|
|
-#define W_VOL_BUFF_IDX 4
|
|
|
-#define MOS_TEMP_BUFF_IDX 5
|
|
|
-#define MOTOR_TEMP_BUFF_IDX 6
|
|
|
-#define REG_CHAN_NUM (ADC01_NUM + ADC2_NUM)
|
|
|
-#define ADC_DUAL_MODE ADC_DAUL_INSERTED_PARALLEL
|
|
|
-#elif (CONFIG_HW_VERSION==2)
|
|
|
+#if (CONFIG_MC105_HW_VERSION==2)
|
|
|
#define ADC01_NUM (8)
|
|
|
#define ADC2_NUM 4
|
|
|
|
|
|
#define MOS_TEMP_BUFF_IDX 0
|
|
|
-#define VREF5v_BUFF_IDX 1
|
|
|
+#define VREF5v_BUFF_IDX 1 //需要跳线修改mos的第二路温感采集模拟5v
|
|
|
#define VBUS_I_BUFF_IDX 2
|
|
|
#define U_VOL_BUFF_IDX 3
|
|
|
#define V_VOL_BUFF_IDX 4
|
|
|
@@ -36,7 +23,7 @@
|
|
|
#define MOTOR_TEMP_BUFF_IDX 11
|
|
|
#define REG_CHAN_NUM (ADC01_NUM + ADC2_NUM)
|
|
|
#define ADC_DUAL_MODE ADC_DAUL_INSERTED_PARALLEL
|
|
|
-#elif (CONFIG_HW_VERSION==3)
|
|
|
+#elif (CONFIG_MC105_HW_VERSION==3)
|
|
|
#define ADC01_NUM (9)
|
|
|
|
|
|
#define MOS_TEMP_BUFF_IDX 0
|
|
|
@@ -76,7 +63,7 @@ float vref_5v_adc = 2047.0f;
|
|
|
|
|
|
#define VREF_ADC_DATA 1509.0F //1498, 1.21/3.3*4095
|
|
|
|
|
|
-#if (CONFIG_HW_VERSION==3)
|
|
|
+#if (CONFIG_MC105_HW_VERSION==3)
|
|
|
static void adc01_dma_init(void)
|
|
|
{
|
|
|
dma_parameter_struct dma_init_struct;
|
|
|
@@ -122,7 +109,7 @@ static void adc01_dma_init(void)
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
-#if (CONFIG_HW_VERSION==3)
|
|
|
+#if (CONFIG_MC105_HW_VERSION==3)
|
|
|
static void adc01_init(void) {
|
|
|
/* config ADC clock */
|
|
|
rcu_adc_clock_config(RCU_CKADC_CKAPB2_DIV4); //APB2 clk 120M, adc clk 30M
|
|
|
@@ -174,28 +161,19 @@ static void adc01_init(void) {
|
|
|
|
|
|
/* configure ADC inserted channel length */
|
|
|
adc_channel_length_config(ADC0, ADC_INSERTED_CHANNEL, INJ_CHAN_NUM);
|
|
|
-#if 1
|
|
|
adc_inserted_channel_config(ADC0, 0, V_PHASE_I_CHAN, ADC_INSERT_SAMPLE_TIME);
|
|
|
#if (INJ_CHAN_NUM==4)
|
|
|
adc_inserted_channel_config(ADC0, 1, W_PHASE_I_CHAN, ADC_INSERT_SAMPLE_TIME);
|
|
|
adc_inserted_channel_config(ADC0, 2, V_PHASE_I_CHAN, ADC_INSERT_SAMPLE_TIME);
|
|
|
adc_inserted_channel_config(ADC0, 3, W_PHASE_I_CHAN, ADC_INSERT_SAMPLE_TIME);
|
|
|
#endif
|
|
|
-#else
|
|
|
- adc_update_insert_sample_time(ADC0, V_PHASE_I_CHAN, ADC_INSERT_SAMPLE_TIME);
|
|
|
- adc_update_insert_sample_time(ADC0, W_PHASE_I_CHAN, ADC_INSERT_SAMPLE_TIME);
|
|
|
-#endif
|
|
|
+
|
|
|
adc_channel_length_config(ADC1, ADC_INSERTED_CHANNEL, INJ_CHAN_NUM);
|
|
|
-#if 1
|
|
|
adc_inserted_channel_config(ADC1, 0, W_PHASE_I_CHAN, ADC_INSERT_SAMPLE_TIME);
|
|
|
#if (INJ_CHAN_NUM==4)
|
|
|
adc_inserted_channel_config(ADC1, 1, V_PHASE_I_CHAN, ADC_INSERT_SAMPLE_TIME);
|
|
|
adc_inserted_channel_config(ADC1, 2, W_PHASE_I_CHAN, ADC_INSERT_SAMPLE_TIME);
|
|
|
adc_inserted_channel_config(ADC1, 3, V_PHASE_I_CHAN, ADC_INSERT_SAMPLE_TIME);
|
|
|
-#endif
|
|
|
-#else
|
|
|
- adc_update_insert_sample_time(ADC1, V_PHASE_I_CHAN, ADC_INSERT_SAMPLE_TIME);
|
|
|
- adc_update_insert_sample_time(ADC1, W_PHASE_I_CHAN, ADC_INSERT_SAMPLE_TIME);
|
|
|
#endif
|
|
|
adc_mode_config(ADC_DUAL_MODE);
|
|
|
|
|
|
@@ -277,7 +255,7 @@ 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);
|
|
|
-#elif (CONFIG_HW_VERSION==2)
|
|
|
+#elif (CONFIG_MC105_HW_VERSION==2)
|
|
|
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, VBUS_I_CHAN, ADC_REGCHAN_SAMPLE_TIME);
|
|
|
@@ -447,7 +425,7 @@ static void adc_gpio_init(void) {
|
|
|
void adc_init(void) {
|
|
|
adc_gpio_init();
|
|
|
adc01_dma_init();
|
|
|
-#if (CONFIG_HW_VERSION==3)
|
|
|
+#if (CONFIG_MC105_HW_VERSION==3)
|
|
|
adc01_init();
|
|
|
#else
|
|
|
adc0_init();
|
|
|
@@ -513,14 +491,14 @@ u16 adc_get_ibus(void) {
|
|
|
}
|
|
|
|
|
|
u16 adc_get_throttle(void) {
|
|
|
-#if CONFIG_HW_VERSION==3
|
|
|
- if (gpio_board_id() == BOARD_105_VERSION_3) { //v3 和 V4 adc 通道交换了一下
|
|
|
+#if CONFIG_MC105_HW_VERSION==3
|
|
|
+ if (gpio_board_id() == CONFIG_MC105_VER3_ID2) { //v3 和 V4 adc 通道交换了一下
|
|
|
return adc_buffer[THROTTLE_BUFF_IDX] * VREF_3V3_COMPESTION();
|
|
|
}else {
|
|
|
return adc_buffer[MOTOR_TEMP_BUFF_IDX] * VREF_3V3_COMPESTION();
|
|
|
}
|
|
|
#else
|
|
|
- return adc_buffer[THROTTLE_BUFF_IDX]
|
|
|
+ return adc_buffer[THROTTLE_BUFF_IDX] * VREF_3V3_COMPESTION();
|
|
|
#endif
|
|
|
}
|
|
|
|
|
|
@@ -559,8 +537,8 @@ u16 adc_get_mos_temp(void) {
|
|
|
}
|
|
|
|
|
|
u16 adc_get_motor_temp(void) {
|
|
|
-#if CONFIG_HW_VERSION==3
|
|
|
- if (gpio_board_id() == BOARD_105_VERSION_3) {
|
|
|
+#if CONFIG_MC105_HW_VERSION==3
|
|
|
+ if (gpio_board_id() == CONFIG_MC105_VER3_ID2) {
|
|
|
return adc_buffer[MOTOR_TEMP_BUFF_IDX];
|
|
|
}else {
|
|
|
return adc_buffer[THROTTLE_BUFF_IDX];
|