www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Midi Programm Change wird von Midigerät nicht erkannt


Autor: sammy (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich versuche verzweifelt mit einem Atmega8 (sitzt auf einem STK200 
Board, an PORTD1, GND ist die Midischnittstelle angeschlossen -> 5 
poliger Stecker, jeweils mit Widerstand gegen PD1 - Pin 5, GND - Pin 4).

Der Atmega läuft mit 8 Mhz.
Wenn ich das ganze mit 9600 Baud an die serielle Schnittstelle von 
meinem PC anschließe, kann ich die Programchange Befehle korrekt am PC 
sehen.
(z.B. 0xC1 0x7F)
Änder ich nun die Baudrate auf 31500 und schließe das Midiendgerät an 
(ein Behringer VAMP2), ändert sich dort jedoch nichts. Das Ding sollte 
im OMNI-Mode laufen und auf alles hören was kommt...

Habe ich irgendwas beim Midiprotokoll falsch verstanden, muss man 
irgendwas zur Initialisierung schicken, bevor man Programchanges senden 
kann?

Im Anhang mal mein Code.

Vielen Dank für eure Hilfe.
lg
Sammy

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon mal am PC mal mit MidiOX getestet?

Autor: sammy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jein. Ich habe am PC nur die Möglichkeit MIDI per serieller 
Schnittstelle anzuschließen (sonst müßte ich mir da auch erst was 
basteln).
Ich konnte es also nur mit einem Terminalprogramm auslesen.

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>(z.B. 0xC1 0x7F)

Jedenfalls ist das korrekt (Programm Change auf Kanal 1 mit dem Wert 
127)
Korrekte Baudrat ist zwar entgegen einem Text hier 31250, aber im Code 
ist ja der richtige Wert auskommentiert.

Läuft der µC eventuell mit internem Oszillator ? Das kann unter 
Umständen zu einer zu großen Abweichung führen ...

Sicher, das am Behringer-Gerät der Empfangskanal 1 eingestellt ist ?

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch ein häufiger Fehler: Din-Buchse richtig angeschlossen ? Da verdreht 
man schnell mal was, man muss immer genau schauen von welcher Seite aus 
die Buchsen / Steckerbelegung zu sehen ist.

Autor: sammy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich nutze den internen Oscillator, mit 8 Mhz. Allerdings kommt am PC ja 
auch das richtige an, wenn ich dort z.B. mit 9600 Baud übertrage, 
vielleicht sollte ich das am PC mal mit höheren Geschwindigkeiten 
testen.
Das Behringer sollte im  OMNI-Mode laufen, also auf alles hören.
Pinbelegung werde ich auch noch einmal überprüfen.

lg
Sammy

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probier´s eben vorsichthalber nochmal auf internen 1 MHz, das hat bei 
mir immer gut funktioniert ...

Autor: Mano Wee (Firma: ---) (manow)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Der Atmega läuft mit 8 Mhz.
> Wenn ich das ganze mit 9600 Baud an die serielle Schnittstelle von
> meinem PC anschließe, kann ich die Programchange Befehle korrekt am PC
> sehen.

Wieso sendest Du zum PC mit 9600 Bauds und nicht mit 31250 Bauds zum PC?

Du sendest ja nicht nur ProgramChange Befehle. Werden denn die 
ChangeControl Befehle eigentlich erkannt? Die beiden CC-Befehle 
verstellen ja die Lautstärke, sollte also hörbar sein.

V-AMP 2 Bedienungsanleitung: 
http://www.behringerdownload.de/V-AMPIRE_V-AMP2_V-...

Autor: sammy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Mano,

nein, die werden auch nicht erkannt. Das war nur ein verzweifelter 
Versuch...
Zum PC sende ich nicht mit 31250 Baud, weil dieses dumme 
Terminalprogramm nur bestimmte Baudraten kann...

lg
Sammy

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Hardware der seriellen Schnittstelle unterstützt 31250 Baud nicht, 
da alle Baudraten ganzzahlige Brüche von 115200 sein müssen.

Das ist eine Hardwareeinschränkung der PC-UART 8250/16550, bei der der 
Baudratengenerator aus einem 1.8432-MHz-Quarz gespiesen wird, was nicht 
zufällig das 16fache der höchstmöglichen Baudrate von 115200 ist.

31250 Baud sind am PC nur mit modifizierter Hardware oder aber 
USB-Seriell-Bridges möglich, sofern deren Baudratengeneratoren diese 
Rate unterstützen.

Autor: Mano Wee (Firma: ---) (manow)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Die Hardware der seriellen Schnittstelle unterstützt 31250 Baud nicht,
> da alle Baudraten ganzzahlige Brüche von 115200 sein müssen.

Stimmt da war mal was...

> Das Ding sollte im OMNI-Mode laufen und auf alles hören was kommt...

Jetzt habe ich mal schnell die Bedienungsanleitung nach omni durchsucht, 
aber nichts gefunden. Stell mal auf Kanal 1 (also 0) ein, oder probier 
mal alle Kanäle durch beim AVR bzw. beim V-AMP.
  midiSendCC(0, 16, 30);
  _delay_ms(1000);
  midiSendProgramChange(0, 127);
  _delay_ms(1000);
  midiSendProgramChange(0,1);
  _delay_ms(1000);
  midiSendCC(0, 16, 127);
    _delay_ms(1000);

Autor: sammy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Mano Wee,

ich habe jetzt alles mal auf allen 16 Kanälen gesendet und siehe da, es 
tut sich was. Laut Anleitung soll er aber zumindest alles Kanäle 
empfangen.
Nach etwas rumprobieren habe ich rausgefunden, das der nur auf Kanal 3 
reagiert. Typisch Behringer...

Vielen Dank für deine Hilfe,
Sammy

Autor: Mano Wee (Firma: ---) (manow)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Sammy,

finde es bisschen komisch wenn der V-AMP 2 nur auf Kanal 3 reagiert. In 
der Bed.A. steht es zumindest anders drinnen (siehe Punkt 2.1 [8]).

gruß

mano

Autor: eProfi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber viele Rechner haben doch einen 15poligen Game-Port-Stecker, auf dem 
Midi-Signale herausgeführt sind (sie kommen von der Soundkarte).

Autor: sammy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Mano Wee
ja, das wundert mich auch. Ich habe die Anleitung ebenfalls anders 
verstanden. Nunja, ich denke mal, wenn er zumindest auf Kanal 3 
funktioniert, sollte es auch mit anderen Midi Geräten funktionieren.
So viel Vertrauen habe ich in Behringer Hardware nicht... es war nur das 
einzige Midi-Gerät was ich hier liegen hatte.

lg
Sammy

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.