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.