mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik nochmal zum Midi-Protokoll


Autor: Chriz Baze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe jetzt endlich die Zeit gefunden eine brauchbare Midi-Referenz 
durchzuarbeiten - hätte da aber trotzdem noch eine Frage, die in den 
Specs des Protokolls nicht beantwortet wurde:

Über die Zeitabstände zwischen den einzelnen Bits und den Bytes ist in 
den Specs nicht zu finden. Nur mit der Info 31,25 kBaud kann ich leider 
nicht viel anfangen. Kann mir da jemand was genaueres sagen ?

THX

Chris

Autor: Chriz Baze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK - hatte was übersehn:

There is 1 start bit, 8 data bits, and 1 stop bit (ie, 10 bits total), 
for a period of 320 microseconds per serial byte.

soll das jetzt heißen zwischen den einzelnen Bytes herrscht 40µs lang 
High-Zustand ? Wie soll das empfangende Gerät denn dann die Bytes 
voneinander trennen ???

Autor: hammer_c (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Chris!

Wie kommst du denn auf die 40µs!? müssten nach meiner Rechnung 64µs 
sein, oder?... ist doch aber im Grunde auch völlig egal, wofür hat man 
denn das UART, daß sich um alles kümmert?

ciao Christian

Autor: Chriz Baze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
stimmt doch ... d.h. die Ausgabedauer eines Bits beträgt 320 / 8 = 40 µs

oder ??? fang jetzt mal nicht an mich zu verwirren lach

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also hier mal richtig:
Bitzeit = 1/bps   1/31250 = 32 µs pro Bit

Datenrahmen MIDI
1 Startbit (immer L)
8 Datenbit
1 Stopbit  (immer H)
macht zusammen 320 µs pro Datenbyte

Autor: Chriz Baze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
achso ist das - dachte Byte steht auch in diesem Fall für 8 Bit ... aber 
es kommt schon hin was du sagst - THX

Grüße

Chris

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Zeitabstände usw. müssen dich nicht interessieren, du musst dem UART 
nur sagen mit wieviel Baud es laufen soll und die richtigen Bytes 
raussenden, dann funktioniert es.

Andreas

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klar bei einem Hardware UART muss ich nur den Taktgenerator (Teiler) und 
die Parameter für Worlänge, evtl. Parity und evtl. Anzahl der Stopbits 
programmieren. Alles weitere erledigt dann die Hardware. Die 
Zeitabstände sind nur für die Programmierung eines eigenen Software-UART 
bzw. als Parameter für die für eigene Berechnungen zur Verfügung 
stehende Zeit von Bedeutung.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.