ADC genera valores aleatorios para entrada constante

3

Estoy usando ADC ( ADS7822 ) de TI y tengo un comportamiento extraño con ella . El siguiente diagrama explica las entradas y conexiones de voltaje.

Estaba leyendo valores extraños con esta configuración.

  1. Eliminé la señal y proporcioné un voltaje de CC fijo de 2V a PIN 2 (+ In). Supongo que obtendré algún valor por el cual el MSB estará casi cerca uno del otro en cada muestra. Estoy comparando 400 muestras a la vez. Pero recibo salidas dinámicas del ADC que tiene todos los valores posibles.

  2. La primera muestra siempre es cero (sorprendente). Siempre obtengo valores muestreados para 2V a partir de la segunda muestra.

  3. Incluso si no proporciono y no hago una señal al PIN 2 (flotante), sigue generando algunos datos. Proporciono reloj y ss bajo, así que asumo que tomará una muestra de ruido si no hay una señal presente. Pero la salida debe estar cerca una de la otra. Recibo todos los valores de FFF a 000. No veo tal fuente de ruido en mi sistema.

¿Puede alguien sugerir alguna posible razón para este comportamiento?

    
pregunta dDebug

1 respuesta

3

Es difícil darte una respuesta, porque no hay un error obvio. Como mis ideas exceden el límite de los comentarios, lo escribo como respuesta.

  • ¿Diseñó los circuitos alrededor del pozo ADC? Es decir. los límites de desacoplamiento entre Vcc y GND y Vref y GND, pueden estar entre In + y GND

  • Parece que tienes un alcance. Debe inspeccionar el DOUT mientras dispara en el borde descendente de! CS. Entonces deberías poder ver la respuesta de 24 bits que consiste en un 0 seguido del valor, MSB (11) primero. Después del bit 0, comienza a emitir los bits 1 ... 11 nuevamente. Por lo tanto, el flujo de bits es simétrico, y los bits en el centro deberían voltearse debido al ruido, mientras que el externo no debería.

  • La hoja de datos dice que un ciclo mínimo toma 16 ciclos de reloj, mientras que la salida tiene una longitud de 24 bits. Aunque la hoja de datos no lo menciona, parece que puede detener la salida e iniciar una nueva conversión después de que el bit 0 se haya colocado en la salida. ¿Hace eso y puede suspenderlo para la depuración?

  • ¿Está alto! CS por un período de tiempo suficiente? No encontré ningún mínimo, pero puede ser, hay uno.

  • La frecuencia de 3.125MHz es aproximadamente la máxima que puede manejar el ADC. ¿Puede reducirlo (hasta 10 kHz) para comprobar si causa problemas? También verifique si la forma de onda está en buen estado en la entrada de su microcontrolador / FPGA.

Finalmente, primero debe verificar si el ADC da resultados razonables, lo cual es fácil de probar con un alcance. Si todo está bien, debería pensar en el código del microcontrolador / FPGA. Como el ADC es bastante simple, dudo que dé una salida de 0 la primera vez. Es más probable que tengas un error de firmware.

    
respondido por el sweber

Lea otras preguntas en las etiquetas