mirror of https://github.com/ARMmbed/mbed-os.git
Merge pull request #6399 from jeromecoutant/PR_L4_TEMP
STM32L4 ADC Internal Channel : correct sampling timepull/6427/head
commit
04a3635eba
|
@ -105,9 +105,16 @@ uint16_t adc_read(analogin_t *obj)
|
||||||
ADC_ChannelConfTypeDef sConfig = {0};
|
ADC_ChannelConfTypeDef sConfig = {0};
|
||||||
|
|
||||||
// Configure ADC channel
|
// Configure ADC channel
|
||||||
|
sConfig.Rank = ADC_REGULAR_RANK_1;
|
||||||
|
sConfig.SamplingTime = ADC_SAMPLETIME_47CYCLES_5; // default value (1.5 us for 80MHz clock)
|
||||||
|
sConfig.SingleDiff = ADC_SINGLE_ENDED;
|
||||||
|
sConfig.OffsetNumber = ADC_OFFSET_NONE;
|
||||||
|
sConfig.Offset = 0;
|
||||||
|
|
||||||
switch (obj->channel) {
|
switch (obj->channel) {
|
||||||
case 0:
|
case 0:
|
||||||
sConfig.Channel = ADC_CHANNEL_VREFINT;
|
sConfig.Channel = ADC_CHANNEL_VREFINT;
|
||||||
|
sConfig.SamplingTime = ADC_SAMPLETIME_247CYCLES_5; // Minimum ADC sampling time when reading the internal reference voltage is 4us
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
sConfig.Channel = ADC_CHANNEL_1;
|
sConfig.Channel = ADC_CHANNEL_1;
|
||||||
|
@ -159,20 +166,16 @@ uint16_t adc_read(analogin_t *obj)
|
||||||
break;
|
break;
|
||||||
case 17:
|
case 17:
|
||||||
sConfig.Channel = ADC_CHANNEL_TEMPSENSOR;
|
sConfig.Channel = ADC_CHANNEL_TEMPSENSOR;
|
||||||
|
sConfig.SamplingTime = ADC_SAMPLETIME_247CYCLES_5; // Minimum ADC sampling time when reading the temperature is 5us
|
||||||
break;
|
break;
|
||||||
case 18:
|
case 18:
|
||||||
sConfig.Channel = ADC_CHANNEL_VBAT;
|
sConfig.Channel = ADC_CHANNEL_VBAT;
|
||||||
|
sConfig.SamplingTime = ADC_SAMPLETIME_640CYCLES_5; // Minimum ADC sampling time when reading the VBAT is 12us
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
sConfig.Rank = ADC_REGULAR_RANK_1;
|
|
||||||
sConfig.SamplingTime = ADC_SAMPLETIME_47CYCLES_5;
|
|
||||||
sConfig.SingleDiff = ADC_SINGLE_ENDED;
|
|
||||||
sConfig.OffsetNumber = ADC_OFFSET_NONE;
|
|
||||||
sConfig.Offset = 0;
|
|
||||||
|
|
||||||
HAL_ADC_ConfigChannel(&obj->handle, &sConfig);
|
HAL_ADC_ConfigChannel(&obj->handle, &sConfig);
|
||||||
|
|
||||||
HAL_ADC_Start(&obj->handle); // Start conversion
|
HAL_ADC_Start(&obj->handle); // Start conversion
|
||||||
|
|
Loading…
Reference in New Issue