datos ADC .. ¿Es algo sospechoso?

5

Gente,

He estado jugando con STM32F2 (probablemente el ARM Cortex M3 más avanzado del mercado). Esta no es una pregunta específica del procesador, sin embargo.

Tengo una configuración donde muestro 0V por varios pines ADC. Leo y vuelco los valores. Cuando examino los valores, espero ver todos los ceros, en su lugar veo principalmente ceros, pero un montón de valores de hasta 100. (es decir, se trata de un ADC de 12 bits con 4096 niveles, por lo que 100 es aproximadamente = 3.3 / 4096 * 100 = 80mV)

Sé por un hecho, mi 0 voltios es realmente 0V (es decir, tierra). Entonces, 100 de 4096 ... ¿Es esto esperado? Nunca he jugado con otros chips habilitados para ADC, por lo que no puedo calcular si se espera o no tanto error. ¿Alguna idea?

    
pregunta Frank

2 respuestas

3

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.

    
respondido por el Olin Lathrop
7

¿Cómo está conectada su entrada ADC a tierra? El 80mV puede provenir del ruido de los componentes anteriores. Si el ADC está conectado directamente a tierra, no debería obtener estas lecturas altas. (Pero incluso entonces tampoco necesariamente todos los ceros. Es posible un 1 o 2 ocasional).

  1. Verifique si su poder está desacoplado decentemente: encapsula 100nF cerca de los pines de alimentación.
  2. Verifique si el voltaje de referencia del ADC está desacoplado decentemente. No solo se conecte a \ $ V_ {DD} \ $, sino que se desacople a través de un filtro RC, o, mejor aún, un filtro LC.
  3. Asegúrese de tener una tierra firme: preferiblemente un plano de tierra, en cualquier caso, trazas cortas y anchas.
  4. Mantenga la traza de la entrada del ADC corta y la impedancia baja. Una traza de alta impedancia funcionará como una antena y captará todo tipo de ruido. (Probablemente no sea un gran problema: los ADC generalmente tienen una entrada de baja impedancia). No utilice un cable de prueba de bucle para conectar la entrada ADC a tierra.

Si está seguro de haber prestado atención a estos puntos, la lectura nunca debe ser de 80 mV. ¿Podrías publicar una foto de la pizarra?

    
respondido por el stevenvh

Lea otras preguntas en las etiquetas