Resistores en SPI [cerrado]

0

Necesito leer varias resistencias variables (máx 5 Mega Ohm) a través de la interfaz SPI en la MCU. ¿Alguien me puede ayudar a encontrar el SPI IC correcto y utilizable? Consideré el MCP41xxx pero dice que el potenciómetro externo más grande puede ser de 100K.

    
pregunta user40542

4 respuestas

1

Hay una gran cantidad de convertidores de analógico a digital SPI que pueden hacer esto. Muchos son dispositivos de canales múltiples con 2, 4, 6 y 8 convertidores en un chip. Simplemente conecte el potenciómetro entre Vref y 0v con el limpiador a la entrada del ADC y debería estar en funcionamiento.

    
respondido por el Andy aka
1

Este es un ejemplo de un circuito de acondicionamiento de señal simple que proporciona una ecuación de resistencia a la resistencia no lineal. C1 debe ser un tipo de película de baja fuga.

simular este circuito : esquema creado usando CircuitLab

Puedes calcular la resistencia \ $ R_B \ $ desde

\ $ R_B \ $ = \ $ \ frac {C_t R_A} {2 ^ n - C_t} \ $ donde \ $ C_t \ $ es el recuento de un ADC de n bits.

Si \ $ C_t \ $ se aproxima a \ $ 2 ^ n \ $ demasiado cerca, debe determinar que está sobrepasado y evitar el cálculo para evitar un error de división por cero, y dado que la resolución es tan baja que no sirve para nada en ese punto.

Digamos que tienes un ADC de 12 bits y \ $ R_A \ $ es 1M ohm.

Midiendo 5M, el conteo es 3413 (1 conteo es aproximadamente 9K = 0.18%) Midiendo 1M, el conteo es 2048 (1 conteo es aproximadamente 1K = 0.1%) Midiendo 200K, el conteo es 683 (1 conteo es aproximadamente 0.35K = 0.18%)

La resolución está en un máximo cuando \ $ R_A \ $ (que elige) es igual a RB (que mide) y empeora en cualquier dirección.

Puede obtener una relación lineal (y una resolución constante en ohmios) utilizando una fuente de corriente constante (por ejemplo, colocando otra referencia de voltaje en la parte superior de la salida de U1 y alimentando el voltaje de referencia de arranque a RA, pero luego hay dos referencias que nunca concuerdan entre sí, por lo que aumentan los errores. El circuito que he mostrado tiene un conteo que depende (idealmente) de la resistencia de referencia \ $ R_A \ $.

    
respondido por el Spehro Pefhany
0

Probablemente no encontrará un ADC que pueda hacer esto directamente, ya que requerirán una impedancia de conducción mucho menor. Creo que lo que tendrá que hacer es hacer un divisor de voltaje usando las resistencias variables y una resistencia fija precisa y usarlo para dividir el voltaje de referencia del ADC. Tendrá que seguir eso con un búfer de ganancia unitaria que tenga una alta impedancia de entrada ... no debería ser demasiado difícil encontrar un amplificador operacional utilizable.

La selección de la resistencia fija para el divisor de voltaje puede ser complicada. Desea maximizar el cambio de voltaje para el cambio esperado en la resistencia, pero también desea mantener el rango de operación un poco alejado de la tierra y Vref.

    
respondido por el Joe Hass
0

No sabemos qué tipo de MCU está utilizando, ni por qué no quiere usar las entradas analógicas de la MCU. Sin embargo, suponiendo que está utilizando Arduino (ATMega MCU) y no desea dedicar muchas entradas analógicas a la lectura de un montón de potes ... así que desea que un chip periférico conectado a SPI haga el trabajo.

Si ha desarrollado cierta experiencia en su MCU particular, puede considerar simplemente tomar otro MCU de ese tipo y programarlo como un chip periférico externo, comunicándose con su MCU "principal" por SPI. Esta no es necesariamente una opción ganadora para cada situación, pero tener la capacidad para hacerlo es muy útil ... y se aplica a una variedad de tareas de E / S.

    
respondido por el gwideman

Lea otras preguntas en las etiquetas