@@ -95,7 +95,11 @@ void  MX_ADC1_Init(ADC_HandleTypeDef* hadc1)
9595  hadc1->Init .EOCSelection  = ADC_EOC_SINGLE_CONV;
9696  hadc1->Init .LowPowerAutoWait  = DISABLE;
9797  hadc1->Init .ContinuousConvMode  = DISABLE;
98+   #ifdef  OPAMP_USE_INTERNAL_CHANNEL
99+   hadc1->Init .NbrOfConversion  = 4 ;
100+   #else 
98101  hadc1->Init .NbrOfConversion  = 5 ;
102+   #endif 
99103  hadc1->Init .DiscontinuousConvMode  = DISABLE;
100104  hadc1->Init .ExternalTrigConv  = ADC_EXTERNALTRIG_T1_TRGO;
101105  hadc1->Init .ExternalTrigConvEdge  = ADC_EXTERNALTRIGCONVEDGE_RISING;
@@ -114,9 +118,10 @@ void  MX_ADC1_Init(ADC_HandleTypeDef* hadc1)
114118  {
115119    SIMPLEFOC_DEBUG (" HAL_ADCEx_MultiModeConfigChannel failed!"  );
116120  }
121+   #ifndef  OPAMP_USE_INTERNAL_CHANNEL
117122  /* * Configure Regular Channel 
118123  */  
119-   sConfig .Channel  = ADC_CHANNEL_12;     //  ADC1_IN12 = PB1 = OP3_OUT
124+   sConfig .Channel  = ADC_CHANNEL_12;     //  ADC1_IN12 = PB1 = OP3_OUT or ADC2_IN18 for internal channel 
120125  sConfig .Rank  = ADC_REGULAR_RANK_1;
121126  sConfig .SamplingTime  = ADC_SAMPLETIME_2CYCLES_5;
122127  sConfig .SingleDiff  = ADC_SINGLE_ENDED;
@@ -126,10 +131,20 @@ void  MX_ADC1_Init(ADC_HandleTypeDef* hadc1)
126131  {
127132    SIMPLEFOC_DEBUG (" HAL_ADC_ConfigChannel failed!"  );
128133  }
134+   #endif 
129135  /* * Configure Regular Channel 
130136  */  
131-   sConfig .Channel  = ADC_CHANNEL_3;  //  ADC1_IN3 = PA2 = OP1_OUT
137+   #ifdef  OPAMP_USE_INTERNAL_CHANNEL
138+   sConfig .Channel  = ADC_CHANNEL_13;  //  ADC1_IN3 = PA2 = OP1_OUT or ADC1_IN13 for internal channel
139+   sConfig .Rank  = ADC_REGULAR_RANK_1;
140+   sConfig .SamplingTime  = ADC_SAMPLETIME_2CYCLES_5;
141+   sConfig .SingleDiff  = ADC_SINGLE_ENDED;
142+   sConfig .OffsetNumber  = ADC_OFFSET_NONE;
143+   sConfig .Offset  = 0 ;
144+   #else 
145+   sConfig .Channel  = ADC_CHANNEL_3;  //  ADC1_IN3 = PA2 = OP1_OUT or ADC1_IN13 for internal channel
132146  sConfig .Rank  = ADC_REGULAR_RANK_2;
147+   #endif 
133148  if  (HAL_ADC_ConfigChannel (hadc1, &sConfig ) != HAL_OK)
134149  {
135150    SIMPLEFOC_DEBUG (" HAL_ADC_ConfigChannel failed!"  );
@@ -140,7 +155,11 @@ void  MX_ADC1_Init(ADC_HandleTypeDef* hadc1)
140155  /*  Configure Regular Channel (PB12, Potentiometer)
141156  */  
142157  sConfig .Channel  = ADC_CHANNEL_11;
158+   #ifdef  OPAMP_USE_INTERNAL_CHANNEL
159+   sConfig .Rank  = ADC_REGULAR_RANK_2;
160+   #else 
143161  sConfig .Rank  = ADC_REGULAR_RANK_3;
162+   #endif 
144163  sConfig .SamplingTime  = ADC_SAMPLETIME_47CYCLES_5;
145164  sConfig .SingleDiff  = ADC_SINGLE_ENDED;
146165  sConfig .OffsetNumber  = ADC_OFFSET_NONE;
@@ -153,7 +172,11 @@ void  MX_ADC1_Init(ADC_HandleTypeDef* hadc1)
153172  /* * Configure Regular Channel (PB14, Temperature)
154173  */  
155174  sConfig .Channel  = ADC_CHANNEL_5;
175+   #ifdef  OPAMP_USE_INTERNAL_CHANNEL
176+   sConfig .Rank  = ADC_REGULAR_RANK_3;
177+   #else 
156178  sConfig .Rank  = ADC_REGULAR_RANK_4;
179+   #endif 
157180  sConfig .SamplingTime  = ADC_SAMPLETIME_47CYCLES_5;
158181  sConfig .SingleDiff  = ADC_SINGLE_ENDED;
159182  sConfig .OffsetNumber  = ADC_OFFSET_NONE;
@@ -163,10 +186,14 @@ void  MX_ADC1_Init(ADC_HandleTypeDef* hadc1)
163186    SIMPLEFOC_DEBUG (" HAL_ADC_ConfigChannel failed!"  );
164187  }
165188
166-   /* * Configure Regular Channel (PB14, Temperature )
189+   /* * Configure Regular Channel (PA0, VBUS )
167190  */  
168191  sConfig .Channel  = ADC_CHANNEL_1;
192+   #ifdef  OPAMP_USE_INTERNAL_CHANNEL
193+   sConfig .Rank  = ADC_REGULAR_RANK_4;
194+   #else 
169195  sConfig .Rank  = ADC_REGULAR_RANK_5;
196+   #endif 
170197  sConfig .SamplingTime  = ADC_SAMPLETIME_47CYCLES_5;
171198  sConfig .SingleDiff  = ADC_SINGLE_ENDED;
172199  sConfig .OffsetNumber  = ADC_OFFSET_NONE;
@@ -208,7 +235,11 @@ void MX_ADC2_Init(ADC_HandleTypeDef* hadc2)
208235  hadc2->Init .EOCSelection  = ADC_EOC_SINGLE_CONV;
209236  hadc2->Init .LowPowerAutoWait  = DISABLE;
210237  hadc2->Init .ContinuousConvMode  = DISABLE;
238+   #ifdef  OPAMP_USE_INTERNAL_CHANNEL
239+   hadc2->Init .NbrOfConversion  = 2 ;
240+   #else 
211241  hadc2->Init .NbrOfConversion  = 1 ;
242+   #endif 
212243  hadc2->Init .DiscontinuousConvMode  = DISABLE;
213244  hadc2->Init .ExternalTrigConv  = ADC_EXTERNALTRIG_T1_TRGO;
214245  hadc2->Init .ExternalTrigConvEdge  = ADC_EXTERNALTRIGCONVEDGE_RISING;
@@ -221,7 +252,11 @@ void MX_ADC2_Init(ADC_HandleTypeDef* hadc2)
221252  }
222253  /* * Configure Regular Channel 
223254  */  
224-   sConfig .Channel  = ADC_CHANNEL_3;  //  ADC2_IN3 = PA6
255+   #ifdef  OPAMP_USE_INTERNAL_CHANNEL
256+   sConfig .Channel  = ADC_CHANNEL_16;  //  ADC2_IN3 = PA6 = OP2_OUT or ADC2_IN16 for internal channel
257+   #else 
258+   sConfig .Channel  = ADC_CHANNEL_3;  //  ADC2_IN3 = PA6 = OP2_OUT or ADC2_IN16 for internal channel
259+   #endif 
225260  sConfig .Rank  = ADC_REGULAR_RANK_1;
226261  sConfig .SamplingTime  = ADC_SAMPLETIME_2CYCLES_5;
227262  sConfig .SingleDiff  = ADC_SINGLE_ENDED;
@@ -231,6 +266,20 @@ void MX_ADC2_Init(ADC_HandleTypeDef* hadc2)
231266  {
232267    SIMPLEFOC_DEBUG (" HAL_ADC_ConfigChannel failed!"  );
233268  }
269+   #ifdef  OPAMP_USE_INTERNAL_CHANNEL
270+   /* * Configure Regular Channel 
271+   */  
272+   sConfig .Channel  = ADC_CHANNEL_18;     //  ADC1_IN12 = PB1 = OP3_OUT or ADC2_IN18 for internal channel
273+   sConfig .Rank  = ADC_REGULAR_RANK_2;
274+   sConfig .SamplingTime  = ADC_SAMPLETIME_2CYCLES_5;
275+   sConfig .SingleDiff  = ADC_SINGLE_ENDED;
276+   sConfig .OffsetNumber  = ADC_OFFSET_NONE;
277+   sConfig .Offset  = 0 ;
278+   if  (HAL_ADC_ConfigChannel (hadc2, &sConfig ) != HAL_OK)
279+   {
280+     SIMPLEFOC_DEBUG (" HAL_ADC_ConfigChannel failed!"  );
281+   }
282+   #endif 
234283  /*  USER CODE BEGIN ADC2_Init 2 */ 
235284
236285  /*  USER CODE END ADC2_Init 2 */ 
@@ -331,7 +380,7 @@ void HAL_OPAMP_MspDeInit(OPAMP_HandleTypeDef* hopamp)
331380    PA2     ------> OPAMP1_VOUT 
332381    PA3     ------> OPAMP1_VINM  
333382    */  
334-     HAL_GPIO_DeInit (GPIOA, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3);
383+     HAL_GPIO_DeInit (GPIOA, GPIO_PIN_1|( GPIO_PIN_2 * OPAMP_USE_INTERNAL_CHANNEL) |GPIO_PIN_3);
335384
336385  /*  USER CODE BEGIN OPAMP1_MspDeInit 1 */ 
337386
@@ -348,7 +397,7 @@ void HAL_OPAMP_MspDeInit(OPAMP_HandleTypeDef* hopamp)
348397    PA6     ------> OPAMP2_VOUT 
349398    PA7     ------> OPAMP2_VINP  
350399    */  
351-     HAL_GPIO_DeInit (GPIOA, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
400+     HAL_GPIO_DeInit (GPIOA, GPIO_PIN_5|( GPIO_PIN_6 * OPAMP_USE_INTERNAL_CHANNEL) |GPIO_PIN_7);
352401
353402  /*  USER CODE BEGIN OPAMP2_MspDeInit 1 */ 
354403
@@ -365,7 +414,7 @@ void HAL_OPAMP_MspDeInit(OPAMP_HandleTypeDef* hopamp)
365414    PB1     ------> OPAMP3_VOUT 
366415    PB2     ------> OPAMP3_VINM  
367416    */  
368-     HAL_GPIO_DeInit (GPIOB, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2);
417+     HAL_GPIO_DeInit (GPIOB, GPIO_PIN_0|( GPIO_PIN_1 * OPAMP_USE_INTERNAL_CHANNEL) |GPIO_PIN_2);
369418
370419  /*  USER CODE BEGIN OPAMP3_MspDeInit 1 */ 
371420
0 commit comments