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!
Erhöhe mal R11 von 470R auf 4.7k und schaue ob es dann besser wird.
Oliver R. schrieb: > Erhöhe mal R11 von 470R auf 4.7k und schaue ob es dann besser wird. Teste ich später mal. Ich habe noch einen Versuch vergessen anzugeben: R8 von 220 auf 150 Ohm - leichte Verbesserung. R8 von 150 auf 56 Ohm - keine Änderung. Ich glaub wenn ich noch weiter herunter gehe muss ich mich nicht wundern wenn ich die Optos in den Halbleiterhimmel schicke.
:
Bearbeitet durch User
https://www.vishay.com/docs/83673/sfh618a.pdf https://www.alldatasheet.com/view.jsp?Searchword=PC817 Der Optokopplerausgang kann >50 mA, ich denke. es ist eher ein Masseproblem.
:
Bearbeitet durch User
Mit 470R für R11 fliessen mehr als 10mA wenn der Ausgang auf GND geht. Das ist viel zu viel für so eine Anwendung, 1mA reichen locker, daher auch mein Vorschlag mit den 4.7k. Falls wirklich 10mA fliessen sollen, muss auch der Eingangsstrom entsprechend hoch sein, weil der Optokoppler nur ein begrenztes Übertragungsverhältnis hat. Diesen hohen Strom wird aber dein angeschlossenes MIDI-Gerät am Ausgang vermutlich nicht liefern, egal wie niedrig du R8 machst.
Oliver R. schrieb: > Mit 470R für R11 fliessen mehr als 10mA wenn der Ausgang auf GND geht. > Das ist viel zu viel für so eine Anwendung, 1mA reichen locker, daher > auch mein Vorschlag mit den 4.7k. > > Falls wirklich 10mA fliessen sollen, muss auch der Eingangsstrom > entsprechend hoch sein, weil der Optokoppler nur ein begrenztes > Übertragungsverhältnis hat. Diesen hohen Strom wird aber dein > angeschlossenes MIDI-Gerät am Ausgang vermutlich nicht liefern, egal wie > niedrig du R8 machst. Ergibt Sinn. Den 470 Ohm Widerstand habe ich ohne nachzudenken von einer Schaltung mit CNY-17 Opto übernommen...
Oliver R. schrieb: > egal wie niedrig du R8 machst. R8 kann dann sogar noch auf locker 470R erhöht werden. Dem 74LS03 genügen am Eingang die 4k7, weil es die LS-Variante ist. Die verzehnfachung von R11 ist die richtige Maßnahme und das Layout muss dafür nicht geändert werden.
Optokoppler mit Fototransistor sind einfach zu lahm für MIDI (31kHz). Du brauchst schnelle Optokoppler, z.B. 6N138. Das CTR des SFH618A-2 ist außerdem zu gering (63%). Am Eingang hast Du 660R, am Ausgang 470R, d.h. Du brauchst ein CTR>210%.
Der klassische MIDI-Optokoppler ist 6N137 oder 6N138. Die haben empfängerseitig eine Verstärkerstufe und liefern saubere Logikpegel.
Soul E. schrieb: > Der klassische MIDI-Optokoppler ist 6N137 oder 6N138. Die haben > empfängerseitig eine Verstärkerstufe und liefern saubere Logikpegel. Stimmt. Im MIDI Specsheet ist er ebenfalls beschrieben. https://www.midi.org/specifications-old/item/midi-din-electrical-specification Die Erstellung des ersten Interfaces ist knapp ein Jahr her. Hab mich da wohl an irgendein Tutorial angelehnt, welches eher suboptimal war. Das nächste Interface wird mit 6N138 gebaut. Danke für die Infos.
Christoph db1uq K. schrieb: > Der Optokopplerausgang kann >50 mA, ich denke. es ist eher ein > Masseproblem. Der kann aber nur 50 mA liefern, wenn seine LED mit 80 mA bestromt wird. Der CTR beträgt nämlich 63 bis 125 (und sinkt im Laufe der Zeit).
Peter D. schrieb: > Optokoppler mit Fototransistor sind einfach zu lahm für MIDI (31kHz). Hat bei mir in den 90er Jahren mit einem CNY17 immer problemlos funktioniert. Warum sollte das heute anders sein? Ui, ich sehe gerade, dass der SFH618 viel langsamer ist, als der alte CNY17. Das ist ja eine Überraschung.
Ich setze übrigens den EL817 ein. (Hätte ich mal vorher genauer werden müssen. Entschuldigt) Ich muss später zuhause nachschauen welche Version genau. Reichelt gibt mal wieder in der Bestellung nicht an welche geliefert wurde... Seine "Cutoff-Frequency" ist allerdings bei 80kHz. Und Sollte es Version "C" sein hat dieser einen CTR Wert von 200-400%
:
Bearbeitet durch User
Steve van de Grens schrieb: > Ui, ich sehe gerade, dass der SFH618 viel langsamer ist, als der alte > CNY17. Das ist ja eine Überraschung. Andere Messbedingungen! Die Dinger sind gleich lahm.
Maik S. schrieb: > Seine "Cutoff-Frequency" ist allerdings bei 80kHz. Wenn er nicht saturiert (VCE = 5 V), aber genau das brauchst du für digitale Signale. > Das nächste Interface wird mit 6N138 gebaut. Siehe auch https://www.mikrocontroller.net/articles/MIDI#Empf%C3%A4nger.
:
Bearbeitet durch User
H. H. schrieb: > Andere Messbedingungen! Die Dinger sind gleich lahm. So ist es. Was kaum einer beachtet, die Schaltzeiten sind für 100Ω angegeben. Dann hat man aber keinen Logikausgang mehr.
H. H. schrieb: > Andere Messbedingungen! Die Dinger sind gleich lahm. Für Maik, falls es nicht schon bekannt war: Je hochohmiger der Arbeitswiderstand (R11) ist, umso langsamer der Optokoppler. Deswegen kann man es mit allzu viel Ohm auch versauen. Ich würde dennoch auch erstmal 4,7 kΩ versuchen, wie besprochen.
Steve van de Grens schrieb: > Hat bei mir in den 90er Jahren mit einem CNY17 immer problemlos > funktioniert. Warum sollte das heute anders sein? Man kann einen Optokopppler bezüglich Geschwindigkeit und CTR bis zur Grenze ausknautschen. Aber zuverlässig und nachbausicher ist was anderes.
Welchen Grund gibt es eigentlich, dass Pin 1 am Eingang in den Schaltungen hier immer mit Pin 4 verbunden ist? Das sehe ich so zum ersten Mal...
Das stammt aus einem anderen Synthesizer. Hier habe ich mich ursprünglich an seine MIDI Schaltung angelehnt. Da aber eigentlich Pin 4 genutzt wird statt Pin 1, ich aber unsicher war was jetzt wirklich richtig ist, habe ich einfach beide Pins angeschlossen. Stört ja nicht.
> Stört ja nicht.
... solange nicht der/die nächste hin geht, den gut dokumentierten
Standard ignoriert und unbelegte Pins einfach an GND anschließt ;-)
Sidenote: MIDI ist übrigens eine 5 mA Stromschleife, daher spielen
Spannungspegel hier nur eine untergeordnete Rolle (zumindest sollten sie
dies, wenn Sender und Empfänger ordentlich implementiert sind). Sich mit
eigenen Implementierungen nicht an die standardisierten 5 mA zu halten
(z.B. zu viel Strom zu erwarten) birgt ebenfalls das Risiko für
Inkompatibilität.
:
Bearbeitet durch User
Maik S. schrieb: > Das stammt aus einem anderen Synthesizer. Hier habe ich mich > ursprünglich an seine MIDI Schaltung angelehnt. Da aber eigentlich Pin 4 > genutzt wird statt Pin 1, ich aber unsicher war was jetzt wirklich > richtig ist, habe ich einfach beide Pins angeschlossen. Stört ja nicht. Einmal ist bei MIDI die Frage, ob man auch einen OUTPUt braucht, weil die meisten DIY-Geräte Empfänger sind andermal ist es offen, ob die Abschirmung auf Masse muss. Letzteres nur Sender, würde ich sagen. MIDI läuft über eine Stromschleife, um die Massenproblme etwas zu lindern. Nachtrag: Gerade für den Arduino gibt es doch meines Wissens eine fertige MIDI-Platine aus der Bucht?
Maik S. schrieb: > Das nächste Interface wird mit 6N138 gebaut. Danke für die Infos. Ich habe gute Erfahrung mit PC900 von Sharp und mit H11L1 von Isocom gemacht. Zum Unterschied von 6N138 haben beide logischen Ausgang mit Hysteresis.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.