problema MCP3425 (ADC)

0

Estoy teniendo problemas con este ADC. Aquí está la hoja de datos:

enlace

Lo conecté en la entrada de terminación única, por lo que tengo 15 bits de 0v (0x0000) a 2.048v (0x7FFF).

Según la página 8 de la hoja de datos, el código de salida es (código máximo + 1) * ((Vin + - Vin -) / 2.048)

Entonces, si mido 0.994v (Vin + - Vin-) debería obtener 15904 (decimal), pero en lugar de eso obtengo 7957. Esta regla de la "media parte" siempre es cierta.

¿Alguna idea de lo que estoy haciendo mal?

Gracias.

    
pregunta zapeitor

1 respuesta

1

Lo descubrí y, como pikafu sugirió, responderé la pregunta. Estaba leyendo mal el ADC. El código de 16 bits se lee en i2c con esta estructura: [15 ... 8] [7 ... 0] [byte de configuración]. Estaba usando este código para leerlo:

ADC = (buff[0]<<7) + buff[1]

Y obviamente, como Roger Rowland me ayudó a notar, está mal. Este es el código correcto:

ADC = (buff[0]<<8) + buff[1]
    
respondido por el zapeitor

Lea otras preguntas en las etiquetas