|
|
@@ -31,7 +31,7 @@
|
|
|
|
|
|
#endif
|
|
|
|
|
|
-s16 adc_buffer[REG_CHAN_NUM];
|
|
|
+u16 adc_buffer[REG_CHAN_NUM];
|
|
|
float vref_adc = 1408.0f;
|
|
|
float vref_5v_adc = 2047.0f;
|
|
|
|
|
|
@@ -40,7 +40,7 @@ float vref_5v_adc = 2047.0f;
|
|
|
static void adc01_dma_init(void)
|
|
|
{
|
|
|
DMA_InitType DMA_InitStructure;
|
|
|
- rcu_periph_clock_enable(RCU_DMA1);
|
|
|
+ rcu_ahb_periph_clock_enable(RCU_DMA1);
|
|
|
|
|
|
DMA_DeInit(DMA1_CH1);
|
|
|
DMA_InitStructure.PeriphAddr = (uint32_t)&ADC1->DAT;
|
|
|
@@ -64,8 +64,8 @@ static void adc01_init(void) {
|
|
|
/* config ADC clock */
|
|
|
RCC_ConfigAdcHclk(RCC_ADCHCLK_DIV4);
|
|
|
|
|
|
- rcu_periph_clock_enable(RCU_ADC1);
|
|
|
- rcu_periph_clock_enable(RCU_ADC2);
|
|
|
+ rcu_ahb_periph_clock_enable(RCU_ADC1);
|
|
|
+ rcu_ahb_periph_clock_enable(RCU_ADC2);
|
|
|
|
|
|
ADC_DeInit(ADC1);
|
|
|
ADC_DeInit(ADC2);
|
|
|
@@ -82,12 +82,20 @@ static void adc01_init(void) {
|
|
|
ADC_Init(ADC2, &ADC_InitStructure);
|
|
|
|
|
|
//Config Sampling Time
|
|
|
- ADC_ConfigInjectedSequencerLength(ADC1,1);
|
|
|
+ ADC_ConfigInjectedSequencerLength(ADC1,INJ_CHAN_NUM);
|
|
|
ADC_ConfigInjectedChannel(ADC1, V_PHASE_I_CHAN, 1, ADC_INJ_SAMPLE_TIME);
|
|
|
-
|
|
|
- ADC_ConfigInjectedSequencerLength(ADC2,1);
|
|
|
+#if (INJ_CHAN_NUM == 4)
|
|
|
+ ADC_ConfigInjectedChannel(ADC1, V_PHASE_I_CHAN, 2, ADC_INJ_SAMPLE_TIME);
|
|
|
+ ADC_ConfigInjectedChannel(ADC1, V_PHASE_I_CHAN, 3, ADC_INJ_SAMPLE_TIME);
|
|
|
+ ADC_ConfigInjectedChannel(ADC1, V_PHASE_I_CHAN, 4, ADC_INJ_SAMPLE_TIME);
|
|
|
+#endif
|
|
|
+ ADC_ConfigInjectedSequencerLength(ADC2,INJ_CHAN_NUM);
|
|
|
ADC_ConfigInjectedChannel(ADC2, W_PHASE_I_CHAN, 1, ADC_INJ_SAMPLE_TIME);
|
|
|
-
|
|
|
+#if (INJ_CHAN_NUM == 4)
|
|
|
+ ADC_ConfigInjectedChannel(ADC2, W_PHASE_I_CHAN, 2, ADC_INJ_SAMPLE_TIME);
|
|
|
+ ADC_ConfigInjectedChannel(ADC2, W_PHASE_I_CHAN, 3, ADC_INJ_SAMPLE_TIME);
|
|
|
+ ADC_ConfigInjectedChannel(ADC2, W_PHASE_I_CHAN, 4, ADC_INJ_SAMPLE_TIME);
|
|
|
+#endif
|
|
|
//ADC1 and ADC2 TrigInJectConv Enable
|
|
|
ADC_EnableExternalTrigInjectedConv(ADC1,ENABLE);
|
|
|
ADC_EnableExternalTrigInjectedConv(ADC2,ENABLE);
|
|
|
@@ -98,9 +106,9 @@ static void adc01_init(void) {
|
|
|
ADC_ConfigRegularChannel(ADC1, V_VOL_ADC_CHAN, 4, ADC_REGCHAN_SAMPLE_TIME);
|
|
|
ADC_ConfigRegularChannel(ADC1, THROTTLE_5V_CHAN, 5, ADC_REGCHAN_SAMPLE_TIME);
|
|
|
ADC_ConfigRegularChannel(ADC1, ZERO_ADC_CHAN, 6, ADC_REGCHAN_SAMPLE_TIME);
|
|
|
- ADC_ConfigRegularChannel(ADC1, ADC_CH_17, 7, ADC_REGCHAN_SAMPLE_TIME);
|
|
|
+ ADC_ConfigRegularChannel(ADC1, ADC_CH_INT_VREF, 7, ADC_REGCHAN_SAMPLE_TIME);
|
|
|
ADC_ConfigRegularChannel(ADC1, DC5V_ADC_CHAN, 8, ADC_REGCHAN_SAMPLE_TIME);
|
|
|
-
|
|
|
+ ADC_EnableExternalTrigConv(ADC1, ENABLE);
|
|
|
|
|
|
ADC_ConfigRegularChannel(ADC2, MOS_TEMP_ADC_CHAN, 1, ADC_REGCHAN_SAMPLE_TIME);
|
|
|
ADC_ConfigRegularChannel(ADC2, MOTOR_TEMP_ADC_CHAN, 2, ADC_REGCHAN_SAMPLE_TIME);
|
|
|
@@ -151,89 +159,89 @@ static void adc01_init(void) {
|
|
|
|
|
|
static void adc_gpio_init(void) {
|
|
|
|
|
|
- rcu_periph_clock_enable(RCU_AF);
|
|
|
+ rcu_apb2_periph_clock_enable(RCU_AF);
|
|
|
/* configure ADC pin, current sampling -- ADC_IN1(PA1) ADC_IN12(PC2) ADC_IN13(PC3) */
|
|
|
#ifdef U_PHASE_ADC_GROUP
|
|
|
- rcu_periph_clock_enable(U_PHASE_ADC_RCU);
|
|
|
+ rcu_apb2_periph_clock_enable(U_PHASE_ADC_RCU);
|
|
|
gpio_init(U_PHASE_ADC_GROUP, U_PHASE_ADC_MODE, GPIO_OSPEED_50MHZ, U_PHASE_ADC_PIN);
|
|
|
#endif
|
|
|
#ifdef V_PHASE_ADC_GROUP
|
|
|
- rcu_periph_clock_enable(V_PHASE_ADC_RCU);
|
|
|
+ rcu_apb2_periph_clock_enable(V_PHASE_ADC_RCU);
|
|
|
gpio_init(V_PHASE_ADC_GROUP, V_PHASE_ADC_MODE, GPIO_OSPEED_50MHZ, V_PHASE_ADC_PIN);
|
|
|
#endif
|
|
|
#ifdef W_PHASE_ADC_GROUP
|
|
|
- rcu_periph_clock_enable(W_PHASE_ADC_RCU);
|
|
|
+ rcu_apb2_periph_clock_enable(W_PHASE_ADC_RCU);
|
|
|
gpio_init(W_PHASE_ADC_GROUP, W_PHASE_ADC_MODE, GPIO_OSPEED_50MHZ, W_PHASE_ADC_PIN);
|
|
|
#endif
|
|
|
|
|
|
#ifdef VBUS_V_ADC_GROUP
|
|
|
- rcu_periph_clock_enable(VBUS_V_ADC_RCU);
|
|
|
+ rcu_apb2_periph_clock_enable(VBUS_V_ADC_RCU);
|
|
|
/* 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 VBUS_I_ADC_GROUP
|
|
|
- rcu_periph_clock_enable(VBUS_I_ADC_RCU);
|
|
|
+ rcu_apb2_periph_clock_enable(VBUS_I_ADC_RCU);
|
|
|
/* configure ADC pin, bus voltage sampling -- ADC_IN0(PA0) */
|
|
|
gpio_init(VBUS_I_ADC_GROUP, VBUS_I_ADC_MODE, GPIO_OSPEED_50MHZ, VBUS_I_ADC_PIN);
|
|
|
#endif
|
|
|
|
|
|
|
|
|
#ifdef ACC_V_ADC_GROUP
|
|
|
- rcu_periph_clock_enable(ACC_V_ADC_RCU);
|
|
|
+ rcu_apb2_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);
|
|
|
+ rcu_apb2_periph_clock_enable(THROTTLE_V_ADC_RCU);
|
|
|
/* configure ADC pin, bus voltage sampling -- ADC_IN0(PA0) */
|
|
|
gpio_init(THROTTLE_V_ADC_GROUP, THROTTLE_V_ADC_MODE, GPIO_OSPEED_50MHZ, THROTTLE_V_ADC_PIN);
|
|
|
#endif
|
|
|
#ifdef THROTTLE2_V_ADC_GROUP
|
|
|
- rcu_periph_clock_enable(THROTTLE2_V_ADC_RCU);
|
|
|
+ rcu_apb2_periph_clock_enable(THROTTLE2_V_ADC_RCU);
|
|
|
gpio_init(THROTTLE2_V_ADC_GROUP, THROTTLE2_V_ADC_MODE, GPIO_OSPEED_50MHZ, THROTTLE2_V_ADC_PIN);
|
|
|
#endif
|
|
|
|
|
|
#ifdef THROTTLE_5V_ADC_GROUP
|
|
|
- rcu_periph_clock_enable(THROTTLE_5V_ADC_RCU);
|
|
|
+ rcu_apb2_periph_clock_enable(THROTTLE_5V_ADC_RCU);
|
|
|
/* configure ADC pin, bus voltage sampling -- ADC_IN0(PA0) */
|
|
|
gpio_init(THROTTLE_5V_ADC_GROUP, THROTTLE_5V_ADC_MODE, GPIO_OSPEED_50MHZ, THROTTLE_5V_ADC_PIN);
|
|
|
#endif
|
|
|
#ifdef THROTTLE2_5V_ADC_GROUP
|
|
|
- rcu_periph_clock_enable(THROTTLE2_5V_ADC_RCU);
|
|
|
+ rcu_apb2_periph_clock_enable(THROTTLE2_5V_ADC_RCU);
|
|
|
/* configure ADC pin, bus voltage sampling -- ADC_IN0(PA0) */
|
|
|
gpio_init(THROTTLE2_5V_ADC_GROUP, THROTTLE2_5V_ADC_MODE, GPIO_OSPEED_50MHZ, THROTTLE2_5V_ADC_PIN);
|
|
|
#endif
|
|
|
|
|
|
#ifdef U_VOL_ADC_GROUP
|
|
|
- rcu_periph_clock_enable(U_VOL_ADC_RCU);
|
|
|
+ rcu_apb2_periph_clock_enable(U_VOL_ADC_RCU);
|
|
|
gpio_init(U_VOL_ADC_GROUP, U_VOL_ADC_MODE, GPIO_OSPEED_50MHZ, U_VOL_ADC_PIN);
|
|
|
#endif
|
|
|
#ifdef V_VOL_ADC_GROUP
|
|
|
- rcu_periph_clock_enable(V_VOL_ADC_RCU);
|
|
|
+ rcu_apb2_periph_clock_enable(V_VOL_ADC_RCU);
|
|
|
gpio_init(V_VOL_ADC_GROUP, V_VOL_ADC_MODE, GPIO_OSPEED_50MHZ, V_VOL_ADC_PIN);
|
|
|
#endif
|
|
|
#ifdef W_VOL_ADC_GROUP
|
|
|
- rcu_periph_clock_enable(W_VOL_ADC_RCU);
|
|
|
+ rcu_apb2_periph_clock_enable(W_VOL_ADC_RCU);
|
|
|
gpio_init(W_VOL_ADC_GROUP, W_VOL_ADC_MODE, GPIO_OSPEED_50MHZ, W_VOL_ADC_PIN);
|
|
|
#endif
|
|
|
#ifdef MOS_TEMP_ADC_GROUP
|
|
|
- rcu_periph_clock_enable(MOS_TEMP_ADC_RCU);
|
|
|
+ rcu_apb2_periph_clock_enable(MOS_TEMP_ADC_RCU);
|
|
|
gpio_init(MOS_TEMP_ADC_GROUP, MOS_TEMP_ADC_MODE, GPIO_OSPEED_50MHZ, MOS_TEMP_ADC_PIN);
|
|
|
#endif
|
|
|
#ifdef MOS_TEMP1_ADC_GROUP
|
|
|
- rcu_periph_clock_enable(MOS_TEMP1_ADC_RCU);
|
|
|
+ rcu_apb2_periph_clock_enable(MOS_TEMP1_ADC_RCU);
|
|
|
gpio_init(MOS_TEMP1_ADC_GROUP, MOS_TEMP1_ADC_MODE, GPIO_OSPEED_50MHZ, MOS_TEMP1_ADC_PIN);
|
|
|
#endif
|
|
|
|
|
|
#ifdef MOTOR_TEMP_ADC_GROUP
|
|
|
- rcu_periph_clock_enable(MOTOR_TEMP_ADC_RCU);
|
|
|
+ rcu_apb2_periph_clock_enable(MOTOR_TEMP_ADC_RCU);
|
|
|
gpio_init(MOTOR_TEMP_ADC_GROUP, MOTOR_TEMP_ADC_MODE, GPIO_OSPEED_50MHZ, MOTOR_TEMP_ADC_PIN);
|
|
|
#endif
|
|
|
|
|
|
#ifdef ZERO_ADC_GROUP
|
|
|
- rcu_periph_clock_enable(ZERO_ADC_RCU);
|
|
|
+ rcu_apb2_periph_clock_enable(ZERO_ADC_RCU);
|
|
|
gpio_init(ZERO_ADC_GROUP, ZERO_ADC_MODE, GPIO_OSPEED_50MHZ, ZERO_ADC_PIN);
|
|
|
#endif
|
|
|
|