mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATmega128 und MIDI


Autor: Luarasi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/97...

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

Autor: Jens Plappert (Firma: Bei mir und dir.) (gravewarrior)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Luarasi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Luarasi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

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

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Luarasi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Luarasi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Travel Rec.
Danke für die Hilfe!

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Analog (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert

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.