Forum: Mikrocontroller und Digitale Elektronik Anfängerfrage MIDI Optokoppler Invertierung


von trenner (Gast)


Lesenswert?

Guten Tag,

ich habe eine Frage zu folgender Schaltung:

http://www.wiesolator.de/index.php?area=Musik&topic=MIDI-Einstieg&stopic=MIDI%20und%20AVR

Warum ist hier der Optokopplerausgang, der mit TX des Atmega verbunden 
ist, invertiert? Sind dann die Zeichen am UART nicht auch invertiert?

Beste Grüße

von Fred S. (kogitsune)


Lesenswert?

Master ("von UART") HIGH: kein Strom in der Schleife, die den Master mit 
dem Optokoppler verbindet. Also "An UART" beim Slave auch HIGH.
Master ("von UART") LOW: Strom fließt durch die Schleife, LED im 
Optokoppler leuchtet, Phototransistor durchgesteuert, "An UART" LOW.

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

trenner schrieb:

>

Eine Midi Schnittstelle funktioniert prinzipiell ähnlich einer regulären 
RS232 (als nicht der TTL-Variante). D.h. der Ruhepegel auf der Leitung 
ist High und wenn ein 1 Bit ausgegeben werden soll, wird die Leitung auf 
Low gezogen.

Bei einer regulären RS232 wäre Highpegel +12V und LowPegel -12V.

Midi an sich verwendet ja eine Stromschnittstelle, aber das Prinzip ist 
im Grunde immer noch dasselbe: Ruhepegel ist der 'High-Zustand', in dem 
Strom fliesst. Ein 1 Bit wird dadurch ausgegeben, das der 'Low-Zustand' 
hergestellt wird, in dem kein Strom fliesst.

Das gilt in Bezug auf die Midi-Leitung

Am Mega ist die Sache aber gerade anders rum. Der hat TTL-RS232. D.h. im 
Ruhezustand ist der Pin auf 0 und ein 1 Bit wird ausgegeben, indem der 
Pin auf 1 gezogen wird.

Also genau anders rum.

Und deshalb muss invertiert werden.

> Sind dann die Zeichen am UART nicht auch invertiert?
Auf dem Kabel: ja, so könnte man das sagen.

Auf der Empfängerseite macht ja dann die Optokoppler Beschaltung mit dem 
Pullup diese invertierte Sicht wieder rückgängig.

Solange man nur 2 AVR miteinander verbinden will, könnte man auch ohne 
INvertierung auskommen, denn dann hat man ja Sender und Empfänger unter 
Kontrolle. Nur, wenn man was allgemeines will und sich an den Standard 
hält, dann muss man eben nach dessen Spielregeln spiegelen. Dafür kann 
man dann aber auch andere MIDI Geräte anschliessen. Denn: die Situation 
am Kabel ist es ja, die vom Standard vorgeschrieben wird. Alles andere 
kann ja ein Standard nicht definieren, weil ja keiner sagt, wie die 
Situation nach dem Kabel dann in meiner Elektronik weiter geht.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Karl Heinz schrieb:
> Midi an sich verwendet ja eine Stromschnittstelle, aber das Prinzip ist
> im Grunde immer noch dasselbe: Ruhepegel ist der 'High-Zustand', in dem
> Strom fliesst. Ein 1 Bit wird dadurch ausgegeben, das der 'Low-Zustand'
> hergestellt wird, in dem kein Strom fliesst.

Genau das ist falsch. Der Ruhepegel bei MIDI ist zwar HIGH, aber es 
fließt in dem Moment kein Strom durch die MIDI-Leitungen, da diese 
zwischen Treiberausgang und VCC mit jeweils einem Widerstand in Serie 
verschaltet sind. Der Treiber gibt also High aus und das entspricht VCC: 
es fließt kein Strom. Bei Low am Treiber hingegen fließt Strom über das 
Kabel und die LED des Optokopplers am Empfänger nach VCC. Schließt man 
eine normale LED polrichtig an eine MIDI-OUT Buchse, kann man also die 
LOW-Pulse sehen, bei HIGH ist die LED aus.

Karl Heinz schrieb:
> Am Mega ist die Sache aber gerade anders rum. Der hat TTL-RS232. D.h. im
> Ruhezustand ist der Pin auf 0

Auch falsch. Die UART des ATMEGA gibt im Ruhezustand 1 (High) aus. Das 
Start-Bit ist immer LOW, das Stopp-Bit immer HIGH.

: Bearbeitet durch User
von trenner (Gast)


Lesenswert?

Vielen Dank für die Aufklärung!

Knut Ballhause schrieb:
> Genau das ist falsch. Der Ruhepegel bei MIDI ist zwar HIGH, aber es
> fließt in dem Moment kein Strom durch die MIDI-Leitungen, da diese
> zwischen Treiberausgang und VCC mit jeweils einem Widerstand in Serie
> verschaltet sind. Der Treiber gibt also High aus und das entspricht VCC:
> es fließt kein Strom. Bei Low am Treiber hingegen fließt Strom über das
> Kabel und die LED des Optokopplers am Empfänger nach VCC. Schließt man
> eine normale LED polrichtig an eine MIDI-OUT Buchse, kann man also die
> LOW-Pulse sehen, bei HIGH ist die LED aus.
>
> Karl Heinz schrieb:
>> Am Mega ist die Sache aber gerade anders rum. Der hat TTL-RS232. D.h. im
>> Ruhezustand ist der Pin auf 0
>
> Auch falsch. Die UART des ATMEGA gibt im Ruhezustand 1 (High) aus. Das
> Start-Bit ist immer LOW, das Stopp-Bit immer HIGH.

Jetzt habe ich noch eine Frage:

Ich will eine andere Schaltung zwischen einem USB-UART-Modul und einem 
ATMega UART galvanisch trennen, habe zur Zeit aber nur 6N137 Optokoppler 
(invertierend) zur Verfügung. Kann ich die Schaltung mit einer 
Stromschleife und den Widerständen dort auch invertieren oder muss ich 
das mit nem Inverterbaustein machen?

Frohe Feiertage!

von Fred S. (kogitsune)


Lesenswert?

Du beißt Dich sehr am Begriff "(nicht-)invertierend" fest; deshalb habe 
ich dieses Wort meiner ersten Antwort oben vermieden und Dir nur 
gezeigt, dass das Signal am Ende wieder korrekt ist.

Je nach den Eigenschaften der Logikschaltung, die die LED im Optokoppler 
treibt, solltest Du überlegen, dass Du die LED auf zwei Arten betreiben 
kannst:

Ausgang der Logikschaltung an LED-Anode, LED-Kathode an GND  (H an LED: 
LED an)
              ODER

Ausgang der Logikschaltung an LED-Kathode, LED-Anode an + (H an LED: LED 
aus)

Beim 6N137 sind Anode und Kathode der internen LED nicht mit anderen 
Pins verbunden, daher sind beide Wege möglich. Stelle sicher, dass beide 
Möglichkeiten auch zu Deiner Treiberschaltung passen.

von trenner (Gast)


Lesenswert?

Fred S. schrieb:
> Du beißt Dich sehr am Begriff "(nicht-)invertierend" fest; deshalb
> habe
> ich dieses Wort meiner ersten Antwort oben vermieden und Dir nur
> gezeigt, dass das Signal am Ende wieder korrekt ist.
>
> Je nach den Eigenschaften der Logikschaltung, die die LED im Optokoppler
> treibt, solltest Du überlegen, dass Du die LED auf zwei Arten betreiben
> kannst:
>
> Ausgang der Logikschaltung an LED-Anode, LED-Kathode an GND  (H an LED:
> LED an)
>               ODER
>
> Ausgang der Logikschaltung an LED-Kathode, LED-Anode an + (H an LED: LED
> aus)
>
> Beim 6N137 sind Anode und Kathode der internen LED nicht mit anderen
> Pins verbunden, daher sind beide Wege möglich. Stelle sicher, dass beide
> Möglichkeiten auch zu Deiner Treiberschaltung passen.

Ah, vielen Dank! Jetzt wird mir einiges klar. Hat das denn eigentlich 
einen Grund, dass in der MIDI Schaltung mehrere 220 Ohm Widerstände 
eingebaut sind, oder könnte man nicht einfach nur einen 680 Ohm 
WIderstand bspw. einbauen?

Ich möchte das ganze von einem CP2102 aus ansteuern. Ist das bei jedem 
handelsüblichen Chip möglich, dass Strom in den Ausgang fließt (mit 
Widerstand natürlich zur Strombegrenzung)? Habe ich eigentlich noch 
nirgends vorher gesehen, kann ich das z.B. mit einem ATMega immer so 
machen oder gibts da was zu beachten?

von Fred S. (kogitsune)


Lesenswert?

trenner schrieb:
> Jetzt wird mir einiges klar. Hat das denn eigentlich
> einen Grund, dass in der MIDI Schaltung mehrere 220 Ohm Widerstände
> eingebaut sind, oder könnte man nicht einfach nur einen 680 Ohm
> WIderstand bspw. einbauen?
Wenn Du MIDI-kompatible Komponenten bauen willst, musst Du Dich nach 
http://www.midi.org/techspecs/electrispec.php richten. Falls das ganze 
"fest verdrahtet" ist (nur ein Sender und ein Empfänger, die nie durch 
andere Sender bzw. Empfänger ersetzt werden, kannst Du machen, was Du 
willst, wenn es nur funktioniert...).

> Ist das bei jedem handelsüblichen Chip möglich, dass Strom in den
> Ausgang fließt (mit Widerstand natürlich zur Strombegrenzung)? Habe
> ich eigentlich noch nirgends vorher gesehen, kann ich das z.B. mit einem > 
ATMega immer so machen oder gibts da was zu beachten?
S.o.: wenn MIDI-Kompatibilität erforderlich ist, dann richte Dich nach 
dem Standard. Die Datenblätter der Controller geben Dir an, welchen 
Strom die Ausgänge gegen Masse bzw. gegen + liefern könnten (heute meist 
identische Ströme, früher oft gegen + mehr als gegen Masse). Auch der 
CP2102, den ich persönlich nicht kenne, hat ein Datenblatt.

Wenn Du weitere Fragen hast, spezifiziere bitte ganz klar (mit 
mindestens einem Blockschaltbild -- Handskizze reicht), welche 
Komponenten welche Optokoppler ansteuern sollen, ob eine mit dem dem 
Standard-kompatible MIDI-Schleife nötig ist usw.

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.