Hallo, würde gerne die Ansteuerung eines Midi-Expanders zunächst mal testweise mit einem 89C2051 (später mit AtMega32 o.ä.) realisieren. Fürs erste würde es reichen, dem Expander ein oder zwei definierte Töne zu entlocken. Das Testprogramm soll übrigens in Bascom geschrieben werden (ich weiß, es gibt programmiertechnisch gelberes vom Ei ;)). Weil ich nicht grade ein grosser Midi-Experte bin, habe ich im Vorfeld schon mal allerlei Beiträge zum Thema gelesen. Wenn ich das jetzt richtig verstanden habe, muss man folgendes machen: hardwaremässig: TXT über einen 220R-Widerstand mit Pin4 und +5V ebenfalls über 220R mit Pin5 des Expanders verbinden (bisweilen findet man auch andere Angaben und manche empfehlen hier die Verwendung eines Optokopplers) softwaremässig: Die UART Schnittstelle auf 31250 baud einstellen und per "Seriell-Out"-Befehl die entsprechenden Midi-Befehle z.B. als Hex-Codes ausgeben. Weiß jemand, ob der Ansatz so weit ok ist? Viele Grüsse, Daniel
Ein Optokoppler im Eingang eines jeden MIDI-Gerätes ist Pflicht. Der Ausgang bilded sich aus einer Stromschleife mit den von Dir erwähnten zwei Widerständen zwischen Ausgang des Controllers und +5V. Zahlreiche Schaltungen dazu befinden sich im Netz. Das MIDI-Format ist ein simples UART 8D1SnP mit 31250Baud. Die Befehle teilen sich in ein Statusbyte mit gesetztem 7. Bit (MSB) und (mehrere) Datenbyte(s) mit gelöschtem 7. Bit. Viele MIDI-Befehle sind 3-Byte Befehle, zum Beispiel NoteOn mit Kanal im ersten Byte, Notennummer im 2. Byte und Anschlagstärke im 3. Byte.
Da du nur einen MIDI Ausgang benötigst brauchst du keinen Optokoppler (der ist nur am Eingang erforderlich). Angenommen der Expander empfängt auf Kanal 1, so wird z.B. mit den 3 gesendeten Bytes: $90, $3C, $7F ein Ton eingeschaltet, und mit: $80, $3C, $7F wieder abgeschaltet. Andi
schau mal auf www.ucapps.de - da dürfte so ziemlich alles zu finden sein. gruß
Danke für die schnelle Antwort! Habe jetzt ein bisschen recherchiert und so allerlei zum Thema Midi-Eingang und Optokoppler gefunden, aber leider nichts 100%ig verwertbares. Wie ich das verstehe, kann man den Optokoppler auch weglassen, wenn man die Midi-Leitung einer Soundkarte ansteuert (hilft hier wohl nicht weiter). Bei mir soll zunächst zum Ausprobieren ein altes Roland Keyboard JW-50 über Midi-In angesteuert werden (Diodenstecker). Der Expander selber ist bis jetzt noch nicht einsatzbereit. meine Vermutung: TXT über 220R auf Optokoppler-In gegen Masse, Optokoppler-Out auf Pin5 Keyboard gegen Masse, ausserdem +5V über 220R auf Pin4, ist das so korrekt??? (ausserdem Schutzdiode mit Anode von Masse zum OpKo-Eingang) Hat vielleicht jemand einen link für die korrekte Beschaltung zur Hand? Wenn man eine Note mit folgenden Werten übermitteln möchte ( NoteOn), würde das dann so aussehen: (?) Kanal: 3 Notennummer: 57 Anschlagsstärke: 102 1. Byte: 3 + 128 = 131 2.Byte: 57 + 0 = 57 3.Byte: 102 + 0 = 102 (0 bedeutet 7.Bit "0") Und wie übermittlet man den Befehl NoteOff? (2. Byte = Notennummer, 3. Byte=Ausklanggeschwindigkeit) Irgendwo muß ja im Statusbyte mit den unbenutzten Bits mitgeteilt werden, um welchen Befehl es sich handelt, oder reicht der erneute Aufruf der gleichen Notennummer dafür aus?
hupps, mein letztes Posting hat sich jetzt mit den beiden anderen Antworten überschnitten... Also wenn ich das Roland JW-50 direkt ansteuere, brauche ich doch keinen Optokoppler??? Ok, dann werd ich gleich mal rauchenden Kopfes bei www.ucapps.de nachschauen!
Daniel C. wrote: > Also wenn ich das Roland JW-50 direkt ansteuere, brauche ich doch keinen > Optokoppler??? doch, denn die optokoppler dienen der galvanischen entkopplung der geräte (für audiogeräte besonders wichtig, zb wegen brummschleifen). bei midi handelt es sich um eine schnittstelle, bestehend aus zwei stromschleifen, die spannungspegel sind also nicht definiert. um kein risiko einzugehen solltest du den einen popligen optokoppler ruhig investieren. tabellen zu den midicodes findest du mit gurgel massenhaft! http://www.midimountain.com/midi/midi_status.htm
Hey, super, midicodemässig alles klar! uC ist auch vorbereitet, jetzt bleibt eigentlich nur noch die Frage, wie der Optokoppler zwischen Platine und Keyboard geschaltet wird. Hm, was sind denn Stromschleifen genau??? Klar, es fließen zwei Ströme, einer pro Gerät, und beide sind nur über den OpKo verbunden. Was wäre denn, wenn das Keyboard schon einen Optokoppler eingebaut hätte? Würde dann ein vorgeschalteter nicht stören? Das kann man doch bestimmt mit einem Multimeter ausmessen, ob da eine "LED" hinter dem Eingang ist, oder nicht...
Daniel C. wrote: > Was wäre denn, wenn das Keyboard schon einen Optokoppler eingebaut > hätte? Würde dann ein vorgeschalteter nicht stören? Das kann man doch > bestimmt mit einem Multimeter ausmessen, ob da eine "LED" hinter dem > Eingang ist, oder nicht... vielleicht solltest du dich mit den dokumentationen auseinandersetzen, bevor du da irgendwas zusammenfriemelst. natürlich hat dei keyboard schon einen optokoppler und zwar im eingang, das ist ja der sinn der entkopplung. jedes midigerät hat einen optokoppler im eingang. der ausgang des midigerätes liefert bei high-pegel einen strom, der den optokoppler im eingang des nächsten gerätes steuert. damit sind beide geräte potentialmässig entkoppelt. schau mal zb hier http://de.wikipedia.org/wiki/Musical_Instrument_Digital_Interface
Wie gesagt, der Optokoppler befindet sich jeweils am Eingang. Du hast aber einen Ausgang, der den Eingang des Expanders ansteuert. Da brauchst du nur die beiden Widerstände. So wie du es beschreibst ist es schon richtig, nur ob Pin 4 und 5 so stimmen (oder umgekehrt) müsste ich auch nachschauen. Aber das merkst du schnell... Note ON: 144 + Kanal, Tastennummer, Anschlagstärke NoteOff: 128 + Kanal, Tastennummer, 64 (Kanal jeweils 0..15, für Kanal 3 also: 2 ) Andi
Hier noch das Prinzip der MIDI Verbindung (im angehängten Bild). Eigentlich is es nur eine Leuchtdiode (im Optokoppler) mit Vorwiderstand. Dieser Vorwiderstand wird aus 3 einzelnen 220 Ohm Widerständen gebildet beträgt also 660 Ohm. (5V - 1.7V ) / 660 = 5 mA. Die Aufteilung auf 3 Widerstände ist nur dazu da, um die einzelnen Anschlüsse gegen Kurzschluss und bedingt auch Überspannung zu schützen. Andi
Wow, Leute, vielen Dank für die Tipps! Es hat auf Anhieb geklappt. Das Keyboard hat noch eine antiparallele Schutzdiode vor dem OpKo-Eingang, wie sich beim Ausmessen herausstellte. Ansonsten Anschluss genau wie auf Andis Posting (MidiKonnekt.gif) vorgenommen. Danke!!! Midisteuerungen sind also doch nicht so kompliziert ;O) ! Viele Grüsse an alle, die geschrieben haben und mit Rat und Tat für dieses Vorprojekt zur Seite standen! Dann kommt jetzt als nächstes wohl der Midi-Expander dran... :) Gruss, Daniel
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.