MCP3008 ADC, leyendo 16 bits en lugar de 10 bits

4

Estaba jugando con algunos ADC MCP3008 de Microchip con un Arduino. El patio de recreo tiene un ejemplo para el MCP3208 (que parece ser solo una versión de 12 bits del MCP3008)

Bueno, cuando probé el ejemplo, olvidé leer solo 10 bits en lugar de los ejemplos de 12 bits. Noté que la lectura era de 0-4096

En el interés de aprender, traté de hacer 13 bits y pude leer a 8192. Con 16 bits, a 65535.

¿Es peligroso hacer esto? Como en, no es preciso? Acabo de tener un trimpot barato y una tabla de pruebas. Hubo algunos rebotes notables, 500 a 16 bits y alrededor de 90 a 13 bits. La deriva fue de alrededor de 10 a 10 bits de lectura.

¿Todos los ADC son típicamente el mismo chip que simplemente se almacena en función del rendimiento?

    
pregunta Michael Styln

1 respuesta

6

No, el MCP3008 es un ADC de solo 10 bits. Eche un vistazo a cómo el microcontrolador lee sus datos:

Observe que Dout solo generará un valor de 10 bits [B9:B0] , y no hay forma de que le envíe al microcontrolador un número con más bits. Por lo tanto, lo que está viendo es muy probablemente un valor desplazado a la izquierda. Por ejemplo, si la salida del ADC fue 385 como 10 bits (que es 0110000001 en binario), si se desplaza hacia la izquierda 2 veces obtendrá 1540 (que es 011000000100 en binario). Pero realmente no has ganado ninguna información nueva, solo multiplicas el número por un factor de 4.

    
respondido por el apalopohapa

Lea otras preguntas en las etiquetas