Краткая версия: Как мне сделать аналоговый умножитель, который принимает два аналоговых входа постоянного тока?
Длинная версия:
Я сделал комментарий, порекомендовав видео Ben Eaters для другого вопроса, но в итоге я сам посмотрел некоторые (снова) и подумал про себя: « Хммм ... Интересно, будет ли проще сделать некоторые части чисто аналоговыми ».
Шина может быть только одним проводом, где различные уровни напряжения будут впоследствии преобразованы в биты с помощью АЦП.
Просто немного поиграв, я зашел так далеко, что теоретически могу вычислить числа Фибоначчи:
Рисунок 1, небольшая демонстрация гибридного компьютера, вычисляющего первые числа Фибоначчи
Ссылка на симулятор.
На рисунке выше я выхожу из диапазона напряжений, поэтому легко увидеть числа Фибоначчи, в действительности я просто использовал бы 250 мВ = двоичный 1 (LSB на «заданных значениях»), а затем позволил бы ему распространяться через DRAM, который содержит 4 бита на конденсатор.
Важная часть, которую нужно посмотреть в gif, - это вывод операционного усилителя справа от текста «a + b», он показывает числа Фибоначчи.
В промежутке между каждой операцией я определяю количество ответа, используя АЦП, а затем ЦАП. Поэтому, если бы я прочитал 1,1 В, ЦАП превратил бы его в 1,0 В, который впоследствии был бы сохранен в DRAM. И затем один раз каждые X часов весь DRAM должен проходить через квантователь, чтобы убедиться, что конденсатор не уплывает .
АЛУ умеет только делать +, - и в среднем. Я думал о том, чтобы сделать умножение, и остановился. Я уже делал и видел умножители на основе диодов, но я не хочу их использовать, потому что диоды должны быть согласованы. Я скорее использую резисторы, которые можно подрезать потенциометром. Во всяком случае, я придумал гибридный множитель, наполовину аналоговый, наполовину цифровой.
Поэтому я сделал первый с одинаковыми резисторами везде.
Рисунок 2, наивный множитель между цифровыми числами и аналоговыми значениями. Цифровое значение смещено на 1.
Который я затем превратил в это с двоичными весами:
Рисунок 3, наивный множитель между двоичными взвешенными цифровыми числами и аналоговыми значениями. Цифровое значение смещено на 1.
Это напомнило мне рэдеры R2 / R, но я не мог заставить их работать с операционным усилителем.
Однако я подумал о том, как работают лестницы R2 / R, и я вспомнил, что их выходная мощность умножается на источник напряжения. Итак, я наконец-то придумал этот дизайн:
Рисунок 4, множитель на основе R2 / R между двоичными взвешенными цифровыми числами и аналоговыми значениями
Мне это нравится, единственная проблема, однако, в том, что шина аналоговая, всего один провод. Поэтому, если я вынужден использовать решение, показанное на рисунке 4 выше, то я вынужден использовать другой АЦП в области умножения гибридного ЦП. Я не могу использовать один в области квантователя.
Время на вопрос:
Как мне сделать множитель, который принимает два аналоговых входа?
- Я не хочу решение, которое основано на 3 диодах и 4 операционных усилителях, потому что вы не можете подрезать диоды. Я считаю, что если они не соответствуют друг другу, то они дадут ответ, который выключен более чем на 250 мВ. Я не пробовал это в реальном мире.
- Я попробовал множитель на основе MOS в ссылке буквально на дюйм выше этого слова, но я не знаю, глуп ли я. Я не могу заставить его работать в симуляторе. Смотрите GIF ниже для сбоя реализации MOS. Или нажмите на эту ссылку для моделирования.
- Я не хочу бросать микроконтроллер в проблему.
- Я не хочу использовать мотор, который вращается и использует некоторые махинации.
- После того, как умножение выполнено, оно будет передано в квантователь, чтобы убедиться, что значение максимально близко к двоичному значению. Так что небольшие ошибки в порядке.
Вот рисунок, который показывает мою неудачу при попытке сделать MOS на основе:
Рисунок 5, я скопировал схему из ссылки вики выше, но она не работает в симуляторе.
Если бы это сработало, то я бы где-то увидел значение 1 В, так как я изменил напряжение эталона с 5 В до -5 В.