Menghubungkan kaset komputer gaya 80-an ke FPGA

9

Saya menerapkan kembali komputer Microbee 1980-an pada FPGA (lihat di sini ) dan mencoba mencari tahu bagaimana melakukan port kaset. Berikut skema untuk antarmuka kaset Microbee asli:

MicrobeeSchematic
(sumber: toptensoftware.com )

Saya juga menemukan deskripsi ini di manual teknis:

Output data kaset hanya terdiri dari jaringan RC yang menerima sinyal dari DB1, pin 28 dari PIO. Sinyal dilemahkan dan kemudian dipisahkan sebelum mengirimnya ke perekam kaset input MIC. Sinyal ini muncul pada pin 3 dari soket DIN 5 pin.

Rangkaian input data kaset sedikit lebih rumit. Input dari pin 5 dari soket DIN terlebih dahulu dilewatkan ke attentuator -decoupler. Berikut ini adalah op-amp CA3140, untuk memungkinkan berbagai tingkat input dikuadratkan sebelum sinyal dilewatkan ke pin 27 dari PIO, DBO. Dua dioda yang melintasi input pembalik dan non-pembalik ke klip op-amp, setiap sinyal input lebih besar dari tegangan maju dioda di kedua arah. Kapasitor 47pF diperlukan oleh op-amp CMOS untuk prakompensasi.

Pertanyaan saya:

  1. Apa arti " tidak digabungkan" dalam deskripsi?
  2. Akankah rangkaian yang sama berfungsi jika terhubung ke dua pin I / O pada Xilinx Spartan 6 FPGA (melalui konektor PMod pada Nexys3) dan jika tidak, dapatkah itu diadaptasi untuk membuatnya bekerja?

Upaya pertama, berdasarkan komentar dalam jawaban, tetapi resistor keluaran tidak harus seri.

Saya meninggalkan ini di sini untuk alasan konteks dan instruksional, silakan lihat skema berikutnya

MicrobeeSchematic2 http://www.toptensoftware.com/fpgabee/MicrobeeCassettePortSchematic2.png

Pertanyaan baru:

  1. Apakah polaritas pembandingnya benar?
  2. Untuk MCP6546 , apakah Vss pergi ke tanah dan Vdd ke 3.3V?
  3. Saya tidak yakin apa yang harus dilakukan dengan resistor "putus-putus" melintasi input pita di sirkuit asli.

Memasukkan umpan balik mengenai output komparator menjadi saluran terbuka:

MicrobeeSchematic3 http://www.toptensoftware.com/fpgabee/MicrobeeCassettePortSchematic3.png

Alternatif apa yang dapat saya gunakan untuk MCP6546, yang saya tidak dapat temukan di toko-toko eceran di Australia. Saya bisa mendapatkan LM311 atau LM393 yang, dari apa yang bisa saya katakan serupa. Apakah ini akan berhasil juga?

Brad Robinson
sumber

Jawaban:

6
  1. Kapasitor decoupling dikenal dalam catu daya sirkuit, di mana mereka berfungsi untuk menjaga tegangan suplai bersih dari kebisingan (frekuensi tinggi). Tapi saya mendapat kesan bahwa di sini menghapus konten DC dari sinyal Anda dimaksudkan, dengan cara kapasitor seri, seperti C24 untuk input. Yang, tergantung pada sudut pandang Anda (DC atau AC) dapat disebut kapasitor kopling. Tetapi tidak ada kapasitor yang melakukan ini pada output Anda. Nilai C23 juga diduga rendah. Frekuensi cutoff dengan resistor R23 dan R24 adalah 12 kHz, yang tidak berguna, karena itu akan mengenai kisaran frekuensi kaset pula. Saya lebih suka mengharapkan 5 kHz di sini. Juga teks berbicara tentang input MIC, tetapi untuk itu tingkat output terlalu tinggi. Skema menyebutkan input baris.

  2. CA3140 tidak baik. Tegangan operasi minimumnya adalah 4 V, dan pada 5 V output tinggi tidak lebih tinggi dari 3 V, jadi untuk pasokan 4 V yang mungkin serendah 2 V, dan itu mungkin tidak cukup untuk Spartan. Gunakan opamp Rail-To-Rail sebagai gantinya, atau bahkan pembanding yang lebih baik.

sunting ulang pertanyaan baru Anda

  1. Polaritasnya OK, karena tidak masalah :-). Anda memiliki sinyal AC di atas dan di bawah tanah. Seperti yang Anda gambar, setengah siklus positif akan membuat output menuju Vcc, negatif ke ground. Jika Anda mengganti input Anda akan memiliki sebaliknya, tetapi kedua sinyal akan terlihat sama.

  2. Iya.

  3. Saya akan mengabaikannya. Tampaknya tidak memiliki fungsi selain memuat output, dan selain itu, jika Anda menunjukkannya, Anda meminta untuk diabaikan :-).

Hal penting tentang R1: ini harus ke Vcc, 3.3 V Anda, tidak secara seri dengan output. Output open-drain berarti bahwa hanya ada FET yang mengalihkan output ke ground, sehingga hanya dapat membuatnya rendah, tidak tinggi. Penarik pull-up akan membuat output tinggi ketika FET mati.

stevenvh
sumber
"Decoupling secara normal berarti menghapus konten DC dari sinyal Anda dengan menggunakan kapasitor seri" - bukankah topi seri kapasitor kopling? Topi Decoupling menghapus konten AC.
Kellenjb
@Kellen - Ya ampun. Ya, Anda benar, terutama jika Anda berpikir untuk memisahkan jalur catu daya. Di sini saya berpikir untuk memisahkan DC dari sinyal :-).
stevenvh
@stevenvh Terima kasih atas tanggapan terperinci, meskipun sebagian dari apa yang Anda katakan melampaui kepala saya. Saya memiliki pengetahuan elektronik yang terbatas, tetapi mencoba menumbuhkannya sehingga saya baru saja membaca di sirkuit RC, op-amp dan pembanding. Saya mungkin harus memposting ini sebagai pertanyaan terpisah, tetapi: 1) bagaimana Anda menghasilkan 12Hz, dan 2) dapatkah Anda merekomendasikan komparator? Saya sebenarnya berharap untuk mengusir ini dari 3.3V yang tersedia di PMod jika memungkinkan.
Brad Robinson
Juga, Anda benar, Microbee memiliki output level line, bukan level mic. Yang membuat saya penasaran - bagaimana Anda bisa memodifikasinya agar berfungsi di tingkat mikrofon (Saya berpikir untuk mengirim ini ke iPhone untuk direkam).
Brad Robinson
Ω
3

Kapasitor seri biasanya disebut kapasitor 'kopling' karena mereka memasangkan komponen ac dari sinyal sumber ke tujuan. Kapasitor decoupling adalah kapasitor shunt yang dirancang untuk mencegah kopling sinyal ac dari sumber ke detinasi.

Dalam konteks ini, C23 memisahkan komponen frekuensi tinggi dari PIO ke ground sehingga output gelombang persegi menjadi bulat yaitu sekitar sinusoidal (artikel Anda dikutip mengacu pada 'decoupling' dalam menggambarkan output ke port tape dan karenanya harus mengacu pada C23).

MikeJ-UK
sumber
Ini juga merujuk pada "attenuator-decoupler" dalam input dari tape recorder, yang membuat saya bertanya-tanya apakah mereka menggunakannya berarti dua hal yang berbeda.
Oli Glaser
1

Sirkuit yang digambarkan mungkin harus bekerja dengan FPGA jika IC35 mengeluarkan sinyal 0-ke-3,3 volt. Satu peringatan kecil adalah bahwa karena input kaset tidak memiliki histeresis, ada kemungkinan bahwa sinyal yang seharusnya muncul sebagai satu naik atau turunnya tepi dapat muncul sebagai urutan cepat dari naik dan turunnya tepi yang kemudian mengendap tinggi atau rendah beberapa mikrodetik kemudian . Itu seharusnya tidak menjadi masalah jika Anda mendesain FPGA Anda sehingga mengabaikan perubahan input yang berlangsung kurang dari misalnya 10 mikrodetik, dan mengabaikan perubahan input apa pun yang terjadi dalam 20 mikrodetik dari perubahan yang terdeteksi, tetapi jika logika Anda mencoba mengukur panjangnya pulsa input tanpa menegakkan panjang minimum itu bisa mengalami masalah.

supercat
sumber
1
  1. "Decoupled" dalam skenario ini mungkin merujuk baik ke kapasitor seri yang menghalangi DC (C24), dan bagian C dari RC (C23) meskipun harus "kapasitor kopling" untuk C24 (decoupling juga digunakan untuk merujuk pada Fungsi pemblokiran DC, tapi saya pikir ini membingungkan dengan cara ini, karena biasanya berarti "jenis lain" yang mendorong AC ke ground) dan "decoupling" untuk C23 (jika ada sama sekali)
    Tutup kopling digunakan secara umum di sirkuit penguat audio untuk memungkinkan satu tahap input menjadi bias secara independen dari tingkat output DC tahap sebelumnya.

  2. Ya, selama Anda memasok opamp dengan tegangan yang sama dengan pin FPGA (mis. 3.3V, 2.5V, dll) daripada 5V yang ditunjukkan. Anda harus dapat menggunakan hampir semua opamp untuk fungsi komparator (rail to rail lebih disukai untuk mempermudah, seperti kata Steven, tetapi tidak penting selama Anda memenuhi input FPGA min-high max-low)

Oli Glaser
sumber