Muestras extrañas de SAR ADC

Estoy jugando con algunos convertidores A/D SAR (aproximación sucesiva). Hice un circuito de prueba donde tengo un DAC de 16 bits de Texas Instruments (basado en R2R) y un ADC SAR de 16 bits de Analog Devices. Usando un microcontrolador y algo de programación SPI, puedo generar un voltaje en el DAC y muestrearlo con el ADC. El objetivo de esta prueba es verificar que los datos resultantes son una línea recta, con algo de ruido.

Dejo que el DAC se asiente durante al menos 10 veces el tiempo de ajuste requerido y la salida se filtra en paso bajo para eliminar el ruido. Aunque pude tomar muestras bastante rápido, necesito algo de tiempo para transferir datos del microcontrolador a la PC, por lo que solo tomo aproximadamente 2 o 3 muestras por segundo. Me aseguro de que la conversión de ADC haya terminado antes de fijar un nuevo voltaje en el DAC.

Después de aproximadamente 4000 muestras espaciadas regularmente en todo el rango de escala completa, el resultado se puede trazar con la palabra DAC de 16 bits (X) y el ADC (Y). El resultado se ve extraño y si hago zoom, hay algún tipo de "ruido" periódico (mira el gráfico a continuación).

Muestras de SAR ADC

Definitivamente puedo decir que no hay tales problemas de señal cuando mido con mi alcance. Hay algo de ruido, pero eso es como 10 mV de amplitud. Así que algo está mal aquí. También medí mi referencia de voltaje y las líneas de suministro y tampoco hay problemas de ruido aquí. Aceptaría el resultado si los "picos" fueran como 1-10 LSB y aleatorios, pero esto es en una escala mucho mayor y algo periódica. La periodicidad podría ser un signo de muestreo de muy baja resolución de una señal de cambio lineal, pero este no es el caso. Creo que esto es demasiado grande para ser ruido de cuantificación. La siguiente gráfica muestra la versión de gama completa. El problema es tan grande que también se puede ver claramente en esta trama. El DAC y el ADC no utilizan el mismo voltaje de escala completa, lo que explica las áreas planas en ambos extremos de la escala.

Gama completa de muestras

Tenga en cuenta que la gráfica muestra quizás alrededor de 50-100 muestras con solo unas pocas muestras por segundo, por lo que estamos hablando de un muestreo muy lento de un voltaje de CC que solo cambia después de que se realiza la conversión de ADC. La referencia de voltaje se filtra y también la señal de entrada al ADC.

También he hecho lo mismo con un ADC SAR de 18 bits. Mismos problemas.

Parece que tienes un bit atascado en algún lugar de la ruta digital. Dado que obtiene los mismos resultados con dos ADC diferentes, verifique cuidadosamente las conexiones al DAC.
Lo que dijo @DaveTweed. Las protuberancias tienen un aspecto sospechosamente binario. En particular, verifique cuidadosamente su modo SPI y el tiempo para el DAC. Si, por ejemplo, está cronometrando el borde equivocado, podría 'casi' funcionar.
Gracias. Estoy empezando a pensar que no es el circuito analógico, sino más bien un problema de SPI o algo más digital. La escala Y debe ir de -32768 a 32767. O en este caso, donde el complemento de dos se convierte en binario compensado, 0 a 65535. No es así en mis diagramas. Así que algo está definitivamente mal.
Solo para verificar lo obvio, ¿tiene el ADC toda la capacitancia correcta, un buen plano de tierra, sin líneas digitales debajo del chip y fuentes de alimentación analógicas y digitales separadas?

Respuestas (1)

Bien, resolví el problema. En mi configuración SPI para el microcontrolador, cambié tanto la polaridad del reloj como la fase del reloj y resolvió el problema. Ahora tengo curvas muy limpias y suaves.

Ahora tiene sentido. Las palabras de 16 bits leídas del ADC no eran correctas y contenían tanto información de la palabra anterior como de la actual. Eso explica tanto la periodicidad como la rareza de las tramas.

Afortunadamente, tanto el DAC como el ADC parecen funcionar bien con el nuevo reloj y la polaridad de fase, a pesar de ser de diferentes fabricantes :-)