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


von sammy (Gast)


Angehängte Dateien:

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

von Chris (Gast)


Lesenswert?

Schon mal am PC mal mit MidiOX getestet?

von sammy (Gast)


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.

von Chris (Gast)


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 ?

von Chris (Gast)


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.

von sammy (Gast)


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

von Chris (Gast)


Lesenswert?

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

von Mano W. (Firma: ---) (manow)


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-AMP-PRO/LX1_LX1PRO_LX112_GER_Rev_D.pdf

von sammy (Gast)


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

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Mano W. (Firma: ---) (manow)


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.
1
  midiSendCC(0, 16, 30);
2
  _delay_ms(1000);
3
  midiSendProgramChange(0, 127);
4
  _delay_ms(1000);
5
  midiSendProgramChange(0,1);
6
  _delay_ms(1000);
7
  midiSendCC(0, 16, 127);
8
    _delay_ms(1000);

von sammy (Gast)


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

von Mano W. (Firma: ---) (manow)


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

von eProfi (Gast)


Lesenswert?

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

von sammy (Gast)


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

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.