Saya pernah membeli synthesizer Yamaha PSR-550 untuk anak-anak saya. Alat itu bukan remaja pertama, tetapi bisa digunakan. Anak-anak menunjukkan antusiasme dan dengan cepat terbiasa dengan synthesizer: mereka menemukan kontrol, belajar untuk "menulis kaleng", dll. Kehadiran konektor "MIDI IN" dan "MIDI OUT" di bagian belakang synthesizer tidak mengganggu saya.
Pernyataan masalah
Pada abad terakhir, cara termudah untuk menghubungkan komputer dan synthesizer melalui MIDI adalah dengan menggunakan
port game . Untuk mencocokkan sinyal antarmuka ("loop saat ini" di MIDI dan TTL pada konektor port game), dibuat adaptor sederhana, sirkuitnya diberikan dalam artikel
MIDI Wikipedia :

Saat ini, port game dari sound dan motherboard telah menghilang sebagai kelas. Driver port gim untuk OS modern tidak dapat ditemukan.
"Fisika" antarmuka pada prinsipnya dapat dipahami dari
artikel Wikipedia : data dipertukarkan menggunakan protokol start-stop pada kecepatan 31250 bps dengan transmisi data 8-bit tanpa paritas dengan one stop bit. Nol logis di sirkuit sinyal sesuai dengan aliran arus 5 mA, ke unit logis tidak ada arus di sirkuit.
Pada prinsipnya, port game dapat diganti dengan USB UART dan melampirkan adaptor yang dijelaskan dalam artikel Wikipedia.
Masalah pertama dengan solusi ini adalah untuk memaksa OS untuk menentukan port UART COM sebagai port MIDI. Tanpa diduga bagi saya, solusi untuk masalah itu ditemukan di forum Arduino. Di sana saya menemukan tautan ke emulator port MIDI gratis "di atas" dari port COM virtual. Untuk menghubungkan port yang ditiru dengan editor MIDI, pengembang merekomendasikan menggunakan kabel loopMIDI virtual.
Masalah kedua: menjalankan UART pada 31.250 bps.
Semua data ini sudah cukup untuk merumuskan
proposal teknis :
βUntuk menghubungkan komputer dengan synthesizer melalui MIDI, disarankan untuk menggunakan USB UART bersama dengan adaptor untuk mencocokkan sinyal TTL dengan sinyalβ loop sekarang 0 ... 5 mA β, perangkat lunak loopMIDI, HairIDI MIDI <-> Serial Bridge dan driver UART yang memungkinkannya untuk bekerja kecepatan 31.250 bps. "Perangkat keras
Pilihan solusi perangkat keras sangat sederhana - di nampan penulis artikel ditemukan:
- USB UART berdasarkan CP2102;
- Optocoupler AOT101A;
- mikrosirkuit K1533LN2;
- sepasang konektor SSH-5 (sebutan lain: ONC-VG-4-5 / 16-V, DIN 41524);
- beberapa meter kabel akustik terlindung SHGES.
Alhasil, rangkaian adaptor tersebut dirakit untuk memotong papan tempat memotong roti universal berukuran 40x15:

Kinerja sirkuit rakitan telah diverifikasi sebagai berikut:
- Adaptor terhubung ke konektor MIDI dari synthesizer.
- Synthesizer telah menonaktifkan kontrol lokal (MIDI Local = Off).
- Setelah memasang jumper antara sinyal RX dan TX adaptor, synthesizer mulai merespons penekanan tombol.
Saya harap operasi rangkaian ini jelas tanpa penjelasan. Saya hanya mencatat bahwa:
- elemen dari chip K1533LN2 memiliki output tipe "kolektor terbuka" yang tidak bekerja tanpa beban eksternal;
- kapasitor C1 terhubung sedekat mungkin ke terminal daya DD1;
- jalinan kabel yang menuju ke konektor "MIDI IN" dari synthesizer terhubung hanya ke kabel umum adaptor;
- kepang kabel yang menuju ke konektor MIDI OUT dari synthesizer terhubung hanya ke terminal 2 dari konektor.
Perangkat lunak
Selanjutnya, perangkat lunak berikut ini diinstal pada komputer:
- Driver VCP untuk CP2102 .
- Paket utilitas untuk mengonfigurasi CP2102 .
- MIDI port emulator Hairless MIDI <-> Serial Bridge oleh Angus Gratton.
- MIDI virtual cord loopMIDI oleh Tobias Erichsen.
- MIDI Editor Anvil Studio.
Kemudian dua kabel dibuat di loopMIDI - "Synthesizer" dan "Keyboard":

Untuk menghubungkan editor MIDI ke jack synthesizer MIDI IN, kabel Synthesizer dihubungkan antara output Anvil Studio dan input emulator port MIDI.
Untuk menghubungkan editor MIDI dengan konektor synthesizer MIDI OUT, kabel Keyboard dihubungkan antara output emulator port MIDI dan input Anvil Studio.


Langkah terakhir dan sangat penting dalam menyiapkan perangkat lunak adalah mengatur bit rate CP2102 menjadi 31.250 bps, bukan 38.400 bps:

Setelah mengatur kecepatan, Anda harus mengklik tombol "Set Configuration". Kemudian, di Device Manager dan di Hair Serial MIDI <-> Bridge Seri, dalam pengaturan untuk kecepatan komunikasi port COM UART CP2102, pilih 38400.
Ringkasan Singkat
Hasilnya, editor MIDI Anvil Studio menerima saluran komunikasi dengan Yamaha PSR-550 synthesizer. Anak-anak dengan antusias mulai belajar bagaimana bekerja dengan editor MIDI. Saya mendapatkan kembali ketenangan pikiran.
PS Cara mengatur kecepatan ke 31.250 bps, bukan 38.400 bps untuk PL2303 dibahas di
sini .
PPS Cara mengatur kecepatan ke 31.250 bps dan bukan 38.400 bps untuk CH341 tidak ditemukan.