Multiplicación analógica analógica, parte de una CPU híbrida (por diversión)

10

Versión corta: ¿Cómo hago un multiplicador analógico que tome dos entradas analógicas de CC?

Versión larga:


Hice un comentario recomendando videos de Ben Eaters para otra pregunta, mientras lo hacía, terminé viéndome algunos (otra vez) y pensando " hmmm ... me pregunto si sería más fácil hacer algunas partes puramente analógicas ".

El bus podría ser solo un cable donde los diferentes niveles de voltaje se traducirían a bits con un ADC.

Solo jugando un poco llegué hasta aquí, que teóricamente puede calcular los números de Fibonacci:

ingrese la descripción de la imagen aquí
Figura 1, pequeña demostración de computadora híbrida que calcula los primeros números de Fibonacci

Enlace al simulador.

En el gif de arriba salgo del rango de voltaje, así que es fácil ver los números de Fibonacci, en realidad solo usaría el 250 mV = binario 1 (el LSB en los "valores establecidos") y luego lo dejaría propagarse a través del DRAM que contiene 4 bits por condensador.

La parte importante a tener en cuenta en el gif es la salida del amplificador operacional a la derecha del texto "a + b", que muestra los números de Fibonacci.

Entre cada operación, cuantificaría la respuesta usando un ADC seguido de un DAC. Entonces, si leyera 1.1V, entonces el DAC lo convertiría en 1.0 V que luego se almacenaría en la DRAM. Y luego, una vez cada reloj X, toda la DRAM tendría que pasar por el cuantificador para asegurarse de que el condensador no se aleje flotando .

La ALU solo puede hacer +, - y promedio. Estaba pensando en hacer la multiplicación y me detuve. He hecho y visto multiplicadores basados ​​en diodos antes, pero no quiero usarlos porque los diodos tienen que coincidir. Prefiero usar resistencias que puedo recortar con un potenciómetro. De todos modos, se me ocurrió un multiplicador híbrido, mitad analógico, mitad digital.

Así que hice un primero con resistencias idénticas en todas partes.

ingrese la descripción de la imagen aquí
Figura 2, ingenuo multiplicador entre números digitales y valores analógicos. El valor digital se compensa con 1.

Lo que luego convertí en esto con pesos binarios:

ingrese la descripción de la imagen aquí
Figura 3, multiplicador ingenuo entre números digitales binarios ponderados y valores analógicos. El valor digital se compensa con 1.

Esto me recordó a las escaleras R2 / R, pero no pude hacer que funcionen con el amplificador operacional.

Sin embargo, pensé en cómo funcionaban las escaleras R2 / R, y recordé que su salida se multiplica por su fuente de voltaje. Así que finalmente se me ocurrió este diseño:

ingrese la descripción de la imagen aquí
Figura 4, multiplicador basado en R2 / R entre números digitales binarios ponderados y valores analógicos

Me gusta, sin embargo, el único problema es que el bus es analógico, solo un cable. Entonces, si me veo obligado a usar la solución en la figura 4 anterior, entonces me veo obligado a usar otro ADC en el área de multiplicación de la CPU híbrida. No puedo reutilizar el que está en el área del cuantificador.

Hora de la pregunta:

¿Cómo debo hacer un multiplicador que tome dos entradas analógicas?

  • Yo no quiero la solución que se basa en 3 diodos que y 4 amplificadores operacionales porque no se puede diodos de equipamiento. Creo que si no coinciden, darán una respuesta que está desactivada en más de 250 mV. No he probado esto en el mundo real.
  • He probado el multiplicador basado en MOS en el enlace literalmente una pulgada por encima de esta palabra, pero no sé si soy tonto. No puedo hacer que funcione en el simulador. Vea el gif a continuación para ver la falla en la implementación de MOS. O haga clic en este enlace para la simulación.
  • Yo no quiero tirar un microcontrolador en el problema.
  • Yo no quiero usar un motor que gira y utiliza algunas travesuras.
  • mi-tRC
  • 4 424 4=0.25
  • Una vez realizada la multiplicación, se llevará al cuantificador para asegurarse de que el valor esté lo más cerca posible de un valor binario. Entonces pequeños errores están bien.

Aquí está el gif que muestra mi falla al intentar hacer el MOS:

ingrese la descripción de la imagen aquí
Figura 5, copié el esquema del enlace wiki anterior, pero no funciona en el simulador.

Si hubiera funcionado, entonces debería haber visto el valor 1 V en algún lugar mientras cambiaba el voltaje de la referencia de 5 V a -5 V.

Harry Svensson
fuente
1
La primera vez que vi un multiplicador analógico, estaba usando un conjunto de colas largas: analoglib.net/wordpress/wp-content/uploads/2013/10/image5.png
Oldfart
2
Cómo funciona la célula Gilbert hasta DC? Creo que se usa para mezclar RF
Vladimir Cravero
1
@VladimirCravero Una celda Gilbert es en esencia un multiplicador: piénselo, si multiplica dos señales, una en f1 y otra en f2, obtendrá una salida en f1-f2 y f1 + f2, que es lo que hace un mezclador. También se usan para amplificadores de ganancia variable por esta razón: una señal será constante (la configuración de ganancia) y la segunda será lo que desea amplificar.
Joren Vaes

Respuestas:

5

Si desea construir un multiplicador analógico que esté un poco fuera de lo común, considere lo que sucede cuando alimenta una señal analógica a través de un interruptor analógico, pero controle el interruptor analógico con PWM a una frecuencia alta (significativamente por encima de nyquist para hacer vida más fácil).

Si el PWM tiene un espacio de marca del 50%, la señal analógica de banda base se atenúa a la mitad. Claramente, necesita usar un filtro de recuperación para eliminar los artefactos de conmutación. Pero con esta técnica puede modular la amplitud de una señal analógica variando el ciclo de trabajo PWM:

ingrese la descripción de la imagen aquí

También puede convertirlo en un multiplicador de 4 cuadrantes. Una entrada analógica controla un modulador de ancho de pulso. La otra entrada analógica está conmutada.

Solo un pensamiento en caso de que esté interesado.

Más detalles aquí

Andy alias
fuente
Este es un enfoque muy interesante!
Joren Vaes
1
Hmm, usando PWM donde la amplitud es un voltaje, y el ciclo de trabajo es el otro voltaje relativo , y luego se filtra LP. Eso en realidad no es una mala idea.
Harry Svensson
1
Se utiliza en algunas radios como moduladores y en LVDT como demodulación de posición. También apliqué uno como demodulador I y Q en un detector de metales sensible.
Andy aka
4

Estas cosas existen: los dispositivos analógicos (¿solían?) Tienen algunos CI multiplicadores que puedes (¿podrías?) Comprar. También tienen esta excelente nota que definitivamente sugiero leer.

VOUT(t)=Vyonorte,1(t)Vyonorte,2(t)Vyonorte,1Vyonorte,2

Joren Vaes
fuente
1
Todavía puedes obtener esos multiplicadores analógicos. Creo que digikey incluso tiene una categoría completa de productos para ellos.
Hogar
2
Sin embargo, una celda Gilbert depende de manera crítica de la correspondencia de transistores (que es relativamente fácil cuando los transistores son parte de un solo dado). El OP rechazó el uso de un circuito que depende de la coincidencia de los transistores, por lo que no estoy seguro de que sea una buena respuesta.
WhatRoughBeast
1
AD633 es un multiplicador de 4 cuadrantes que emite (X1-X2) (Y1-Y2) / 10V + Z. No es particularmente barato.
Spehro Pefhany
3

Solo pongo esto aquí como una respuesta viable para futuros lectores.


Después de leer la respuesta de Joren, me di cuenta de que muchos multiplicadores analógicos dependen de componentes coincidentes. Entonces pensé para mí mismo, ¿por qué no simplemente reutilizar componentes para que el mismo componente se use en todas partes? De esa manera, automáticamente emparejaré todo.

Así que busqué el típico multiplicador basado en diodos y vi que los ánodos de todos los diodos siempre están conectados a la entrada (-) del amplificador operacional. Lo mismo ocurre con un pin de la resistencia de 1 kΩ.

ingrese la descripción de la imagen aquí

Enlace a simulación.

En la imagen de arriba, se calcula la multiplicación 2.25 × 3 que resulta en 6.75. La misma multiplicación se hace en la ... monstruosidad de abajo.

El "Valor para uno" es la referencia de voltaje para uno. Entonces, si es 0.1 V y V1 = V2 = 1 voltio. Entonces la respuesta será 10 V, que se traduce en el número 100 si 0.1 V es 1.

Así que decidí mux el cátodo y el otro pin de la resistencia de 1 kΩ y voilà, hay un buen logaritmo y una función exponencial que coincide. Puedes ver en el gif a continuación.

ingrese la descripción de la imagen aquí

Enlace a simulación.

El gif es un poco granulado, con el propósito de reducir 8 MB a 2 MB. Además, el gif se acelera 2 veces, 28 segundos en lugar de 55.

Sé que dice "log (x) en base y" y "pow (y, x)", lo cual no es cierto. Me confundí con la referencia de voltaje. Es solo log y pow con alguna base aleatoria. Los matemáticos inteligentes sabrán que no importa cuál sea la base, puede convertir cualquier registro a cualquier otro registro.

El número 6.7 se muestra al final en la salida del amplificador operacional inferior derecho. CircuitJS trunca 6.75 a 6.7 cuando presenta los números sin que el mouse se mueva. Colocar el mouse arriba mostró 6.69 V, entonces un error de 60 mV que es menor que 250 mV y por lo tanto aceptable. Según ... no es el mejor simulador.


Después de leer la respuesta de Andy Aka, no estoy seguro de si otra respuesta puede superarla. Aceptaré la suya en un par de días si ninguna otra respuesta lo supera. No creo que mi respuesta sea mejor que la de Andy.

Harry Svensson
fuente
1

Recientemente me encontré con el circuito "Multiplicador parabólico" en una computadora analógica de 1968. Para multiplicar A y B, comienza con dos amplificadores operacionales para calcular A + B y AB. Luego, necesita un generador de funciones que produzca X ^ 2 (es decir, una parábola). Con dos generadores de funciones, calcula (A + B) ^ 2 y (AB) ^ 2. Restas los dos resultados con un amplificador operacional, lo que resulta en 4 × A × B, que después de escalar te da A × B como desees.

¿Cómo se obtiene la función X ^ 2? Una función convexa arbitraria (como X ^ 2) se puede aproximar con una red de diodos de resistencia. La idea es que cada diodo se encienda a un voltaje de entrada particular (controlado por las resistencias superiores) y proporcione una corriente (controlada por las resistencias inferiores) a la salida. El resultado es una función lineal por partes. (Los valores de los componentes a continuación son arbitrarios; no calculé los valores para X ^ 2.) Un generador de función real podría tener una docena de diodos para mayor precisión. Un generador de funciones podría estar cableado o tener potenciómetros para que el usuario pueda configurarlo para cualquier función deseada.

esquemático

simular este circuito : esquema creado con CircuitLab

El multiplicador parabólico se consideraba una forma de alta precisión de realizar la multiplicación analógica. Una breve mención se encuentra en el manual de la computadora analógica Dornier 240 . (En alemán, ver Der Parabel-Multiplizierer en la sección 9.)

Ken Shirriff
fuente