Ich habe einmal einen Yamaha PSR-550 Synthesizer für meine Kinder gekauft. Das Werkzeug war nicht die erste Jugend, aber brauchbar. Die Kinder zeigten Begeisterung und gewöhnten sich schnell an den Synthesizer: Sie fanden die Steuerung heraus, lernten "Dosen schreiben" usw. Das Vorhandensein von „MIDI IN“ - und „MIDI OUT“ -Anschlüssen auf der Rückseite des Synthesizers hat mich nicht gestört.
Erklärung des Problems
Im letzten Jahrhundert war die einfachste Möglichkeit, einen Computer und einen Synthesizer über MIDI zu verbinden, die Verwendung eines
Game-Ports . Um die Signale der Interfaces (die „Stromschleife“ in MIDI und TTL am Anschluss des Gameports) abzugleichen, wurde ein einfacher Adapter hergestellt, dessen Schaltung im
MIDI-Wikipedia-Artikel angegeben ist :

Derzeit sind Game-Ports von Sound und Motherboards als Klasse verschwunden. Game-Port-Treiber für moderne Betriebssysteme können nicht gefunden werden.
Die „Physik“ der Schnittstelle war im Prinzip aus einem
Wikipedia-Artikel verständlich: Der Datenaustausch erfolgt über das Start-Stopp-Protokoll mit einer Geschwindigkeit von 31.250 Bit / s bei 8-Bit-Datenübertragungen ohne Parität mit einem Stoppbit. Die logische Null in den Signalschaltungen entspricht einem Stromfluss von 5 mA, zu einer logischen Einheit gibt es keinen Strom in der Schaltung.
Grundsätzlich kann der Gameport durch USB UART ersetzt und der im Wikipedia-Artikel beschriebene Adapter daran angeschlossen werden.
Das erste Problem bei dieser Lösung besteht darin, das Betriebssystem zu zwingen, den UART COM-Port als MIDI-Port zu definieren. Unerwartet für mich wurde in den Arduino-Foren eine Lösung für das Problem gefunden. Dort fand ich einen Link zu einem kostenlosen MIDI-Port-Emulator "über" einem virtuellen COM-Port. Um den emulierten Port mit einem MIDI-Editor zu verbinden, empfahl der Entwickler die Verwendung eines virtuellen loopMIDI-Kabels.
Das zweite Problem: UART mit 31.250 Bit / s zum Laufen bringen.
All diese Daten reichten bereits aus, um einen
technischen Vorschlag zu formulieren:
„Um einen Computer über MIDI mit einem Synthesizer zu verbinden, wird vorgeschlagen, USB UART zusammen mit einem Adapter zum Abgleichen von TTL-Signalen mit Signalen mit„ Stromschleife 0 ... 5 mA “, LoopMIDI-Software, Hairless MIDI <-> Serial Bridge und UART-Treibern zu verwenden, damit dieser bearbeitet werden kann Geschwindigkeiten von 31.250 bps. "Hardware
Die Wahl einer Hardwarelösung war äußerst einfach - in den Behältern des Autors des Artikels wurden gefunden:
- USB UART basierend auf CP2102;
- AOT101A Optokoppler;
- Mikroschaltung K1533LN2;
- ein Steckverbinderpaar SSH-5 (andere Bezeichnungen: ONC-VG-4-5 / 16-V, DIN 41524);
- mehrere Meter abgeschirmtes Akustikkabel SHGES.
Infolgedessen wurde eine solche Adapterschaltung beim Zuschneiden eines Universal-Steckbretts mit einer Größe von 40 x 15 zusammengebaut:

Die Leistung der zusammengebauten Schaltung wurde wie folgt verifiziert:
- Der Adapter wurde an die MIDI-Anschlüsse des Synthesizers angeschlossen.
- Der Synthesizer wurde für die lokale Steuerung deaktiviert (MIDI Local = Off).
- Nach der Installation eines Jumpers zwischen den RX- und TX-Signalen des Adapters reagierte der Synthesizer auf Tastenanschläge.
Ich hoffe, dass der Betrieb der Schaltung ohne Erklärung klar ist. Ich stelle nur fest, dass:
- Elemente des K1533LN2-Chips verfügen über einen Ausgang vom Typ „Open Collector“, der ohne externe Last nicht funktioniert.
- Der Kondensator C1 ist so nah wie möglich an die Leistungsklemmen DD1 angeschlossen.
- Das Geflecht des Kabels, das zum „MIDI IN“ -Anschluss des Synthesizers führt, ist nur mit dem gemeinsamen Kabel des Adapters verbunden.
- Das Geflecht des Kabels, das zum MIDI OUT-Anschluss des Synthesizers führt, ist nur mit Klemme 2 des Anschlusses verbunden.
Software
Als nächstes wurde die folgende Software auf dem Computer installiert:
- VCP-Treiber für CP2102 .
- Hilfspaket zur Konfiguration von CP2102 .
- MIDI-Port-Emulator Hairless MIDI <-> Serial Bridge von Angus Gratton.
- MIDI Virtual Cord LoopMIDI von Tobias Erichsen.
- MIDI Editor Anvil Studio.
Dann wurden zwei Kabel in loopMIDI erstellt - "Synthesizer" und "Keyboard":

Um den MIDI-Editor an die MIDI IN-Synthesizer-Buchse anzuschließen, wurde das Synthesizer-Kabel zwischen dem Anvil Studio-Ausgang und dem MIDI-Port-Emulator-Eingang angeschlossen.
Um den MIDI-Editor mit dem MIDI OUT-Synthesizer-Anschluss zu verbinden, wurde ein Keyboard-Kabel zwischen dem Ausgang des MIDI-Port-Emulators und dem Anvil Studio-Eingang angeschlossen.


Der letzte und sehr wichtige Schritt beim Einrichten der Software war das Festlegen der CP2102-Bitrate auf 31.250 Bit / s anstelle von 38.400 Bit / s:

Nachdem Sie die Geschwindigkeit eingestellt haben, müssen Sie auf die Schaltfläche „Set Set Configuration“ (Konfiguration einstellen) klicken. Wählen Sie dann im Geräte-Manager und in der haarlosen MIDI <-> Serial Bridge in den Einstellungen für die Kommunikationsgeschwindigkeit des UART CP2102-COM-Ports 38400 aus.
Kurze Zusammenfassung
Infolgedessen erhielt der MIDI-Editor von Anvil Studio einen Kommunikationskanal mit dem Yamaha PSR-550-Synthesizer. Kinder lernten begeistert, wie man mit einem MIDI-Editor arbeitet. Ich habe wieder Ruhe gefunden.
PS Hier wurde erläutert, wie die Geschwindigkeit für den PL2303 auf 31.250 Bit / s anstelle von 38.400 Bit / s eingestellt wird.
PPS Wie man die Geschwindigkeit für CH341 auf 31.250 Bit / s anstelle von 38.400 Bit / s einstellt, ist nirgends zu finden.