Forum: Mikrocontroller und Digitale Elektronik MIDI -> UART Bridge


von Felix (felix508)


Angehängte Dateien:

Lesenswert?

Hallo,

ich versuche gerade eine Adapter-Platine zu bauen mit der man ein 
MIDI-Signal von einem Instrument (in meinem Fall ein Sampling-Keyboard) 
über UART einlesen kann.

Den Schaltplan habe ich im Internet gefunden. Vielfach sind die 
Aufbauten, die man so findet, sehr ähnlich.

Das Problem ist nun leider, dass die Daten, die über die 
UART-Schnittstelle reinkommen völliger Unsinn sind. Manche 
Keyboard-Tasten tun überhaupt nichts, andere tun manchmal was, alles ist 
vollkommen zufällig (selbe Taste tut immer was anderes) und meistens 
kommen nur Null-Bytes (0b00000000) raus.
Mit einem kommerziellen MIDI-USB-Adapterkabel funktioniert das Keyboard. 
Auch von einem kommerziellen MIDI-Player lässt sich über diese Schaltung 
absolut nichts einlesen.

Als Einstellungen für den Serial-Port verwende ich folgendes:
- 31.250 bps
- 8 Datenbits
- 1 Stop-Bit
- keine Parität
- Flow Control deaktiviert

Hat jemand evtl. eine Idee ob die Schaltung grundsätzlich so stimmt?

von S. L. (sldt)


Lesenswert?

Sieht bei mir ähnlich aus (vorausgesetzt, an CN3_1 liegen +5 V an): R2 
hat bei mir 8k2, zusätzlich liegen zwischen U1_7 und U1_5 (also GND) 
47k.

von M.A. S. (mse2)


Lesenswert?

Der Optokoppler ist vielleicht ein bisschen zu langsam. Schau mal ins 
Datenblatt und halte dagegen, wie lang die Bit-Zeit bei 31500 baud ist.
Darlington-Optos sind allgemein nicht die schnellsten.

: Bearbeitet durch User
von S. L. (sldt)


Angehängte Dateien:

Lesenswert?

Nachtrag, vor langer Zeit im Internet gefunden.

von M.A. S. (mse2)


Lesenswert?

S. L. schrieb:
> Sieht bei mir ähnlich aus (vorausgesetzt, an CN3_1 liegen +5 V an): R2
> hat bei mir 8k2, zusätzlich liegen zwischen U1_7 und U1_5 (also GND)
> 47k.
Und bei Dir funktioniert es wie es soll?

@Felix:
Hast Du ein Oszilloskop?

von H. H. (hhinz)


Lesenswert?

Für Bastelei besser einen Digitalkoppler nehmen, z.B. 6N137. Für Serie 
sind die paar 10ct natürlich zu teuer...

von Ingo W. (uebrig) Benutzerseite


Lesenswert?

Eventuell von Pin7 des OK einen Widerstand von einigen zehn Kiloohm nach 
Masse, dann schaltet er schneller aus.

Edit:
ist in dem Bild von
Beitrag "Re: MIDI -> UART Bridge"
auch so dargestellt.

: Bearbeitet durch User
von S. L. (sldt)


Lesenswert?

an Felix:

Falls das unklar sein sollte: die rechte Seite geht natürlich an den 
UART-Port eines uControllers.

von Mario M. (thelonging)


Lesenswert?

S. L. schrieb:
> Nachtrag, vor langer Zeit im Internet gefunden.

Das Bild ist auch im Wikipedia-Artikel zu MIDI. Man beachte auch den 470 
Ohm Kollektor-Widerstand.

von Björn W. (bwieck)


Lesenswert?

Das Signal was rauskommt ist invertiert.

von S. L. (sldt)


Lesenswert?

> Das Signal was rauskommt ist invertiert.

Das hatte ich sagen wollen, und jetzt habe ich auch die Stelle im 
Tietze/Schenk gefunden: "In der RS 232-Norm ... werden die Daten in 
negativer Logik ... übertragen."

: Bearbeitet durch User
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
Noch kein Account? Hier anmelden.