El voltaje recolectado del AD8307 siempre es incorrecto. Aunque al aumentar el voltaje de salida, el voltaje medido también aumenta, el valor de voltaje claramente no es correcto y difiere mucho del medido con un multímetro, cuyo valor sí es confiable. ¿A qué se debe esto? Si fuera un problema de impedancia, ¿sería demasiado alto un valor de 13,2 kΩ en la impedancia de salida del AD8307? He configurado el ADC con el ciclo más largo disponible y aún así no funciona correctamente.
Envía el diagrama esquemático o el diagrama de conexiones, para ver cómo lo has conectado, y también indica qué voltaje se ha capturado realmente.
Añade un seguidor de voltaje y prueba.
¡Yo tuve exactamente el mismo problema anteriormente al usar el AD8307 para la detección de potencia de radiofrecuencia! El voltaje de salida se medía estable con un multímetro, pero al leerlo con el STM32, o bien estaba muy desviado o fluctuaba. El problema era su alta impedancia de salida de 13,2 kΩ, que el ADC del STM32 no podía mantener adecuadamente. Después agregué un amplificador operacional rail-to-rail como seguidor de voltaje y funcionó perfectamente. Puedes probarlo.
El problema fundamental es la incompatibilidad de la impedancia de salida. La impedancia de salida de 13,2 kΩ del AD8307 es demasiado alta para el ADC del STM32; durante la adquisición, el condensador interno de muestreo no se carga completamente, por lo que los valores resultantes son incorrectos. La solución más sencilla consiste en colocar un seguidor de tensión entre la salida del AD8307 y el pin del ADC, utilizando amplificadores operacionales comunes como el LMV358 o el SGM8551.