Ganancia controlada por relé para el microcontrolador

6

Estoy pensando en controlar circuitos analógicos con un microcontrolador y muchos relés pequeños (Omron G6L). Para el enrutamiento de la señal, esto está bien, pero el control de ganancia es preocupante.

Obviamente podría hacer algo como esto:

Pero esto requiere un relé para cada paso. Estoy pensando que tiene que haber una mejor manera.

¿Existe una disposición inteligente de la red de resistencias que pueda producir los divisores de voltaje que se encuentran en los circuitos de amplificación operativa de inversión y no inversión, controles de panoramización, etc.?

Más específicamente, ¿existe una red paralela y / o en serie de resistencias controladas por relé que puedan proporcionar las relaciones necesarias para controlar la ganancia en los circuitos de amplificadores operacionales (tanto de inversión como de no inversión), controles panorámicos, etc.?

Con 2 relés es 4 idealmente posible. Con 3 relés es 2 x 2 x 2 = 8 pasos. Con 8 pasos de 3dB cada uno me daría un rango de 21dB desde, por ejemplo, -9 a +12 o lo que sea. A medida que aumenta o disminuye la ganancia, el microcontrolador simplemente itera a través de una secuencia predefinida de códigos binarios.

Seguramente esto se ha estudiado antes, pero no soy un EE (solo lo hago por diversión), por lo que cualquier puntero sería muy apreciado.

    
pregunta squarewav

7 respuestas

6

Vea los multiplexores analógicos como 4051 . Estos dispositivos se utilizan comúnmente para este tipo de aplicación. En la práctica, forman una conexión analógica (y de hecho bilateral) entre una de las 'entradas' (Y0 - Y7) y la salida (Z), seleccionadas por un selector binario (A0 - A2). Reemplazaría todos sus relés (hasta ocho) y establecería la atenuación por entrada mediante un divisor resistivo. Con una tensión de alimentación de 10 V, la resistencia ON está en el orden de 100 \ $ \ Omega \ $.

La historia similar se aplica a 4052, que tiene 2 multiplexores analógicos (de) de 4 canales independientes.

Básicamente el mismo circuito que el tuyo:

simular este circuito : esquema creado usando CircuitLab

Otra posibilidad es usar un DAC y alimentar su señal de entrada a su entrada de voltaje de referencia y seleccionar la atenuación con la entrada digital. No todos los DAC son lo suficientemente rápidos para esta aplicación, pero pueden darle muchos bits de resolución.

    
respondido por el jippie
4

Ok, voy a intentar responder mi propia pregunta.

Escribí un pequeño programa Java para calcular todas las combinaciones posibles de valores de resistencia para un divisor de voltaje compuesto de resistencias conmutadas en paralelo. Este programa luego emite la secuencia binaria necesaria para recorrer las relaciones en orden creciente, las relaciones correspondientes y, por supuesto, los valores de resistencia necesarios. Puedo especificar cuántos interruptores y su orientación, las proporciones de destino, la precisión deseada, los valores de resistencia específicos que se utilizarán, etc. El resultado es una red de resistencias con un estrechamiento totalmente personalizado.

Este resultado es bastante bueno para los reductores de registros. En algunos casos, los resultados estuvieron dentro del 1% de los ratios objetivo. Hay algunos valores "mágicos" que producen ganancias útiles. Por ejemplo, si usa 2 interruptores (o 2p4t interruptor giratorio) en una configuración de amplificador operacional invertida con un divisor como:

10k || 10k
----------
10k || 3.3k

donde se cambian 10k superiores y 3,3k, esto produce ganancias de casi exactamente 0dB 0dB 6dB y 12dB.

Aquí hay un ejemplo más elaborado:

Los siguientes son valores de dB objetivo para 3 conmutadores que, por supuesto, producen un total de 8 pasos junto con los valores determinados por el programa Java:

target  computed    
-12.01  -10.91
 -6.00   -6.89
 -3.00   -3.86
  0.00   -0.89
  3.00    3.12
  6.00    6.15 
 12.00   11.70
 21.00   21.71

Puedes ver que los valores se han personalizado un poco. Fui a por un control de ganancia más fino alrededor de 0dB pero bajé el primer paso y aumenté significativamente los pasos 7 y 8. Las resistencias necesarias para obtener estas ganancias se muestran en el esquema. También simulé esto en LTSpice para confirmar que todo funciona como se anuncia.

Losresultadosnosonperfectos.Laprecisiónpromediodetodaslasrelacionesdivisoriasfuedel2.7%,peroalmenosunvalorseredujoenun15%.Afortunadamente,estostiendenaserlosvaloresfinales,yaqueesdifícilquelasproporcionesalcancen0o1.Elprimerpasofuesolode-10.91dBmientrasqueyobuscaba-12dB.

Creoqueelregistroinversotambiéndeberíaserbastantebueno,yaquepuedesejecutarlasecuenciabinariaalainversa.

Porsupuesto,estotambiénesaplicableaconfiguracionesdeamplificadoresoperacionalesnoinvertidosocualquiercosaqueuseundivisordevoltaje,incluidaslaspilasdetonosyloscontrolesdepanoramización,etc.

Entonceslarespuestaes:ciertamenteesposible.Perorequiereunpocodetrabajoparaencontrarlosvalorescorrectosderesistencia.Noheencontrado"reglas de oro" obvias.

    
respondido por el squarewav
3

El resultado final que parece estar buscando es un amplificador de ganancia programable (PGA). Ha mencionado un microcontrolador, por ejemplo, un Microchip MCP6S21 ofrece pasos de ganancia de 1, 2, 4, 5, 8, 10, 16 y 32 V / V y pueden controlarse a través de un bus SPI. La mayoría de los que he visto no ofrecen la atenuación que necesita, pero atenuar la señal (o amplificar menos) de antemano podría ser una buena opción.

Es posible que esa parte en particular no cumpla con sus requisitos exactos, pero los PGA están ampliamente disponibles y puede ser un término que nunca ha escuchado y buscado, pero a menudo se usan para resolver este problema en particular.

    
respondido por el PeterJ
2

Podrías considerar un potenciómetro motorizado. Te dará un control agradable y suave.

Puede encontrarlos en ebay y SparkFun también los ellos .

    
respondido por el Eric Gunnerson
2

Otra forma de controlar la ganancia de un OpAmp electrónicamente es con un Potenciómetro digital . De esta manera usted puede tener un control fino sobre la ganancia si lo desea. Y tiene el beneficio de una solución muy pequeña y de bajo costo.

El AD5231 es un dispositivo bastante bueno con 1024 posiciones.

    
respondido por el Rocketmagnet
1

Otra forma de hacerlo es multiplicando los DAC. Analog Devices los hace , Texas Instruments los hace , y probablemente también lo hagan otras compañías.

Aquí está la estructura interna de un MDAC de 12 bits:

SiimaginaqueIout1tambiénestáenelpotencialdetierra,laresistenciaentreVrefyGroundnodependedelaposicióndeS1aS12,porloquelacorrientequefluyeatravésdeVrefnodependedelosinterruptoresyesproporcionalaVref.peroquécorrientefluyeatravésdeAGnd,yquécorrientefluyeatravésdeIout1dependedelaposicióndelosinterruptores.CadainterruptordelaescaleraR-2Rcontrolaadóndevalamitaddelacorrientequeingresa:atravésdeIout1oAGnd.AsíqueS1eselMSB,S12eselLSB.

Entonces,sicombinamosestedispositivoconunamplificadoroperacionalenuncircuitoamplificadorinversor(quetienelaentrada"-" del amplificador operacional al potencial de tierra):

simular este circuito : esquema creado usando CircuitLab

obtenemos un atenuador controlado digitalmente. Si la resistencia de realimentación y el DAC son alternado alrededor se obtiene un ganador controlado digitalmente. Este circuito puede ser ligeramente modificado para proporcionar tanto ganancia como atenuación.

Lo que hay que recordar acerca de la MDAC es que el valor de R no es preciso (generalmente de 5 a 10 KOhm) y puede cambiar de KOhm por un IC a otro del mismo tipo, pero la RELACIÓN entre las resistencias es muy precisa . Esto hace posible crear amplificadores controlados digitalmente , filtros controlados digitalmente , etc.

    
respondido por el user25093
1

Dos problemas:

Primero, no puede obtener ganancias por encima y por debajo de 1 (positivo y negativo cuando se expresa en dB) simplemente cambiando las resistencias de realimentación diferentes. De hecho, el tipo de topología no inversora que muestra no puede tener menos de 1.

Segundo, ¿por qué no usar un amplificador de ganancia programable en primer lugar?

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas