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
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.
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
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.
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
Nimm einen 8Mhz oder einen 4MHz Quarz, das läßt sich genau auf 31250 mit UBRRxH= 0 und UBRRxL= 15 bzw. 7 teilen.
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.
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...
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.
> 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
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.
> 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...
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...
@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 :-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.