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.
Estaba leyendo valores extraños con esta configuración.
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.
La primera muestra siempre es cero (sorprendente). Siempre obtengo valores muestreados para 2V desde la segunda muestra en adelante.
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?
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 0
seguido 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.
MarkU
MarkU
dDepurar
dDepurar
MarkU