Estoy utilizando STM32F030F4P6 MCU para un proyecto. Esta MCU no tiene pin Vref + y usa el pin VDDA para conversiones A / D, PLL, etc. Mientras realizaba el prototipo del circuito que voy a usar en mi proyecto, corté los pines VDDA y VDD junto con los condensadores de 10uF y 100nF a tierra. Le estoy dando 3.3V exactos a estos pines con una fuente de alimentación de CC.
ADC leerá el voltaje con una amplitud máxima de 16.8V. Por lo tanto, he usado un divisor de voltaje de 10k / 2k para llevar este voltaje al nivel lógico. Dado que leeré la mayoría de los valores de CC, he establecido el tiempo de muestreo al más alto posible, que es de 239,5 ciclos de reloj adc: 17,1 microsegundos.
El problema es que los valores que leo son muy diferentes a los voltajes que mido con el multímetro. Por ejemplo, ADC está leyendo ~ 2.8V cuando mido 2.87V.
Como usted sabe, estas MCU tienen Vref incorporado que puede leer a través de ADC_IN17. Cuando trato de usar esto para calibrar mi ADC, esta vez el voltaje medido es más bajo que el voltaje de lectura. Por ejemplo, el voltaje de lectura es 2.8V cuando mido 2.72V.
La resolución de ADC es de 12 bits y la tabla de precisión de ADC se muestra a continuación.