Hallo zusammen,
ich habe nun schon mehrere Schaltungen / Platinen mit Hardware-MIDI aufgebaut und immer wieder sterben diese Projekte am selben Thema: MIDI funktioniert nicht.
Daher habe ich versucht dem ganzen gestern noch einmal etwas auf den Grund zu gehen. Ich sehe auch den Fehler, ich weiß nur nicht wie er verursacht wird.
Aber zu erst einmal von vorne:
Ich erstelle meine Platinen in KiCad und lasse diese bei JLCPCB fertigen. Die Platinen bestücke ich anschließend selber. Mein erstes MIDI Projekt war ein Eurorack MIDI Interface. In der ersten Version hatte ich einen Pinout-Fehler in der MIDI Buchse, daher habe ich die Leiterbahnen durchgekratzt und mit Kupferlackdraht umgeroutet. Dieses MIDI Interface funktioniert! Die definierte Leiterbahnbreite in Kicad ist hierbei 0,4mm bei einem Freiraum von 0,2mm. Den Pinout-Fehler habe ich korrigiert, die Platine neu gelayoutet und schon funktionierte MIDI nicht mehr. Das Projekt wurde erstmal zur Seite gelegt. Nun habe ich ein MIDI Interface für einen Synthesizer als Retro-Fit Lösung erstellt. Ich habe wieder den selben Schaltplan (MIDI) verwendet und schon wieder läuft es nicht. (Na wer hätte das nur erwartet...) Hier habe ich als Leiterbahnbreite ebenfalls 0,4mm mit einem Freiraum von 0,25mm verwendet. GND und Spannungen besitzen eine Leiterbahnbreite von 0,5mm mit einem Freiraum von 0,35mm.
Also ging es tiefer in die Messungen:
Zuerst ist mir aufgefallen, dass beim funktionierenden MIDI Interface die RX und TX LEDs des Arduinos blinken. Warum TX blinkt - keine Ahnung. Aber es funktioniert. Da die Arduinos gesockelt sind nutze ich für beide Eurorack Interfaces den selben Arduino. Ich habe diesen also in Version 2 gesteckt und sah, dass RX nur ganz schwach geblinkt hat. TX hat nicht geblinkt. Beim Synthesizer MIDI Interface ebenfalls. RX blinkt ganz schwach, TX nicht.
Mit einem Oszilloskop (Hameg 204-2 - daher nur ca. Werte) konnte ich dann schon mehr sehen. Hier einmal eine Auflistung der gemessenen Logiklevel:
Funktionierendes Eurorack MIDI Interface:
- HIGH: +5V
- LOW: +1V
Eurorack MIDI Interface 2:
- HIGH: +5V
- LOW: +3,5V
Synthesizer MIDI Interface:
- HIGH: +5V
- LOW: +3,5V
Damit hätten wir den Fehler. +3,5V als "LOW" ist viel zu hoch. Es wird natürlich kein MIDI erkannt. Gemessen habe ich direkt an PIN 4 des Optokopplers und am RX Pin des Arduinos. Etwa das gleiche Bild - vielleicht am Arduino ca. 0,1V weniger als am Opto selber.
Es folgte mein erster Versuch den "schönen" Platinen genau das gleiche anzutun wie dem funktionierenden Interface mit Kuperlackdraht als Korrektur: Verstärkung der Leiterbahnen vor dem Optokoppler. Leider brachte dies keine Änderung.
Versuch Nr. 2 war der Tausch der Optokoppler. Ich habe diese auf den Prototypenplatinen extra gesockelt, daher konnte ich den Opto des funktionierenden Interfaces auf die nicht funktionierenden Platinen stecken: Keine Änderung der Logiklevel.
Ich bin leider nun etwas mit meinem Rat am Ende angekommen, warum sich die Interfaces so verhalten wie sie es tun.
Hättet ihr weitere Ideen woran das liegen könnte / Was ich noch testen könnte?
Viele Grüße!





