Multiplikasi analog analog, bagian dari CPU hybrid (untuk kesenangan)

10

Versi singkat: Bagaimana cara membuat pengganda analog yang mengambil dua input DC analog?

Versi panjang:


Saya membuat komentar merekomendasikan video Ben Eaters untuk pertanyaan lain, sambil melakukannya saya akhirnya menonton sendiri (lagi) dan berpikir pada diri sendiri " hmmm ... Saya ingin tahu apakah akan lebih mudah untuk membuat beberapa bagian murni analog ".

Bus bisa hanya satu kawat di mana level tegangan yang berbeda nantinya akan diterjemahkan ke bit dengan ADC.

Hanya sedikit bermain-main, saya sampai sejauh ini yang secara teoritis dapat menghitung angka Fibonacci:

masukkan deskripsi gambar di sini
Gambar 1, demo kecil komputer hybrid menghitung angka fibonacci pertama

Tautan ke simulator.

Dalam gif di atas saya keluar dari rentang tegangan sehingga mudah untuk melihat angka-angka fibonacci, pada kenyataannya saya hanya akan menggunakan 250 mV = biner 1 (LSB di "set nilai") dan kemudian biarkan menyebar melalui DRAM yang menampung 4 bit per kapasitor.

Bagian penting untuk dilihat dalam gif adalah output dari op-amp di sebelah kanan teks "a + b", ini menunjukkan angka-angka Fibonacci.

Di antara setiap operasi saya akan mengukur jawabannya dengan menggunakan ADC diikuti oleh DAC. Jadi jika saya akan membaca 1.1V maka DAC akan mengubahnya menjadi 1.0 V yang kemudian akan disimpan dalam DRAM. Dan kemudian setiap jam X seluruh DRAM harus melalui quantizer untuk memastikan kapasitor tidak melayang jauh .

ALU hanya dapat melakukan +, - dan rata-rata. Saya berpikir untuk membuat multiplikasi dan berhenti. Saya telah membuat dan melihat pengganda berbasis dioda sebelumnya, tetapi saya tidak ingin menggunakannya karena dioda harus dicocokkan. Saya lebih suka menggunakan resistor yang bisa saya potong dengan potensiometer. Anywhoo, saya datang dengan pengganda hibrida, setengah analog, setengah digital.

Jadi saya membuat yang pertama dengan resistor identik di mana-mana.

masukkan deskripsi gambar di sini
Gambar 2, pengali naif antara angka digital dan nilai analog. Nilai digital diimbangi oleh 1.

Yang kemudian saya ubah menjadi ini dengan bobot biner:

masukkan deskripsi gambar di sini
Gambar 3, pengali naif antara angka digital tertimbang biner dan nilai analog. Nilai digital diimbangi oleh 1.

Ini mengingatkan saya pada tangga R2 / R, tapi saya tidak bisa membuatnya bekerja dengan op-amp.

Namun, saya berpikir tentang bagaimana tangga R2 / R bekerja, dan saya ingat bahwa output mereka dikalikan dengan sumber tegangan mereka. Jadi akhirnya saya datang dengan desain ini:

masukkan deskripsi gambar di sini
Gambar 4, pengali berbasis R2 / R antara angka digital tertimbang biner dan nilai analog

Saya suka itu, satu-satunya masalah adalah bahwa bus itu analog, hanya satu kawat. Jadi jika saya terpaksa menggunakan solusi pada gambar 4 di atas, maka saya terpaksa menggunakan ADC lain di area multiplikasi CPU hybrid. Saya tidak bisa menggunakan kembali yang ada di area quantizer.

Saatnya pertanyaan:

Bagaimana saya membuat pengganda yang membutuhkan dua input analog?

  • Saya tidak ingin solusi yang didasarkan pada 3 dioda itu dan 4 op-amp karena Anda tidak dapat memotong dioda. Keyakinan saya adalah jika mereka tidak cocok maka mereka akan memberikan jawaban yang lebih dari 250 mV. Saya belum mencoba ini di dunia nyata.
  • Saya telah mencoba pengganda berbasis MOS dalam tautan secara harfiah satu inci di atas kata ini, tetapi saya tidak tahu apakah saya bodoh. Saya tidak bisa membuatnya bekerja di simulator. Lihat gif di bawah ini untuk kegagalan implementasi MOS. Atau klik tautan ini untuk simulasi.
  • Saya tidak ingin melempar mikrokontroler pada masalahnya.
  • Saya tidak ingin menggunakan motor yang berputar dan menggunakan beberapa shenanigans.
  • etRC
  • 424=0.25
  • Setelah penggandaan dilakukan, itu akan dibawa ke quantizer untuk memastikan nilainya sedekat mungkin dengan nilai biner. Jadi kesalahan kecil tidak apa-apa.

Inilah gif yang menunjukkan kegagalan saya mencoba membuat yang berbasis MOS:

masukkan deskripsi gambar di sini
Gambar 5, saya menyalin skema dari tautan wiki di atas, namun tidak berfungsi di simulator.

Jika itu akan berhasil, maka saya seharusnya melihat nilai 1 V di suatu tempat ketika saya mengubah tegangan referensi dari 5 V ke -5 V.

Harry Svensson
sumber
1
Pertama kali saya melihat pengali analog, itu menggunakan satu set ekor panjang: analoglib.net/wordpress/wp-content/uploads/2013/10/10/image5.png
Oldfart
2
apakah sel gilbert bekerja di DC? Saya rasa itu digunakan untuk mencampur RF
Vladimir Cravero
1
@VladimirCravero Sel gilbert pada dasarnya adalah pengganda - pikirkanlah, jika Anda mengalikan dua sinyal, satu di f1 dan satu di f2, Anda mendapatkan output di f1-f2 dan f1 + f2, yang dilakukan oleh mixer. Mereka juga digunakan untuk amplifier gain variabel karena alasan ini - satu sinyal akan menjadi konstan (pengaturan gain) yang kedua akan menjadi hal yang ingin Anda perkuat.
Joren Vaes

Jawaban:

5

Jika Anda ingin membangun pengali analog yang sedikit off-the-beaten track maka pertimbangkan apa yang terjadi ketika Anda memberi makan sinyal analog melalui sakelar analog tetapi kendalikan sakelar analog dengan PWM pada frekuensi tinggi (secara signifikan di atas nyquist untuk membuat hidup lebih mudah).

Jika PWM adalah tanda ruang 50% maka sinyal analog baseband dilemahkan oleh setengah. Jelas Anda perlu menggunakan filter pemulihan untuk menghapus beralih artefak. Tetapi dengan teknik ini Anda dapat memodulasi amplitudo sinyal analog dengan memvariasikan siklus tugas PWM: -

masukkan deskripsi gambar di sini

Anda juga bisa membuatnya menjadi pengali 4 kuadran. Satu input analog mengontrol modulator lebar pulsa. Input analog lainnya diaktifkan.

Hanya pemikiran jika Anda tertarik.

Lebih detail di sini

Andy alias
sumber
Ini adalah pendekatan yang sangat menarik!
Joren Vaes
1
Hmm, menggunakan PWM di mana amplitudo adalah satu tegangan, dan siklus tugas adalah tegangan relatif lainnya , dan kemudian LP disaring. Itu sebenarnya bukan ide yang buruk.
Harry Svensson
1
Ini digunakan dalam beberapa radio sebagai modulator dan LVDT sebagai demodulasi posisi. Saya menerapkan satu sebagai demodulator I dan Q di detektor logam sensitif juga.
Andy alias
4

Hal-hal ini ada - Perangkat analog (dulu?) Memiliki beberapa IC pengganda yang dapat (bisa?) Beli. Mereka juga memiliki ini appnote sangat baik yang saya pasti menyarankan membaca.

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

Joren Vaes
sumber
1
Anda masih bisa mendapatkan pengganda analog tersebut. Saya percaya digikey bahkan memiliki seluruh kategori produk untuk mereka.
Pos Gizi
2
Namun, Sel Gilbert sangat tergantung pada pencocokan transistor (yang relatif mudah ketika transistor adalah bagian dari cetakan tunggal). OP telah menolak menggunakan sirkuit yang bergantung pada pencocokan transistor, jadi saya tidak yakin ini adalah jawaban yang bagus.
WhatRoughBeast
1
AD633 adalah pengali 4-kuadran yang menghasilkan (X1-X2) (Y1-Y2) / 10V + Z. Tidak terlalu murah.
Spehro Pefhany
3

Saya hanya menempatkan ini di sini sebagai jawaban yang layak untuk pembaca masa depan.


Setelah membaca jawaban Joren saya menyadari bahwa banyak pengganda analog bergantung pada komponen yang cocok. Jadi saya berpikir, mengapa tidak hanya menggunakan kembali komponen sehingga komponen yang sama digunakan di mana-mana? Dengan begitu saya akan mencocokkan semuanya secara otomatis.

Jadi saya mencari pengganda berbasis dioda khas dan melihat bahwa anoda semua dioda selalu terhubung ke (-) input op-amp. Sama berlaku untuk satu pin resistor 1 kΩ.

masukkan deskripsi gambar di sini

Tautan ke simulasi.

Pada gambar di atas, perkalian 2,25 × 3 dihitung yang menghasilkan 6,75. Perkalian yang sama terjadi pada ... keburukan di bawah ini.

"Nilai untuk satu" adalah referensi tegangan untuk satu. Jadi jika 0,1 V dan V1 = V2 = 1 volt. Maka jawabannya akan menjadi 10 V yang berarti angka 100 jika 0,1 V adalah 1.

Jadi saya memutuskan untuk mux katoda dan pin lain dari resistor 1 kΩ dan voa, ada logaritma yang bagus dan fungsi eksponensial yang cocok. Anda dapat melihat di gif di bawah ini.

masukkan deskripsi gambar di sini

Tautan ke simulasi.

Gif sedikit kasar, yang sengaja menurunkan 8 MB menjadi 2 MB. Juga gif dipercepat 2x, 28 detik, bukannya 55.

Saya tahu ia mengatakan "log (x) di basis y" dan "pow (y, x)" yang tidak benar. Saya bingung dengan referensi tegangan. Hanya login dan pow dengan beberapa basis acak. Matematikawan yang pandai akan tahu bahwa tidak peduli apa dasarnya, Anda dapat mengkonversi log apa pun ke log lain.

Angka 6,7 ​​ditunjukkan di akhir di keluaran op-amp kanan bawah. CircuitJS memotong 6,75 menjadi 6,7 saat menyajikan angka-angka tanpa mouse melayang. Menempatkan mouse di atas menunjukkan 6,69 V, jadi 60 mV kesalahan yang kurang dari 250 mV dan karenanya dapat diterima. Menurut .. bukan simulator terbaik.


Setelah membaca jawaban Andy Aka, saya tidak yakin apakah jawaban lain dapat mengalahkannya. Saya akan menerimanya dalam beberapa hari jika tidak ada jawaban lain yang mengalahkan itu. Saya tidak percaya bahwa jawaban saya mengalahkan Andy.

Harry Svensson
sumber
1

Baru-baru ini saya menemukan sirkuit "Parabolic Multiplier" di komputer analog 1968. Untuk mengalikan A dan B, Anda mulai dengan dua op amp untuk menghitung A + B dan AB. Selanjutnya, Anda memerlukan generator fungsi yang menghasilkan X ^ 2 (yaitu parabola). Dengan dua generator fungsi, Anda menghitung (A + B) ^ 2 dan (AB) ^ 2. Anda kurangi dua hasil dengan op amp, menghasilkan 4 × A × B, yang setelah penskalaan memberi Anda A × B seperti yang diinginkan.

Bagaimana Anda mendapatkan fungsi X ^ 2? Fungsi cembung sembarang (seperti X ^ 2) dapat didekati dengan jaringan resistor-diode. Idenya adalah bahwa setiap dioda akan menyala pada tegangan input tertentu (dikontrol oleh resistor atas), dan memberikan arus (dikontrol oleh resistor yang lebih rendah) ke output. Hasilnya adalah fungsi linear piecewise. (Nilai-nilai komponen di bawah ini sewenang-wenang; Saya tidak menghitung nilai-nilai untuk X ^ 2.) Sebuah generator fungsi nyata mungkin memiliki selusin dioda untuk akurasi lebih. Generator fungsi dapat dipasang dengan kabel, atau memiliki potensiometer sehingga pengguna dapat mengaturnya ke fungsi yang diinginkan.

skema

mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab

Pengganda Parabola dianggap sebagai cara akurasi tinggi untuk melakukan perkalian analog. Disebutkan secara singkat dalam manual komputer analog Dornier 240 . (Dalam bahasa Jerman, lihat Der Parabel-Multiplizierer di bagian 9.)

Ken Shirriff
sumber