@@ -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,16 @@ 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+   #else 
141+   sConfig .Channel  = ADC_CHANNEL_3;  //  ADC1_IN3 = PA2 = OP1_OUT or ADC1_IN13 for internal channel
132142  sConfig .Rank  = ADC_REGULAR_RANK_2;
143+   #endif 
133144  if  (HAL_ADC_ConfigChannel (hadc1, &sConfig ) != HAL_OK)
134145  {
135146    SIMPLEFOC_DEBUG (" HAL_ADC_ConfigChannel failed!"  );
@@ -140,7 +151,11 @@ void  MX_ADC1_Init(ADC_HandleTypeDef* hadc1)
140151  /*  Configure Regular Channel (PB12, Potentiometer)
141152  */  
142153  sConfig .Channel  = ADC_CHANNEL_11;
154+   #ifdef  OPAMP_USE_INTERNAL_CHANNEL
155+   sConfig .Rank  = ADC_REGULAR_RANK_2;
156+   #else 
143157  sConfig .Rank  = ADC_REGULAR_RANK_3;
158+   #endif 
144159  sConfig .SamplingTime  = ADC_SAMPLETIME_47CYCLES_5;
145160  sConfig .SingleDiff  = ADC_SINGLE_ENDED;
146161  sConfig .OffsetNumber  = ADC_OFFSET_NONE;
@@ -153,7 +168,11 @@ void  MX_ADC1_Init(ADC_HandleTypeDef* hadc1)
153168  /* * Configure Regular Channel (PB14, Temperature)
154169  */  
155170  sConfig .Channel  = ADC_CHANNEL_5;
171+   #ifdef  OPAMP_USE_INTERNAL_CHANNEL
172+   sConfig .Rank  = ADC_REGULAR_RANK_3;
173+   #else 
156174  sConfig .Rank  = ADC_REGULAR_RANK_4;
175+   #endif 
157176  sConfig .SamplingTime  = ADC_SAMPLETIME_47CYCLES_5;
158177  sConfig .SingleDiff  = ADC_SINGLE_ENDED;
159178  sConfig .OffsetNumber  = ADC_OFFSET_NONE;
@@ -163,10 +182,14 @@ void  MX_ADC1_Init(ADC_HandleTypeDef* hadc1)
163182    SIMPLEFOC_DEBUG (" HAL_ADC_ConfigChannel failed!"  );
164183  }
165184
166-   /* * Configure Regular Channel (PB14, Temperature )
185+   /* * Configure Regular Channel (PA0, VBUS )
167186  */  
168187  sConfig .Channel  = ADC_CHANNEL_1;
188+   #ifdef  OPAMP_USE_INTERNAL_CHANNEL
189+   sConfig .Rank  = ADC_REGULAR_RANK_4;
190+   #else 
169191  sConfig .Rank  = ADC_REGULAR_RANK_5;
192+   #endif 
170193  sConfig .SamplingTime  = ADC_SAMPLETIME_47CYCLES_5;
171194  sConfig .SingleDiff  = ADC_SINGLE_ENDED;
172195  sConfig .OffsetNumber  = ADC_OFFSET_NONE;
@@ -208,7 +231,11 @@ void MX_ADC2_Init(ADC_HandleTypeDef* hadc2)
208231  hadc2->Init .EOCSelection  = ADC_EOC_SINGLE_CONV;
209232  hadc2->Init .LowPowerAutoWait  = DISABLE;
210233  hadc2->Init .ContinuousConvMode  = DISABLE;
234+   #ifdef  OPAMP_USE_INTERNAL_CHANNEL
235+   hadc2->Init .NbrOfConversion  = 2 ;
236+   #else 
211237  hadc2->Init .NbrOfConversion  = 1 ;
238+   #endif 
212239  hadc2->Init .DiscontinuousConvMode  = DISABLE;
213240  hadc2->Init .ExternalTrigConv  = ADC_EXTERNALTRIG_T1_TRGO;
214241  hadc2->Init .ExternalTrigConvEdge  = ADC_EXTERNALTRIGCONVEDGE_RISING;
@@ -221,7 +248,11 @@ void MX_ADC2_Init(ADC_HandleTypeDef* hadc2)
221248  }
222249  /* * Configure Regular Channel 
223250  */  
224-   sConfig .Channel  = ADC_CHANNEL_3;  //  ADC2_IN3 = PA6
251+   #ifdef  OPAMP_USE_INTERNAL_CHANNEL
252+   sConfig .Channel  = ADC_CHANNEL_16;  //  ADC2_IN3 = PA6 = OP2_OUT or ADC2_IN16 for internal channel
253+   #else 
254+   sConfig .Channel  = ADC_CHANNEL_3;  //  ADC2_IN3 = PA6 = OP2_OUT or ADC2_IN16 for internal channel
255+   #endif 
225256  sConfig .Rank  = ADC_REGULAR_RANK_1;
226257  sConfig .SamplingTime  = ADC_SAMPLETIME_2CYCLES_5;
227258  sConfig .SingleDiff  = ADC_SINGLE_ENDED;
@@ -231,6 +262,20 @@ void MX_ADC2_Init(ADC_HandleTypeDef* hadc2)
231262  {
232263    SIMPLEFOC_DEBUG (" HAL_ADC_ConfigChannel failed!"  );
233264  }
265+   #ifdef  OPAMP_USE_INTERNAL_CHANNEL
266+   /* * Configure Regular Channel 
267+   */  
268+   sConfig .Channel  = ADC_CHANNEL_18;     //  ADC1_IN12 = PB1 = OP3_OUT or ADC2_IN18 for internal channel
269+   sConfig .Rank  = ADC_REGULAR_RANK_2;
270+   sConfig .SamplingTime  = ADC_SAMPLETIME_2CYCLES_5;
271+   sConfig .SingleDiff  = ADC_SINGLE_ENDED;
272+   sConfig .OffsetNumber  = ADC_OFFSET_NONE;
273+   sConfig .Offset  = 0 ;
274+   if  (HAL_ADC_ConfigChannel (hadc2, &sConfig ) != HAL_OK)
275+   {
276+     SIMPLEFOC_DEBUG (" HAL_ADC_ConfigChannel failed!"  );
277+   }
278+   #endif 
234279  /*  USER CODE BEGIN ADC2_Init 2 */ 
235280
236281  /*  USER CODE END ADC2_Init 2 */ 
0 commit comments