تصميم عطلة نهاية الأسبوع: محول MIDI بسيط


اشتريت مرة واحدة المزج ياماها PSR-550 لأطفالي. لم تكن الأداة هي أول شباب ، ولكنها صالحة للخدمة. أبدى الأطفال حماسًا واعتادوا على المزج: سرعان ما اكتشفوا أدوات التحكم ، وتعلموا "كتابة العلب" ، إلخ. لم يزعجني وجود موصلات "MIDI IN" و "MIDI OUT" في الجزء الخلفي من المزج.

بيان المشكلة


في القرن الماضي ، كانت أسهل طريقة لتوصيل جهاز كمبيوتر ومُزج عبر MIDI هي استخدام منفذ ألعاب . لمطابقة إشارات الواجهات ("الحلقة الحالية" في MIDI و TTL على الموصل الخاص بمنفذ اللعبة) ، تم تصنيع محول بسيط ، تم توفير دائرة له في مقالة MIDI Wikipedia :



حاليًا ، اختفت منافذ الألعاب من الصوت واللوحات الأم كفئة. لا يمكن العثور على برامج تشغيل منفذ الألعاب لأنظمة التشغيل الحديثة.

كانت "فيزياء" الواجهة مفهومة من حيث المبدأ من مقال في ويكيبيديا : يتم تبادل البيانات باستخدام بروتوكول بدء التشغيل بسرعة 31250 بت في الثانية مع حزم بيانات 8 بت دون تكافؤ مع بت توقف واحد. الصفر المنطقي في دوائر الإشارة يتوافق مع تدفق التيار البالغ 5 مللي أمبير ، تفتقر الوحدة المنطقية إلى التيار في الدائرة.

من حيث المبدأ ، يمكن استبدال منفذ اللعبة بـ USB UART وإرفاق المحول الموضح في مقالة Wikipedia به.

تتمثل المشكلة الأولى في هذا الحل في إجبار نظام التشغيل على تحديد منفذ UART COM كمنفذ MIDI. بشكل غير متوقع بالنسبة لي ، تم العثور على حل للمشكلة في منتديات Arduino. وجدت هناك رابطًا لمحاكي منفذ MIDI مجاني "أعلى" منفذ COM الظاهري. لتوصيل المنفذ الذي تمت مضاهاته بمحرر MIDI ، أوصى المطور باستخدام سلك loopMIDI افتراضي.

المشكلة الثانية: الحصول على UART لتشغيل 31250 نقطة أساس.

كل هذه البيانات كانت بالفعل كافية لصياغة اقتراح تقني :
"لتوصيل جهاز كمبيوتر باستخدام جهاز المزج عبر MIDI ، يُقترح استخدام USB UART مع محول لمطابقة إشارات TTL بإشارات" loop الحالية ... سرعات 31250 نقطة أساس. "

الجزء الأجهزة


كان اختيار حل الأجهزة بسيطًا للغاية - في سلال مؤلف المقال ، تم العثور على:

  • USB UART على أساس CP2102 ؛
  • AOT101A optocoupler ؛
  • microcircuit K1533LN2 ؛
  • زوج من الموصلات SSH-5 (تسميات أخرى: ONC-VG-4-5 / 16-V ، DIN 41524) ؛
  • عدة أمتار من الكابلات الصوتية محمية SHGES.

نتيجةً لذلك ، تم تجميع دائرة المهايئ هذه على قص لوح عالمي بحجم 40 × 15:



تم التحقق من أداء الدائرة المجمعة على النحو التالي:

  1. كان المحول متصلاً بموصلات MIDI الخاصة بالمُزج.
  2. تم تعطيل المزج التحكم المحلي (MIDI المحلي = إيقاف).
  3. بعد تثبيت وصلة ربط بين إشارات RX و TX للمحول ، بدأ المزج في الاستجابة لضربات المفاتيح.

آمل أن يكون تشغيل الدائرة واضحًا دون تفسير. ألاحظ فقط ما يلي:

  • تحتوي عناصر الرقاقة K1533LN2 على خرج نوع "جامع مفتوح" لا يعمل بدون تحميل خارجي ؛
  • يتم توصيل مكثف C1 أقرب ما يمكن إلى محطات الطاقة DD1.
  • يتم توصيل جديلة الكابل الذي يذهب إلى موصل "MIDI IN" الخاص بالمُركِّب فقط بالسلك المشترك للمحول ؛
  • يتم توصيل جديلة الكابل الذي يذهب إلى موصل MIDI OUT الخاص بالمُركِز فقط بالطرف 2 من الموصل.

البرمجيات


بعد ذلك ، تم تثبيت البرنامج التالي على الكمبيوتر:

  1. سائق VCP ل CP2102 .
  2. حزمة الأداة المساعدة لتكوين CP2102 .
  3. MIDI ميناء المحاكي بلا شعر MIDI <-> جسر المسلسل من قبل انجوس Gratton.
  4. MIDI الحبل السري loopMIDI التي كتبها توبياس Erichsen.
  5. MIDI محرر سندان ستوديو.

ثم تم إنشاء سلكين في loopMIDI - "Synthesizer" و "Keyboard":



لتوصيل محرر MIDI بمقبس MIDI IN ، تم توصيل سلك Synthesizer بين خرج Anvil Studio وإدخال محاكي منفذ MIDI.

لتوصيل محرر MIDI بموصل المزج MIDI OUT ، تم توصيل كابل لوحة المفاتيح بين إخراج محاكي منفذ MIDI وإدخال Anvil Studio.





الخطوة الأخيرة والهامة للغاية في إعداد البرنامج هي ضبط معدل بتات CP2102 على 31250 بت في الثانية بدلاً من 38400 بت في الثانية:



بعد ضبط السرعة ، يجب النقر فوق الزر "ضبط التهيئة". ثم ، في إدارة الأجهزة وفي Hairless MIDI <-> Serial Bridge ، في إعدادات سرعة اتصال منفذ UART CP2102 COM ، حدد 38400.

ملخص موجز


نتيجة لذلك ، تلقى محرر MIDI في Anvil Studio قناة اتصال مع مُزج Yamaha PSR-550. بدأ الأطفال بحماس لتعلم كيفية العمل مع محرر MIDI. استعدت راحة البال.

PS نوقشت هنا كيفية ضبط السرعة على 31،250 بت في الثانية بدلاً من 38،400 بت في الثانية.

PPS: لا يمكن العثور على كيفية ضبط السرعة على 31،250 bps بدلاً من 38،400 bps في CH341.

Source: https://habr.com/ru/post/ar447652/


All Articles