Forum: Mikrocontroller und Digitale Elektronik ATmega128 und MIDI


von Luarasi (Gast)


Lesenswert?

Hallo!

Ich habe ein kleines Problem...
Bei meinem Projekt geht es darum eine Musiksoftware auf dem PC über ein 
externen MIDI Controller zu steuern den ich entwickle!
Bei Musiksoftware Reason muss man alle Schiebe- und Drehpotis über die 
Maus programmieren und ich will diese Elemente auf ein Gerät auslagern!

Die Verbindung von PC zum Gerät soll über diesen MIDI/USB Adapter 
erfolgen:
http://www.produktinfo.conrad.com/datenblaetter/975000-999999/994272-an-01-de-USB-MIDIINTERFACE_E-MU_1X1.pdf

An dem Gerät werden also 2 MIDI-Buchsen (DIN5) Platz finden und es 
sollen echte MIDI-Signale rauskommen.

Damit Ihr euch das vielleicht besser vorstellen könnt habe ich ein Bild 
von dem Layout raufgeladen...
http://michel.luarasi.com/Layout.jpg
(Es sind noch lange nicht alle Komponenten wie z.B. die MIDI-Buchsen 
oder die Analog-Multiplexer platziert...)

Ich arbeite mit dem uC ATmega128 und ich habe keine Ahnung wie ich 
MIDI-Signale erzeugen soll...

Könnt Ihr mich vielleicht weiterhelfen? Ich wäre sehr dankbar

MfG
Luarasi

von Jens P. (Gast)


Lesenswert?

Gugg mal zum Beispiel bei Wikipedia unter MIDI, da steht schon einiges.

Kennst du www.uCapps.de? Da gibts das schon als fertiges Projekt was du 
da machen willst.

von Luarasi (Gast)


Lesenswert?

Danke für die schnelle Antwort!
Habe in Wikipedia schon einiges gelesen, aber wurde nicht speziell 
klüger...

Kannst du mir vielleicht den direkten Link schicken von uCapps?

MfG
Luarasi

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


Lesenswert?

MIDI geht ganz easy mit dem UART, 31250 kBaud, 1Startbit, 8Daten, keine 
Parität, 1 Stopbit. Der Ausgang wird jeweils einem Serienwiderstand 220 
Ohm 1x vom Portausgang und 1x nach Vcc angeschlossen (Stromschleife). 
Die MIDI-Spezifikation und das auszugebende Byteformat findest Du im 
Netz.

von Luarasi (Gast)


Lesenswert?

Danke für die sehr Hilfreiche Antwort...

Kurze Frage, wie funktioniert das mit dieser Baudrate?
Für den Clock verwende ich einen Quarz 7.37 MHz und die Baudrate soll 
31250k sein...

Hab im Manual des ATmega128 einiges über CLockGeneration unter Uart 
gefunden, aber ich werde einfach nicht schlau!

Danke und mfG
Luarasi

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


Lesenswert?

Nimm einen 8Mhz oder einen 4MHz Quarz, das läßt sich genau auf 31250 mit 
UBRRxH= 0 und UBRRxL= 15 bzw. 7 teilen.

von Sven P. (Gast)


Lesenswert?

Vorallem nimm einen ATmega8. Der ATmega128 ist für einen Anfänger, wie 
du wohl einer bist (nicht bös gemeint!) viel zu groß. Ganz davon 
abgesehen: auch für dein Vorhaben ist ein ATmega128 schlicht und einfach 
Overkill und viel zu teuer.

von Luarasi (Gast)


Lesenswert?

Hallo!
Mit einem ATmega8 komm ich nicht weit...
Habe 36 Steuerelemente die ich einlesen muss (einige davon werden 
Multiplexed)

Und wir haben alle ATmega-Reihen in der Firma auf Lager!

Aber bitte zurück zur Frage...


Danke...

von Luarasi (Gast)


Lesenswert?

@  Travel Rec.
Danke für die Hilfe!

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


Lesenswert?

Kein Problem. Guck Dir nochmal in Ruhe die Sektion USART im Datenblatt 
an, da steht im Grunde alles drin. Achtung: der ATMEGA128 hat 2 USARTs, 
eines davon auf den SPI-Leitungen. Die Initialisierung und Verwendung 
beider USARTs unterscheidet sich in ASM voneinander, da die Register 
teilweise im erweiterten I/O Bereich liegen und somit mit lds/sts 
angesprochen werden müssen.

von Analog (Gast)


Lesenswert?

> Vorallem nimm einen ATmega8. Der ATmega128 ist für einen Anfänger, wie
>du wohl einer bist (nicht bös gemeint!) viel zu groß. Ganz davon
>abgesehen: auch für dein Vorhaben ist ein ATmega128 schlicht und einfach
>Overkill und viel zu teuer.

völliger Quatsch

von Sven P. (Gast)


Lesenswert?

Luarasi wrote:
> Mit einem ATmega8 komm ich nicht weit...
> Habe 36 Steuerelemente die ich einlesen muss (einige davon werden
> Multiplexed)

Naa, mach mal halblang. Mit einem ATmega8515 (ok, nicht ATmega8, aber 
trotzdem weit vom 128er weg) les ich dir ohne Probleme 32 Potentiometer 
plus 16 Tasten plus 12er-Tastenfeld ein und mach dir dadraus in Echtzeit 
einen Datenstrom mit 250kBit/s. LCD-Display natürlich inklusive.

Für so ein bisschen Abfrage brauch ich doch keinen 128er?!?!?

Und auch wenn Analog das anders sieht: Mit dem ATmega8(515) ist der 
Einstieg leichter als mit dem 128er.

von Mike (Gast)


Lesenswert?

> Naa, mach mal halblang. Mit einem ATmega8515 (ok, nicht ATmega8, aber
> trotzdem weit vom 128er weg) les ich dir ohne Probleme 32 Potentiometer
> plus 16 Tasten plus 12er-Tastenfeld ein und mach dir dadraus in Echtzeit
> einen Datenstrom mit 250kBit/s. LCD-Display natürlich inklusive.

Der OP wollte Potis und Schieberegler abfragen. Von daher würde ich 
einen AVR mit A/D-Wandler empfehlen. Ein ATmega8535 sollte da ganz gut 
passen.

Ein Mega128 ist eigentlich völlig überdimensioniert - aber wenn er den 
schon hat...

von Sven P. (Gast)


Lesenswert?

Mike wrote:
> Der OP wollte Potis und Schieberegler abfragen. Von daher würde ich
> einen AVR mit A/D-Wandler empfehlen. Ein ATmega8535 sollte da ganz gut
> passen.
>
> Ein Mega128 ist eigentlich völlig überdimensioniert - aber wenn er den
> schon hat...

Verzeih, Edith sagt, dass ich eigentlich auch den 8535 (3!) meinte...

von TheMason (Gast)


Lesenswert?

@luarasi

kann mich der meinung der anderen nur anschließen, ein mega128 ist zu 
groß.
würde vielleicht noch nen mega16 empfehlen (da hat man dann noch platz 
für spielereien ala MIDI-LFOs usw.) ist aber auch schon recht groß, aber 
noch nicht zu überdimensioniert.
Das MIDI interface selbst ist kein thema. nimm die schaltung aus der 
wikipedia oder sonstwoher (meist wird der 6n138 verbaut, geht aber auch 
mit anderen optokopplern).
baudrate erzeugen : wie oben schon erwähnt : mit 4,8 oder 16 MHz Quarz 
lässt sich die baudrate von 31250 ganz exakt erzeugen. mit krummen 
quarzen geht es aber auch.  baudratenteiler = (quarzfreuqenz / (16 * 
31250))
Habe am wochenende ein MIDI-Interface für meinen Selbstbau-Synthesizer 
an nen mega drangepömpelt lief (fast) auf anhieb (muß nochmal anderen 
widerstand ausprobieren, das signal ist nicht ganz sauber).

BTW. Mit welchem Programm hast du die Frontplattenzeichnung gemacht ?
Suche z.z. etwas ähnliches für die Frontplatte meines besagten 
Synthesizers.

Schönen Gruß
Rene


PS. Schickes Projekt :-) Vor allem weil man bei Reason so schöne viele 
lustige Knöpfchen hat :-)

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


Lesenswert?


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.