- LiTime Speicher und Akkus         
Ergebnis 1 bis 8 von 8

Thema: Arduino UNO - Frage zu MIDI, PIN1 (TX)

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    31.03.2014
    Beiträge
    163

    Arduino UNO - Frage zu MIDI, PIN1 (TX)

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    um aus einem UNO MIDI-Signale rauszuschicken, wird DigitalPIN 1 ("TX") verwendet. Ich habe in verschiedenen Anleitungen gelesen und in Videos auch gesehen, dass die meisten User vom TX-PIN entweder direkt oder über einen 220Ohm Widerstand an die MIDI-Out-Buchse gehen, aber sonst keine weiteren Bauteile in diesem Signalweg liegen. Ich habe damit allerdings keinen Erfolg in meiner Anwendung. Es funktioniert nicht. Habe daher mal den TX-PIN gemessen und festgestellt, dass da permanent +5VDC anliegen. Diese 5V liegen an, wenn ich meinen MIDI-Sketch geladen habe, aber sie liegen auch an, wenn ich keinen Sketch, oder z.B. den "Blink"-Sketch o.a. geladen habe. Ich habe daraufhin 2 andere UNO-Boards probiert und dabei genau dasselbe festgestellt. Mit allen 3 Boards kann ich aber ganz "normal" arbeiten. Ich gehe davon aus, dass sie nicht defekt sind, aber alle 3 Boards haben an TX immer 5V anliegen.

    MIDI ist binär, es werden nur 1 und 0 gesendet. Also 5V bzw. 0V. Ist das richtig?

    Wie funktioniert das dann mit dem TX-PIN am UNO in Zusammenhang mit MIDI? Ich habe festgestellt, wenn ich z.B. einen Inverter (z.B. 4007) dazwischen schalte, dann funktioniert mein MIDI-Out. Aber in o.g. Beispielen ist kein Inverter dazwischen. Die MIDI-Out-Buchse liegt dort direkt (bzw. R 220 Ohm) am TX-PIN an, und dennoch scheint es bei denen zu funktionieren. Bei mir nicht.

    Wie ist das zu verstehen? Und ist es "normal", dass der TX-PIN des UNO permanent +5VDC ausgibt?


    Andi

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Hallo Andi,

    um aus einem UNO MIDI-Signale rauszuschicken, wird DigitalPIN 1 ("TX") verwendet. Ich habe in verschiedenen Anleitungen gelesen und in Videos auch gesehen, dass die meisten User vom TX-PIN entweder direkt oder über einen 220Ohm Widerstand an die MIDI-Out-Buchse gehen, aber sonst keine weiteren Bauteile in diesem Signalweg liegen. Ich habe damit allerdings keinen Erfolg in meiner Anwendung. Es funktioniert nicht. Habe daher mal den TX-PIN gemessen und festgestellt, dass da permanent +5VDC anliegen. Diese 5V liegen an, wenn ich meinen MIDI-Sketch geladen habe, aber sie liegen auch an, wenn ich keinen Sketch, oder z.B. den "Blink"-Sketch o.a. geladen habe. Ich habe daraufhin 2 andere UNO-Boards probiert und dabei genau dasselbe festgestellt. Mit allen 3 Boards kann ich aber ganz "normal" arbeiten. Ich gehe davon aus, dass sie nicht defekt sind, aber alle 3 Boards haben an TX immer 5V anliegen.
    Die Arduino-MIDI-Sketches nutzen UART zur Übertragung der MIDI-Befehle. Wenn keine Daten übertragen werden, ist TX immer HIGH, also 5V, das ist also völlig normal.

    MIDI ist binär, es werden nur 1 und 0 gesendet. Also 5V bzw. 0V. Ist das richtig?
    Ja, wie eigentlich alle seriellen Schnittstellen wird mit logischen Pegeln gearbeitet. Die sind in diesem Fall 0V und 5V.

    Wie funktioniert das dann mit dem TX-PIN am UNO in Zusammenhang mit MIDI? Ich habe festgestellt, wenn ich z.B. einen Inverter (z.B. 4007) dazwischen schalte, dann funktioniert mein MIDI-Out. Aber in o.g. Beispielen ist kein Inverter dazwischen. Die MIDI-Out-Buchse liegt dort direkt (bzw. R 220 Ohm) am TX-PIN an, und dennoch scheint es bei denen zu funktionieren. Bei mir nicht.
    Ich schätze, dass deine Geräte unterschiedliche Massepotentiale haben. Meistens werden zur galvanischen Entkopplung Optokoppler eingesetzt.
    Geändert von Sisor (23.03.2019 um 20:05 Uhr)

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.643
    Hallo,

    die 220 Ohm gehen von der 5V-Versorgungsspannung des Arduino auf die Buchse. GND direkt auf die Buchse und TX direkt auf die Buchse. Vielleicht mal so versuchen.
    Geändert von Moppi (24.03.2019 um 10:57 Uhr) Grund: Schaltplan Wikipedia

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.187
    Also Ich kenn die Beschaltung so:

    +5V - 220 Ohm Widerstand - MiDi Buchse Pin 4
    MiDi Buchse Pin 5 - 220 Ohm - TX Pin Controller.

    Die beiden Widerstände begrenzen den Strom und bieten Schutz im Fehlerfall.
    MiDi ist ja im Prinzip eine Stromschleife.
    Das Protokoll ist 31250 Bit/s 8Bit kein Parity 1 Stopp Bit also 8,N,1.
    Lass mal Deinen Arduino ständig das Bitmuster 0x55 senden, das sollte dann auf dem TX Pin erscheinen ( Oszilloskop ).
    Wenn es nicht geht, hast Du entweder den USART falsch initialisiert, oder deine Senderoutine geht nicht.
    Nur mal als Denkanstoss:
    http://m.bareille.free.fr/midithrubox/midithrubox.htm

    So als Tipp:
    Oft werden in den MiDi in Eingängen für Selbstbauer die CNY17 II Optokoppler verbaut.
    Die haben bei mir nie gut funktioniert.
    Ich nehm entweder PC900 oder die 6N137. Damit hatte Ich noch nie Probleme.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    31.03.2014
    Beiträge
    163
    Danke für Eure Antworten.
    Könnte mit GND/Masse zusammenhängen...
    @wkrug: betreffs Optokoppler CNY17. Ich habe einen solchen im Studio seit vielen Jahren störungsfrei in einer Schaltung im Einsatz. Die 6N... sind mir persönlich zu aufwendig in der Beschaltung - obwohl das natürlich kein Argument ist

    Andi

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.187
    betreffs Optokoppler CNY17. Ich habe einen solchen im Studio seit vielen Jahren störungsfrei in einer Schaltung im Einsatz.
    Dann guck Dir mal das Signal am Ausgang des Optokopplers an.
    Anscheinend kommt es bei den CNY 17 Typen auf den Hersteller und das speisende Gerät an.
    Bei mir hat's mit diesen Optokopplern oft nicht funktioniert.

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    31.03.2014
    Beiträge
    163
    Das ist natürlich möglich. Ich habe die CNY17 lediglich als langsame Schalter an einem Transistor dran, um damit eine Lampe zu schalten. Da kommt es nicht auf z.B. Flankensteilheit o.ä. an, lediglich 1 oder 0. Bei schnellen MIDI-Signalen kann das u.U. natürlich ganz anders sein.
    Danke für den Hinweis. Bei MIDI-Schalten ist mir aufgefallen, dass da eigentlich (fast?) immer der 6N135 genommen wird. Das wird sicher nicht unbegründet sein.

    Andi

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Ich habe auch viel mit Midi rumexperimentiert und generell den PC900 verwendet.

    Bei 31250 Bits pro Sekunde hat ein Bit eine Länge von 32 Mikrosekunden

    So habe ich hab mir grad mal die Datenblätter angesehen:
    Der CNY17 ist ein relativ langsamer Optokoppler
    Die Anstiges und Abfallzeiten liegen teils im zweistelligen Mikrosekudenbereich,
    das hängt natürlich auch von der Beschaltung und entscheidend vom Hersteller ab.

    Beim PC900 hingegen liegen die Zeiten weit unter 1 Mikrosekunde.
    Der 6N137 wird sogar mit 10 MBits angegeben, das ist natürlich eine ganz andere Hausnummer.

    Hab grad hier auch einen Artikel gefunden:
    https://www.mikrocontroller.net/topic/141297

    Hier hat man nochmal was "offizielles" auch zu Pinbelegung:
    https://www.midi.org/specifications/...-specification

    Siro
    Geändert von Siro (25.03.2019 um 14:05 Uhr)

Ähnliche Themen

  1. Arduino IDE = C ? => Frage zu Pin0 und Pin1 MEGA32U4 / Leonardo
    Von PsiQ im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 12.07.2013, 12:51
  2. Frage zu Arduino Nano
    Von Ratzfatz78 im Forum Arduino -Plattform
    Antworten: 1
    Letzter Beitrag: 18.04.2011, 12:42
  3. Arduino Frage
    Von tortelini66 im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 9
    Letzter Beitrag: 26.11.2010, 18:35
  4. pin1 +5V(150mA) pin2 -5V(100mA) ...hilfe
    Von Schweiger im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 11.08.2005, 21:04
  5. möglich: pin1 invertiert pin2?
    Von harryup im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 11.11.2004, 11:33

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiTime Speicher und Akkus