Universeller MIDI Prozessor mit Atmel ATMega32
Matthias Püski
Diese Projekt beschreibt den Aufbau eines MIDI Prozessors, der in der Lage ist, Midi Daten in Echtzeit zu transformieren. Hierzu wird das MIDI Signal durch den Prozessor durchgeschliffen, die MIDI Messages decodiert, verändert und anschliessend wieder als MIDI ausgegeben.
Funktionen
- Noten transponieren
- Simple Arpeggios basierend auf dem gespielten Akkord erzeugen
- Eingabe Noten auf mehreren Kanälen gleichzeitig ausgeben
- Keyboard Split auf einer beliebigen Note.
- MIDI Monitoring (Anzeige der Note, Anschlagsstärke, Kanal und Controllernummer)
Schaltungsbeschreibung
Kern der Schaltung bildet ein Atmel ATMega32. Dieser erfüllt in dieser Schaltung zwei Funktionen, zum Einen ist er für die Verarbeitung der MIDI Funktionen verantwortlich, zum Anderen dient er zu Ansteuerung des LC-Displays. In diesem Fall handelt es sich um ein HD44780 kompatibles Display. Das MIDI Signal wird über den eingebauten USART auf PIN PD0 des ATMega abgenommen und mit der USART Bibliothek von Peter Fleury decodiert. Das MIDI Signal ist im Grunde nichts anderes als ein gewöhnliches serielles Digitalsignal, dadurch kann die Bibliothek ohne Änderungen verwendet werden, lediglich die Baudrate des Ports muss für den MIDI-Betrieb mit 31,250kHz angepasst werden
Die eigentliche Verarbeitung der MIDI Daten erfolgt dann über das C-Programm, welches auf dem Controller läuft, doch dazu später mehr. Pin PD1 gibt das transformierte MIDI Signal wiederum über den eingebauten USART aus. Diese Schaltung enthält noch eine I2C Ansteuerung, auf die wir später noch zu sprechen kommen werden. Pin PA0-PA7 dienen zu Ansteuerung des LC-Displays im 8-Bit Modus. Pin PC2-PC4 repräsentieren die Steuerleitungen des Diplays RS,RW und E. PD2-PD7 sind über Pull-Up Widerstände an VCC gelegt und sind die Eingänge für den Drehencoder und die Buttons der Bedienplatine. Der ISP Anschluss über JP1 ist ein Standard ISP Anschluss für die ISP Programmierung der 8-Bit ATMega Familie. JP7 ist derzeit frei belegbar und opional. Der ATMega wird mit dem internen Oszillator mit 1MHz Taktfrequenz betrieben, somit ist kein externer Quarz erforderlich.
Die eigentliche Verarbeitung der MIDI Daten erfolgt dann über das C-Programm, welches auf dem Controller läuft, doch dazu später mehr. Pin PD1 gibt das transformierte MIDI Signal wiederum über den eingebauten USART aus. Diese Schaltung enthält noch eine I2C Ansteuerung, auf die wir später noch zu sprechen kommen werden. Pin PA0-PA7 dienen zu Ansteuerung des LC-Displays im 8-Bit Modus. Pin PC2-PC4 repräsentieren die Steuerleitungen des Diplays RS,RW und E. PD2-PD7 sind über Pull-Up Widerstände an VCC gelegt und sind die Eingänge für den Drehencoder und die Buttons der Bedienplatine. Der ISP Anschluss über JP1 ist ein Standard ISP Anschluss für die ISP Programmierung der 8-Bit ATMega Familie. JP7 ist derzeit frei belegbar und opional. Der ATMega wird mit dem internen Oszillator mit 1MHz Taktfrequenz betrieben, somit ist kein externer Quarz erforderlich.
Platinenaufbau

Oberseite
Lötseite
Projektdokumentation wird derzeit noch vervollständigt.
Letzte Änderung : 08.01.2012 18:51 von Matthias Pueski
