Ich hoffe, jemand hier im Forum beschäftigt sich
Zwecks Musikmachereien auch mit dem RasPi.
Ich habe mir mit einem 6N137 Optokoppler einen MIDI Eingang
an den UART-RX Pin (Steckerleiste: Pin#10) eines Raspi 3 gebaut.
Die Ausgangsseite des 6N137 wird mit der 5V Boardspannung des Raspi betrieben.
Da es sich beim Ausgang dieses Optokopplers, wie bei den anderen typischen MIDI Kandidaten,
um einen offenen Kollektor Ausgang handelt
und die Eingänge des Raspi nicht 5V tollerant sein sollen,
habe ich den mit einem Pullup von 4K7 auf die nominellen 3,3V
(Pin#2 der Steckerleiste) hochgezogen
In der /boot/config.txt habe ich dazu folgende Einträge,
nach Vorlage: https://zuzebox.wordpress.com/tag/midi/ gemacht,
um die Baudrate anzupassen:
# Enables the UART. It isn’t strictly necessary
# when combined with pi3-miniuart-bt:
enable_uart=1
# Reassigns the weaker UART (ttyS0) for
# Bluetooth and frees ttyAMA0 for our MIDI interface:
dtoverlay=pi3-miniuart-bt
# Using an DT overlay to achieve the same
# UART clock settings as our init_uart_clock etc. trick:
dtoverlay=midi-uart0
Soweit, so mittelprächtig, die Midibyte müßten demnach also
bei oder in ttyAMA0 landen.
Damit habe ich zwar noch weder ein /dev/midi, noch irgendwas,
das sich unter Alsa als MIDI device ansprechen läßt,
aber da wenigstens die Baudrate nun stimmen soll,
könnte ich MIDI Eingaben von meinem MIDI Keyboard mit
cat /dev/ttyAMA0 abhorchen.
In der Tat kommt da auch was.
Leider ist das aber nur Bitsalat, was die Schnittstelle da kommen sieht,
zudem verschluckt sie immer wieder etliche Byte.
Ich habe dann mit meinem Oskar die Signalspannungen
an RX gemessen:
Low liegt bei 0,25V und High liegt bei 3V an RX,
das sollten eigentlich Werte sein, bei denen die UART eindeutige
Highs und Lows erkennen müßte und der Wert für den
externen Pullupwiderstand von 4K7 wäre O.K..
Mir scheint es eher, daß das mit der Baudrate immer noch nicht hinhaut,
oder dem Raspi das MIDI-Datenformat 8n1 nicht genehm ist.
Bin zwischenzeitlich über ein Kommando gestolpert, das die Geschwindigkeit
der UART anzeigen soll, Ausgabe ist folgende:
Das sieht jedenfalls noch astronomisch aus für MIDI und nicht so,
als hätte dieses Overlay "midi-uart0" irgendwas ausgerichtet.
Kommentiere ich das Overlay aus und starte den Raspi neu,
zeigt mir dieses Kommando: frequency(22)=48000000,
also ganze 1000 mehr
Ich bin jedenfalls im Augenblick etwas ratlos
und würde mich freuen, wenn da wer Abhilfe weiß.