Skip to content

Commit ea2000b

Browse files
committed
stm32/adc: Apply re-read errata for WB55.
Following 17898f8. Signed-off-by: Damien George <[email protected]>
1 parent 9a9e552 commit ea2000b

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

ports/stm32/adc.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -464,10 +464,13 @@ static void adc_config_channel(ADC_HandleTypeDef *adc_handle, uint32_t channel)
464464

465465
static uint32_t adc_read_channel(ADC_HandleTypeDef *adcHandle) {
466466
uint32_t value;
467-
#if defined(STM32G4)
468-
// For STM32G4 there is errata 2.7.7, "Wrong ADC result if conversion done late after
469-
// calibration or previous conversion". According to the errata, this can be avoided
470-
// by performing two consecutive ADC conversions and keeping the second result.
467+
#if defined(STM32G4) || defined(STM32WB)
468+
// For STM32G4 errata 2.7.7 / STM32WB errata 2.7.1:
469+
// "Wrong ADC result if conversion done late after calibration or previous conversion"
470+
// states an incorrect reading is returned if more than 1ms has elapsed since the last
471+
// reading or calibration. According to the errata, this can be avoided by performing
472+
// two consecutive ADC conversions and keeping the second result.
473+
// Note: On STM32WB55 @ 64Mhz each ADC read takes ~ 3us.
471474
for (uint8_t i = 0; i < 2; i++)
472475
#endif
473476
{

0 commit comments

Comments
 (0)