Willkommen in unserer Community

Werde Teil unserer Community und registriere dich jetzt kostenlos ...

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Midi-Keyboard

Dieses Thema im Forum "AVR-Projekte" wurde erstellt von Mikro23, 5. Februar 2017.

  1. Mikro23

    Mikro23 Mitglied

    Registriert seit:
    2. Januar 2017
    Beiträge:
    61
    Zustimmungen:
    4
    Ort:
    Großraum Hannover
    Sprachen:
    C#, Assembler
    Map
    Moin.

    Vor einigen Wochen habe ich im Keller ein Keyboard entdeckt.

    Nachdem ich mir den Formant-Synthesizer von Elektor gebaut hatte, der nur monophon und nicht anschlagsdynamisch war, wollte ich was polyphones und anschlagsdynamisches bauen und hatte mir damals dieses Keyboard gekauft:
    Keyboard.JPG

    Es hat eine Diodenmatrix und Umschaltkontakte für die Anschlagsdynamik.

    Matrix.JPG

    Bald darauf hatte ich einen Atari ST und die erste Version von Cubase, so blieb das Keyboard erst mal liegen.
    Dann kam 1987 ein preiswerter Midi-Expander raus, der Roland MT-32. Damit hatte man an der Midi-Schnittstelle vom Atari schon ein ganzes Orchester. Nur ein Eingabegerät fehlte noch.
    Kurz darauf kam dann noch ein Ensoniq ESQ1 dazu. 8 Kanal polyphon, anschlagsdynamisch, digital/analog Synthesizer mit Wavetable, ähnlich wie 8 Mini-Moogs, nur in einem Gehäuse.

    Das Keyboard wanderte also erstmal in den Keller.
     
  2. Mikro23

    Mikro23 Mitglied

    Registriert seit:
    2. Januar 2017
    Beiträge:
    61
    Zustimmungen:
    4
    Ort:
    Großraum Hannover
    Sprachen:
    C#, Assembler
    Map
    Nun habe ich es wiederentdeckt. Die Kontakte sehen zwar nicht mehr besonders gut aus,
    Kontakte.JPG
    aber nach Durchmessen, gehen sie noch überraschend gut.

    Das ESQ1 steht inzwischen meistens in der Ecke. Das 15 kg Teil jedesmal auf den Ständer zu wuchten, um ab und zu mal 'ne halbe Stunde zu klimpern, unterbleibt meistens.

    Also bauen wir uns doch ein leichtes Midi-Keyboard.
    Mit 'ner über 30 Jahre alten Tastatur.

    Wenn schon alt, dann richtig. Weitestgehend nur Teile verwenden, die hier schon seit Jahren rumfliegen. Stilgerecht wäre dann ja der 68705 gewesen. Das war die EPROM-Version des 6805 µControllers von Motorola.

    68705-1.JPG

    Gab es maskenprogrammiert ab einigen 10.000 Stück, OTP war die billigste, damit wäre die Programmentwicklung aber recht teuer geworden. Die Piggyback-Version war die teuerste, irgendwo habe ich davon auch noch einen in einem Incircuit-Emulator.
    Hier mal ein Blick auf das Innenleben der EPROM-Version:

    68705-2.JPG

    Oben ist das EPROM, rechts unten das RAM und links die CPU und der Rest.
    Schon faszinierend, daß man den Chip durch das Quarz-Fenster direkt sehen kann.
    Hier nochmal ein etwas größerer Ausschnitt:

    68705-3.JPG

    Nur hätte ich dafür einen Atari reaktivieren müssen und hoffen, daß die 20-30 Jahre alten Disketten noch lesbar sind und ein EPROM-Löschgerät besorgen müssen und ...
    und da habe ich mich dann der Einfachheit halber für einen noch nicht ganz so alten mega48 entschieden. Mit dem Flash, den man in wenigen Sekunden neu beschreiben kann, ist das doch eine wesentliche Erleichterung gegenüber den 20 Minuten EPROM löschen, bis man es neu programmieren kann.

    Soweit erstmal, demnächst geht es weiter.
     
  3. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.565
    Zustimmungen:
    29
    Ort:
    Hennigsdorf
    Sprachen:
    BascomAVR, Assembler
    Map
    Weil's Dir so geht wie Hemi, bei dem die Sonne grad nicht scheint?
    Warum eigentlich den 48, und nicht einen vollausgebauten aus der Serie? Sportlicher Ehrgeiz?

    (Hat der Controller schon Alu-Bonddrähte?)
     
  4. TommyB

    TommyB Premium Benutzer

    Registriert seit:
    17. Mai 2010
    Beiträge:
    1.553
    Zustimmungen:
    42
    Ort:
    127.0.0.1 ;)
    Sprachen:
    C#, Assembler, LunaAVR, VB.Net, Python
    Hui, du hast noch ein Roland MT-32? Dann behalt den mal, der ist selbst nach heutigen Standards immer noch top.
    Wer den nicht kennt:
     
  5. Mikro23

    Mikro23 Mitglied

    Registriert seit:
    2. Januar 2017
    Beiträge:
    61
    Zustimmungen:
    4
    Ort:
    Großraum Hannover
    Sprachen:
    C#, Assembler
    Map
    Hat's hier zur Zeit recht wenig. Und wie lange die Sonne zum löschen braucht, weiß ich nicht. Mit Löschgerät dauert jeder Programmierzyklus ca. 'ne halbe Stunde, gegenüber ein paar Sekunden beim Flash und dann müßte ich mir auch noch einen Programmer bauen und nachschauen, ob die Disketten auf denen ich den Cross-Assembler habe überhaupt noch lesbar sind.

    Und außerdem programmiere ich inzwischen auch viel lieber in C ... :p

    Vielleicht gefällt Dir ja der Befehlssatz, ca. 50 Befehle mit bis zu 6 Adressierungsarten.
    6805InstructionSet.png
    Mit einem 8-bit Akku und einem 8-bit Indexregister könntest Du Dich doch mal so richtig austoben. :aetsch:

    Ich fand es etwas sehr umständlich. Der 6809 und 68000 haben mir wesentlich mehr zugesagt, gab es damals aber nur als Prozessor und nicht als Controller. Seit '85 der Atari ST rauskam, programmiere ich fast nur noch in C.

    Gegen Ende der 80er war der 6805 einer der wenigen erschwinglichen Mikrocontroller. Entwicklungssyteme dafür preislich jenseits von Gut und Böse. Da habe ich mir auf dem Atari einen Cross-Assembler in C geschrieben. Ich weiß nicht, ob es inzwischen einen C-Compiler dafür gibt. Selberschreiben wäre mir dann doch zu aufwendig.
    Viele Gründe sprechen für AVR.
    Soviel wie nötig. Für die Tasterabfrage, Midi-Ausgabe und kurze Texte hätte der 48 dicke gereicht. Etwas ausführlichere Texte und die umfangreichen Farbtabellen für die LEDs machten dann einen Wechsel auf den 88 erforderlich. Und falls ich noch mehr einbauen will, ist ja nach oben noch Luft.
    Ob das Alu ist, kann ich Dir auch nicht sagen, nach Gold sieht es jedenfalls nicht aus.
    Das Material sieht bei Tageslicht warm aus, wie Nickel oder Silber. Alu eher kalt, wie Chrom.
     
  6. Mikro23

    Mikro23 Mitglied

    Registriert seit:
    2. Januar 2017
    Beiträge:
    61
    Zustimmungen:
    4
    Ort:
    Großraum Hannover
    Sprachen:
    C#, Assembler
    Map
    Das werde ich tun. Mit einem geeigneten Editor soll man sogar eigene Sounds erstellen können. Die eingebauten haben mir aber bisher gereicht.
     
  7. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.565
    Zustimmungen:
    29
    Ort:
    Hennigsdorf
    Sprachen:
    BascomAVR, Assembler
    Map
    Nee laß mal, ich bleib lieber bei der Harvard-Architektur...
    eben...als Hobby-Programmierer besorg ich mir doch nicht mehrere Ausstattungsvarianten desselben Controllers. Ab dem 168 haste 'ne doppelt so breite IVT.

    Wenn Dich doch noch der Retro-Trip packt, und Du mehr Speicher (UV-EPROM) brauchst, kann ich Dir auch einen AM27C040-155DC oder einen NMC27C64Q-200 überlassen...
    (wobei die Dinger in Auktionshäusern langsam zu'ner Wertanlage zu werden scheinen)
     
  8. Mikro23

    Mikro23 Mitglied

    Registriert seit:
    2. Januar 2017
    Beiträge:
    61
    Zustimmungen:
    4
    Ort:
    Großraum Hannover
    Sprachen:
    C#, Assembler
    Map
    Warum sollte ich mir nicht mal 'ne Stange zum Spielen hinlegen, wenn ich sie grade günstig bekomme? ;)

    Danke, EPROMs habe ich selber noch ein paar Stangen.
    Der 6805 hat knapp 8k EPROM und rund 200 Bytes RAM und man kann keinen externen Speicher anschließen.


    Edit: Fehlerkorrektur
     
    #8 Mikro23, 6. Februar 2017
    Zuletzt bearbeitet: 7. Februar 2017
  9. Mikro23

    Mikro23 Mitglied

    Registriert seit:
    2. Januar 2017
    Beiträge:
    61
    Zustimmungen:
    4
    Ort:
    Großraum Hannover
    Sprachen:
    C#, Assembler
    Map
    Weiter im Text:

    Die Tastatur hat 61 Tasten, die in Gruppen zu je acht Tasten eingeteilt sind, wobei der letzten Gruppe drei Tasten fehlen.
    Die Mittelanschlüsse der Wechseltaster von jeder Gruppe sind über je eine Diode mit der Anode zusammen an einen Pin der Steckerleiste geführt. Die Kathode liegt in Ruhestellung am oberen Kontakt, bei gedrückter Taste am Unteren.
    Die 2 x (64 – 3) Kontakte sind so auf 16 weitere Pins der Steckerleiste geführt, das es eine 16 x 8 Matrix ergibt, d.h. von der 26-poligen Steckerleiste sind 24 Pins belegt. Und man kann gleich noch sechs Einzeltaster für die Bedienung zusammen mit der Matrix abfragen.
    So bietet es sich an, die je 8 oberen und unteren Gruppen mit zwei 74LS138 durchzuschalten und die Tasterzustände über einen 8-bit Port hintereinanderweg in eine 16 x 8 Bit Matrix einzulesen und diese 16 Byte, die alle Informationen über die Tastenzustände enthalten, dann anschließend auszuwerten. Mit einem Chipselect und vier Adressbits für die 138er brauche ich für die gesamte Matrix inklusive der sechs Einzeltaster dreizehn Portpins.
    Matrix1.png
    An allen Kreuzungspunkten sitzen Taster. Um sie zu entkoppelt sind Dioden nötig. Da aber jede Taste einen Wechseltaster hat (ein Öffner und ein Schließer) und daher immer nur einer der beiden Taster geschossen sein kann, reicht für jede Taste eine Diode. Die sechs Einzeltaster hingegen brauchen jeder eine Diode.

    Als Anzeige dient ein LCD. Vor einiger Zeit hatte ich eins mit RGB-Backlight gekauft, nur um mal zu sehen, wie das aussieht, aber bisher noch keine Verwendung dafür gefunden. Wenn die einzelnen Menüpunkte mit verschiedenen Farben hinterlegt werden, kann man sie auf den ersten Blick gut unterscheiden. Dazu noch ein paar DA-Wandler um die LEDs anzusteuern.

    Ein paar Platinenreste, Steckerleisten, Kondensatoren und Widerstände und das Ganze sieht dann so aus:
    PlatineOben.JPG
    Mit 5V Versorgungsspannung ist die Helligkeit der verschiedenfarbigen LEDs doch sehr unterschiedlich, daher verwende ich ein Steckernetzteil mit 7-9V und habe den Spannungsregler für die restliche Schaltung auf die Rückseite des Displays gesetzt, zusammen mit den Stromquellen für die LEDs.

    Ein bißchen Platz für Erweiterungen wäre auf der Hauptplatine auch noch.

    Für das Einzelstück ein Layout zu machen hätte wahrscheinlich länger gedauert, als das Ganze in bewährter Fädeltechnik auszuführen (ganz zu schweigen von Preis und/oder Lieferzeit der Platine).
    PlatineUnten.JPG
    Jetzt fehlt noch ein passendes Gehäuse.
     
  10. Mikro23

    Mikro23 Mitglied

    Registriert seit:
    2. Januar 2017
    Beiträge:
    61
    Zustimmungen:
    4
    Ort:
    Großraum Hannover
    Sprachen:
    C#, Assembler
    Map
    Falls noch jemanden interessiert, wie es weiterging:

    nach zwei Tagen für die Schaltung,
    zwei Tagen zusammenlöten
    und einer Woche programmieren,
    habe ich noch zwei Wochen für's Gehäuse gebraucht.

    Das verwendete Werkzeug (nein, nichtmal die Bohrmaschine wird elektrisch betrieben ;))

    Werkzeug.JPG

    Aus Resten vom Korkparkett, einem Stück Klavierband. ein paar Winkeln und Schrauben wurde dann ein Gehäuse.

    Platinen eingebaut und angeschlossen:
    Innenleben.JPG

    KorK
    Midi-Keyboard an Korg M3R Midi-Expander:

    KorkMidiKeyboard.JPG

    Nach einer Nachbesserung zum Entprellen der doch schon ziemlich vergammelten Kontakte, funktioniert es überraschend gut.

    Jetzt habe ich wieder ein Gerät mehr, was in der Ecke steht. Nur wiegt es mit seinen knapp 5 kg weniger als ein Drittel des ESQ1 und wird damit dann doch etwas öfter benutzt.
     
    TommyB und Dirk gefällt das.

Diese Seite empfehlen

  • Über uns

    Unsere immer weiter wachsende Community beschäftigt sich mit Themenbereichen rund um Mikrocontroller- und Kleinstrechnersysteme. Neben den Themen Design von Schaltungen, Layout und Software, beschäftigen wir uns auch mit der herkömmlichen Elektrotechnik.

    Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  • Coffee Time

    Unser makerconnect-Team arbeitet hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und unser eigener makerconnekt-Server regelmäßig gewartet wird. Wir nehmen das Thema Datensicherung und Datenschutz sehr ernst und sind hier sehr aktiv, auch sorgen wir uns darum, dass alles Drumherum stimmt!

    Dir gefällt das Forum und die Arbeit unseres Teams und du möchtest es unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft, unser Team freut sich auch über eine Spende für die Kaffeekasse :-)
    Vielen Dank!
    Dein makerconnect-Team

    Spende uns! (Paypal)