2024-12-13 04:28 PM
I'm configuring an STM32G031, using the STM32CubeMX perspective in STM32CubeIDE. I want to optimise for low power consumption. My device uses the ADC and I see the ADC has a minimum acceptable frequency, 140kHz according to the data sheet (data sheet table 57, fADC must be at least 0.14MHz).
I've configured the clock so that SYSCLK = 2MHz (HSI 16 MHz oscillator, divided by 8). The ADC clock is also shown as 2MHz. That makes sense.
But in the ADC configuration panel, the only clock options I can select are "sync divided by 1" or "async divided by 1". I expected to be able to select higher dividers, down to "async / 8" (which would be 250kHz). I can't even select "sync/async divided by 2" (which would be 1MHz). All those slower options are greyed out, and when I mouse over them there's a tooltip that says something like "prescaler does not respect fADC fmin fmax conditions" or something like that.
Is this a configuration error in CubeMX, or have I misunderstood how the minimum ADC frequency works? I couldn't find any app note that discussed minimum frequency, although there are plenty discussing maximum frequency!