Merge pull request #6399 from jeromecoutant/PR_L4_TEMP

STM32L4 ADC Internal Channel : correct sampling time
pull/6427/head
Cruz Monrreal 2018-03-22 11:27:30 -05:00 committed by GitHub
commit 04a3635eba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 6 deletions

View File

@ -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