ADC emite valores aleatorios a una entrada constante

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

ingrese la descripción de la imagen aquí

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

  1. Eliminé la señal y proporcioné un voltaje de CC fijo de 2 V al 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 desde la segunda muestra en adelante.

  3. Incluso si no proporciono ni señalo el PIN 2 (flotante), todavía genera algunos datos. Estoy proporcionando reloj y ss bajo, así que asumo que muestreará ruido si no hay señal presente. Pero la salida debe estar cerca una de la otra. Recibo todos los valores desde FFF hasta 000. No veo esa fuente de ruido en mi sistema.

¿Alguien puede sugerir alguna posible razón para este comportamiento?

¿Cómo estás pasando por alto VREF y VCC? ¿Qué referencia de voltaje (número de pieza) está utilizando para impulsar la entrada VREF? Cualquier ruido en VREF afectará directamente la medición del código.
FYI: la sección de diseño de la hoja de datos ADS7822 recomienda cerámica de 0,1 uF tanto en VCC como en VREF y, además, derivación de 1 uF-10 uF en VCC.
@MarkU Estoy usando REF3230, se supone que emite 3.0V y obtengo 2.98 - 2.99V con multímetro. He usado un 10u cerca del REF y un 0.1u cerca del ADC con la salida del REF3230 (paralelo).
Para la Vcc de ADC he usado una cerámica de 0.1u
¿Se puede usar un osciloscopio para capturar la imagen del osciloscopio de las formas de onda DCLOCK, DOUT y CS? Y si su osciloscopio tiene una configuración de visualización "persistente", este es un buen momento para usarlo: capturar muchos ciclos CS superpuestos y ver si el MSB realmente está alternando. Puede haber alguna variación de LSB, pero los MSB deben ser estables. Con +IN conectado a VREF o VCC, la salida digital siempre debe ser FFF de escala completa.

Respuestas (1)

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

  • ¿Diseñaste bien los circuitos alrededor del ADC? Es decir, los topes de desacoplamiento entre Vcc y GND y Vref y GND, pueden estar entre In+ y GND

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

  • 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 se haya puesto el bit 0 en la salida. ¿Haces eso y puedes suspenderlo para la depuración?

  • ¿Es !CS alto durante un período de tiempo suficiente? No encontré mínimo, pero puede ser, hay uno.

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

Finalmente, primero debe verificar si el ADC brinda resultados razonables, lo cual es fácil de probar con un alcance. Si todo está bien, debe 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.

Tengo un 0.1u entre Vcc GND y Vref GND, ninguno para +In. El banco de pruebas VHDL funciona bien, como la hoja de datos, por lo que creo que no hay problemas de control SPI
Bueno, creer y saber son cosas distintas. También tuve que aprender a nunca empujar en lo que solo creo.