@@ -94,38 +94,33 @@ static void _analogin_init_direct(analogin_t *obj, const PinMap *pinmap)
94
94
95
95
#if defined(ADC1 )
96
96
if ((ADCName )obj -> handle .Instance == ADC_1 ) {
97
- LL_AHB2_GRP1_EnableClock (LL_AHB2_GRP1_PERIPH_ADC12 ); // TODO - disable clock with deinit?
98
- __HAL_RCC_ADC12_CONFIG (RCC_ADC12CLKSOURCE_SYSCLK ); // TODO - which clock?
99
- // SYSCLK or PLL?
97
+ LL_AHB2_GRP1_EnableClock (LL_AHB2_GRP1_PERIPH_ADC12 );
98
+ __HAL_RCC_ADC12_CONFIG (RCC_ADC12CLKSOURCE_SYSCLK );
100
99
}
101
100
#endif
102
101
#if defined(ADC2 )
103
102
if ((ADCName )obj -> handle .Instance == ADC_2 ) {
104
- LL_AHB2_GRP1_EnableClock (LL_AHB2_GRP1_PERIPH_ADC12 ); // TODO - disable clock with deinit?
105
- __HAL_RCC_ADC12_CONFIG (RCC_ADC12CLKSOURCE_SYSCLK ); // TODO - which clock?
106
- // SYSCLK or PLL?
103
+ LL_AHB2_GRP1_EnableClock (LL_AHB2_GRP1_PERIPH_ADC12 );
104
+ __HAL_RCC_ADC12_CONFIG (RCC_ADC12CLKSOURCE_SYSCLK );
107
105
}
108
106
#endif
109
107
#if defined(ADC3 )
110
108
if ((ADCName )obj -> handle .Instance == ADC_3 ) {
111
- LL_AHB2_GRP1_EnableClock (LL_AHB2_GRP1_PERIPH_ADC345 ); // TODO - disable clock with deinit?
112
- __HAL_RCC_ADC345_CONFIG (RCC_ADC345CLKSOURCE_SYSCLK ); // TODO - which clock?
113
- // SYSCLK or PLL?
109
+ LL_AHB2_GRP1_EnableClock (LL_AHB2_GRP1_PERIPH_ADC345 );
110
+ __HAL_RCC_ADC345_CONFIG (RCC_ADC345CLKSOURCE_SYSCLK );
114
111
}
115
112
#endif
116
113
#if defined(ADC4 )
117
114
if ((ADCName )obj -> handle .Instance == ADC_4 ) {
118
- LL_AHB2_GRP1_EnableClock (LL_AHB2_GRP1_PERIPH_ADC345 ); // TODO - disable clock with deinit?
119
- __HAL_RCC_ADC345_CONFIG (RCC_ADC345CLKSOURCE_SYSCLK ); // TODO - which clock?
120
- // SYSCLK or PLL?
115
+ LL_AHB2_GRP1_EnableClock (LL_AHB2_GRP1_PERIPH_ADC345 );
116
+ __HAL_RCC_ADC345_CONFIG (RCC_ADC345CLKSOURCE_SYSCLK );
121
117
}
122
118
#endif
123
119
124
120
#if defined(ADC5 )
125
121
if ((ADCName )obj -> handle .Instance == ADC_5 ) {
126
- LL_AHB2_GRP1_EnableClock (LL_AHB2_GRP1_PERIPH_ADC345 ); // TODO - disable clock with deinit?
127
- __HAL_RCC_ADC345_CONFIG (RCC_ADC345CLKSOURCE_SYSCLK ); // TODO - which clock?
128
- // SYSCLK or PLL?
122
+ LL_AHB2_GRP1_EnableClock (LL_AHB2_GRP1_PERIPH_ADC345 );
123
+ __HAL_RCC_ADC345_CONFIG (RCC_ADC345CLKSOURCE_SYSCLK );
129
124
}
130
125
131
126
#endif
@@ -220,12 +215,27 @@ uint16_t adc_read(analogin_t *obj)
220
215
break ;
221
216
case 16 :
222
217
sConfig .Channel = ADC_CHANNEL_16 ;
218
+
219
+ if ((ADCName )obj -> handle .Instance == ADC_1 ) {
220
+ sConfig .Channel = ADC_CHANNEL_TEMPSENSOR_ADC1 ;
221
+ sConfig .SamplingTime = ADC_SAMPLETIME_640CYCLES_5 ;
222
+ }
223
223
break ;
224
224
case 17 :
225
225
sConfig .Channel = ADC_CHANNEL_17 ;
226
+
227
+ if ((ADCName )obj -> handle .Instance == ADC_1 ) {
228
+ sConfig .Channel = ADC_CHANNEL_VBAT ;
229
+ sConfig .SamplingTime = ADC_SAMPLETIME_640CYCLES_5 ;
230
+ }
226
231
break ;
227
232
case 18 :
228
233
sConfig .Channel = ADC_CHANNEL_18 ;
234
+
235
+ if ((ADCName )obj -> handle .Instance == ADC_1 ) {
236
+ sConfig .Channel = ADC_CHANNEL_VREFINT ;
237
+ sConfig .SamplingTime = ADC_SAMPLETIME_640CYCLES_5 ;
238
+ }
229
239
break ;
230
240
default :
231
241
return 0 ;
@@ -246,7 +256,9 @@ uint16_t adc_read(analogin_t *obj)
246
256
} else {
247
257
debug ("HAL_ADC_PollForConversion issue\n" );
248
258
}
259
+
249
260
LL_ADC_SetCommonPathInternalCh (__LL_ADC_COMMON_INSTANCE ((& obj -> handle )-> Instance ), LL_ADC_PATH_INTERNAL_NONE );
261
+
250
262
if (HAL_ADC_Stop (& obj -> handle ) != HAL_OK ) {
251
263
debug ("HAL_ADC_Stop issue\n" );;
252
264
}
0 commit comments