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:
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.
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:
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:
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.
- 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:
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.
fuente
Respuestas:
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:
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í
fuente
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.
fuente
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Ω.
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.
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.
fuente
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.
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.)
fuente