Además de lo que dijo stevenvh, asegúrese de que está ejecutando el A / D correctamente dentro del procesador. No estoy familiarizado con ese procesador, pero los que he visto tienen una muestra y se mantienen en frente del A / D interno. A menudo hay uno o un pequeño número de conversores A / D reales, con un mux en frente de la muestra y se mantiene presionado para seleccionar el canal único para leer ese tiempo. La muestra y la retención tardan un tiempo finito en asentarse. Debe asegurarse de que se le haya dado suficiente tiempo después de que se cambie el mux antes de que la muestra y la retención entren en modo de espera y el A / D haga la conversión.
Otro posible error es la impedancia de la señal que impulsa el pin A / D. La hoja de datos debería tener una especificación para eso, y podría ser mucho más baja de lo que cree. Para evitar errores de compensación, generalmente no hay amplificador en el chip. La muestra y retención es solo un capacitor con un FET que lo conecta al pin de entrada en el modo de muestra. La impedancia que impulsa el pin debe estar por debajo de algún valor para obtener la precisión especificada y el tiempo de muestreo mínimo.
También verifique qué está utilizando exactamente el A / D para sus referencias de voltaje, particularmente la referencia del lado bajo en su caso. El valor predeterminado es probablemente la conexión a tierra normal del procesador. Sin embargo, también podría tener un pin de tierra analógico separado, y algunas veces se puede usar un pin de entrada analógica separado como referencia negativa. Verifique para asegurarse de que todo esté configurado como lo deseaba.
Como dijo stevenvh, 80mV es demasiado alto para cualquier error normal. Como mucho, usted esperaría un conteo o tal vez dos cuando realmente debería estar leyendo 0. Algo está definitivamente mal con su configuración. Tenga en cuenta que esto incluye la configuración del uso del A / D por parte del firmware.