STM32 ADC readings from AD8307 output voltage are inaccurate, but measurements of the STM32 board's own output voltage are accurate

The voltage collected from the AD8307 is always incorrect. Although increasing the output voltage leads to a higher measured voltage, the readings are clearly inaccurate and differ significantly from those measured by a multimeter, which are trustworthy. What could be the reason? Could it be related to impedance? Is the AD8307’s output impedance of 13.2kΩ too high? I’ve already set the ADC to use the maximum sampling period, but it still doesn’t work.

Send the schematic/wiring diagram so I can see how you connected it, and also let me know what voltage was actually measured.

Try adding a voltage follower.

I fell into the exact same pitfall when using the AD8307 for RF power detection before! The multimeter showed a stable output voltage, but when reading with the STM32, it was either way off or fluctuating—turns out its 13.2k output impedance is too high for the STM32’s ADC input to handle. Later, I added a rail-to-rail op-amp as a voltage follower, and it immediately became accurate. You can try that.

1 Like

The core issue is output impedance mismatch. The 13.2kΩ output impedance of the AD8307 is too high for the STM32’s ADC, causing the internal sampling capacitor to not fully charge during sampling, resulting in incorrect readings. The simplest solution is to add a voltage follower between the AD8307 output and the ADC pin, using general-purpose op-amps such as LMV358 or SGM8551.

1 Like