Multiplicação analógica analógica, parte de uma CPU híbrida (por diversão)

10

Versão curta: Como faço para criar um multiplicador analógico que recebe duas entradas DC analógicas?

Versão longa:


Fiz um comentário recomendando os vídeos de Ben Eaters para outra pergunta, enquanto acabava assistindo a mim mesmo (novamente) e pensando comigo mesmo " hmmm ... eu me pergunto se seria mais fácil tornar algumas partes puramente analógicas ".

O barramento pode ser apenas um fio, onde diferentes níveis de tensão serão posteriormente convertidos em bits com um ADC.

Apenas brincando um pouco, cheguei tão longe que, teoricamente, pode calcular os números de Fibonacci:

insira a descrição da imagem aqui
Figura 1, pequena demonstração do computador híbrido calculando os primeiros números de fibonacci

Link para o simulador.

No gif acima, saio da faixa de tensão para facilitar a visualização dos números de fibonacci. Na realidade, eu usaria apenas o 250 mV = binário 1 (o LSB nos "valores definidos") e, em seguida, deixaria que ele se propaginasse através do DRAM que suporta 4 bits por capacitor.

A parte importante a ser observada no gif é a saída do amplificador operacional à direita do texto "a + b", que mostra os números de Fibonacci.

Entre cada operação, quantificaria a resposta usando um ADC seguido por um DAC. Portanto, se eu lesse 1.1V, o DAC o transformaria em 1.0 V, que posteriormente seria armazenado na DRAM. E então, uma vez a cada relógio X, toda a DRAM precisaria passar pelo quantizador para garantir que o capacitor não flutuasse .

A ALU só pode fazer +, - e média. Eu estava pensando em fazer a multiplicação e parei. Eu já criei e vi multiplicadores baseados em diodo antes, mas não quero usá-los porque os diodos precisam ser compatíveis. Eu prefiro usar resistores que eu possa cortar com um potenciômetro. De qualquer forma, criei um multiplicador híbrido, meio analógico e meio digital.

Então eu fiz o primeiro com resistores idênticos em todos os lugares.

insira a descrição da imagem aqui
Figura 2, multiplicador ingênuo entre números digitais e valores analógicos. O valor digital é compensado por 1.

Que então eu virei com pesos binários:

insira a descrição da imagem aqui
Figura 3, multiplicador ingênuo entre números digitais ponderados em binários e valores analógicos. O valor digital é compensado por 1.

Isso me lembrou as escadas R2 / R, mas não consegui fazê-las funcionar com o amplificador operacional.

No entanto, pensei em como as escadas R2 / R funcionavam e lembrei que a saída delas é multiplicada pela fonte de tensão. Então, finalmente criei este design:

insira a descrição da imagem aqui
Figura 4, multiplicador baseado em R2 / R entre números digitais binários ponderados e valores analógicos

Eu gosto, o único problema, porém, é que o barramento é analógico, apenas um fio. Portanto, se sou forçado a usar a solução na figura 4 acima, sou forçado a usar outro ADC na área de multiplicação da CPU híbrida. Não posso reutilizar o da área do quantizador.

Hora da pergunta:

Como devo fazer um multiplicador que aceite duas entradas analógicas?

  • Eu não quero a solução baseada em 3 diodos e 4 amplificadores operacionais, porque você não pode aparar diodos. Minha crença é que, se forem incompatíveis, eles darão uma resposta que está desativada em mais de 250 mV. Eu não tentei isso no mundo real.
  • Eu tentei o multiplicador baseado em MOS no link literalmente uma polegada acima desta palavra, mas não sei se sou burro. Não consigo fazê-lo funcionar no simulador. Veja gif abaixo para falha na implementação do MOS. Ou clique neste link para a simulação.
  • Eu não quero jogar um microcontrolador no problema.
  • Eu não quero usar um motor que gire e use algumas travessuras.
  • e-tRC
  • 424=0,25
  • Após a multiplicação, será levado ao quantizador para garantir que o valor seja o mais próximo possível de um valor binário. Então, pequenos erros estão bem.

Aqui está o gif que mostra minha falha ao tentar criar um baseado em MOS:

insira a descrição da imagem aqui
Figura 5, copiei o esquema do link wiki acima, mas ele não funciona no simulador.

Se tivesse funcionado, então eu deveria ter visto o valor 1 V em algum lugar, pois mudei a tensão da referência de 5 V para -5 V.

Harry Svensson
fonte
1
A primeira vez que vi um multiplicador analógico, ele estava usando um conjunto de caudas longas: analoglib.net/wordpress/wp-content/uploads/2013/10/image5.png
Oldfart
2
a célula de Gilbert funciona em DC? Eu acho que é utilizado para misturar RF
Vladimir Cravero
1
@VladimirCravero Uma célula Gilbert é, em essência, um multiplicador - pense nisso, se você multiplicar dois sinais, um em F1 e um em F1, você obtém uma saída em F1-F2 e F1 + F1, que é o que um mixer faz. Eles também são usados ​​para amplificadores de ganho variável por esse motivo - um sinal será constante (a configuração de ganho) e o segundo será o que você deseja amplificar.
Joren Vaes

Respostas:

5

Se você deseja criar um multiplicador analógico que é um pouco fora do comum, considere o que acontece quando você alimenta um sinal analógico através de um comutador analógico, mas controla o comutador analógico com PWM em alta frequência (significativamente acima do nyquist para tornar a vida útil). Mais fácil).

Se o PWM tiver 50% de espaço de marca, o sinal analógico da banda base será atenuado pela metade. Claramente, você precisa usar um filtro de recuperação para remover artefatos de comutação. Porém, com esta técnica, você pode modular a amplitude de um sinal analógico variando o ciclo de trabalho PWM: -

insira a descrição da imagem aqui

Você também pode transformá-lo em um multiplicador de 4 quadrantes. Uma entrada analógica controla um modulador de largura de pulso. A outra entrada analógica é comutada.

Apenas um pensamento, caso você esteja interessado.

Mais detalhes aqui

Andy aka
fonte
Esta é uma abordagem muito interessante!
Joren Vaes
1
Hmm, usando PWM, onde a amplitude é uma voltagem, e o ciclo de serviço é a outra voltagem relativa , e então o LP é filtrado. Na verdade, isso não é uma má idéia.
Harry Svensson
1
É usado em alguns rádios como moduladores e em LVDTs como desmodulação de posição. Também apliquei um como desmodulador I e Q em um detector de metais sensível.
Andy aka
4

Essas coisas existem - dispositivos analógicos (costumavam?) Possuem alguns ICs multiplicadores que você pode (poderia?) Comprar. Eles também têm esta excelente nota que eu definitivamente sugiro ler.

VOvocêT(t)=VEuN,1(t)VEuN,2(t)VEuN,1VEuN,2

Joren Vaes
fonte
1
Você ainda pode obter esses multiplicadores analógicos. Acredito que o digikey ainda tem uma categoria inteira de produtos para eles.
Hearth
2
No entanto, uma célula de Gilbert depende criticamente da correspondência dos transistores (o que é relativamente fácil quando os transistores fazem parte de uma única matriz). O OP rejeitou o uso de um circuito que depende da correspondência de transistores, então não tenho certeza se esta é uma boa resposta.
WhatRoughBeast
1
O AD633 é um multiplicador de 4 quadrantes que gera (X1-X2) (Y1-Y2) / 10V + Z. Não é particularmente barato.
Spehro Pefhany
3

Estou apenas colocando isso aqui como uma resposta viável para futuros leitores.


Depois de ler a resposta de Joren, percebi que muitos multiplicadores analógicos dependem de componentes correspondentes. Então pensei: por que não reutilizar componentes para que o mesmo componente seja usado em todos os lugares? Dessa forma, corresponderei automaticamente a tudo.

Então, procurei o multiplicador típico baseado em diodo e vi que os ânodos de todos os diodos estavam sempre conectados à entrada (-) do amplificador operacional. O mesmo vale para um pino do resistor de 1 kΩ.

insira a descrição da imagem aqui

Link para simulação.

Na imagem acima, é calculada a multiplicação 2,25 × 3, que resulta em 6,75. A mesma multiplicação é feita na ... monstruosidade abaixo.

O "Valor para um" é a referência de tensão para um. Portanto, se é 0,1 V e V1 = V2 = 1 volt. Então a resposta será 10 V, que se traduz no número 100 se 0,1 V for 1.

Então, decidi misturar o cátodo e o outro pino do resistor de 1 kΩ e pronto, existe um bom logaritmo e uma função exponencial que são compatíveis. Você pode ver no gif abaixo.

insira a descrição da imagem aqui

Link para simulação.

O gif é um pouco granulado, com o objetivo de diminuir de 8 MB para 2 MB. Além disso, o gif é acelerado 2x, 28 segundos em vez de 55.

Eu sei que diz "log (x) na base y" e "pow (y, x)", o que não é verdade. Eu me confundi com a referência de tensão. É apenas log e pow com alguma base aleatória. Os matemáticos inteligentes saberão que não importa qual é a base, você pode converter qualquer log para qualquer outro log.

O número 6.7 é mostrado no final, na saída do amplificador operacional inferior direito. O CircuitJS trunca de 6,75 a 6,7 ​​ao apresentar os números sem passar o mouse. A colocação do mouse acima mostrou 6,69 V, portanto, erro de 60 mV inferior a 250 mV e, portanto, aceitável. De acordo com .. não é o melhor simulador.


Depois de ler a resposta de Andy Aka, não tenho certeza se outra resposta pode vencê-la. Aceitarei a dele em alguns dias se nenhuma outra resposta for melhor. Não acredito que minha resposta supere a de Andy.

Harry Svensson
fonte
1

Recentemente, deparei-me com o circuito "Parabolic Multiplicier" em um computador analógico de 1968. Para multiplicar A e B, você começa com dois amplificadores operacionais para calcular A + B e AB. Em seguida, você precisa de um gerador de funções que produza X ^ 2 (ou seja, uma parábola). Com dois geradores de funções, você calcula (A + B) ^ 2 e (AB) ^ 2. Você subtrai os dois resultados com um amplificador operacional, resultando em 4 × A × B, que após o dimensionamento fornece A × B conforme desejado.

Como você obtém a função X ^ 2? Uma função convexa arbitrária (como X ^ 2) pode ser aproximada com uma rede de diodos resistores. A idéia é que cada diodo ligue a uma tensão de entrada específica (controlada pelos resistores superiores) e forneça uma corrente (controlada pelos resistores inferiores) à saída. O resultado é uma função linear por partes. (Os valores dos componentes abaixo são arbitrários; não calculei os valores para X ^ 2.) Um gerador de função real pode ter uma dúzia de diodos para maior precisão. Um gerador de função pode ser conectado por cabo ou ter potenciômetros para que o usuário possa configurá-lo para qualquer função desejada.

esquemático

simular este circuito - esquemático criado usando o CircuitLab

O multiplicador parabólico foi considerado uma maneira de alta precisão de realizar a multiplicação analógica. Uma breve menção está no manual do computador analógico Dornier 240 . (Em alemão, consulte Der Parabel-Multiplizierer na seção 9.)

Ken Shirriff
fonte