Einleitung: Da das hier ein Keyboard Synthesizer ist, musste ich offensichtlich ein Keyboard Interface entwickeln. Natuerlich wollte ich alle Keyboard Specials des Syrinx haben (LFO 1 - Verhalten bei jedem Tastendruck, LFO 2 - Verhalten bei jedem Tastendruck, Portamento), aber da mein Synthesizergehaeuse eine FATAR-Tastatur beherbergt, entschied ich mich, zusaetzlichen Kram zu implementieren, den das Original nicht vorsieht, da das Keyboard der damals ueblichen Widerstandsketten-Architektur folgt. Hier eine funktionale Uebersicht meiner Version:
Human Interface
Schaltungsbeschreibung ![]() Zum Oeffnen anklicken MPU Die MPU wird vom ATmega8535 Microcontroller U9 gesteuert. Die Software wird ueber ein Standard-ISP-Interface J3, r39-r42) hochgeladen. Die 5-polige DIN-Buchse befindet sich an der Geraeterueckseite. Der Controller wird mit dem internen 8 Mhz Oszillator betrieben, der durch das Setzen entsprechender Fuses aktiviert wird. Dadurch konnte ein Quarz weggelassen werden. Die /RESET - Schaltung befindet sich auf der Frontpanel-Platine (siehe unten). Die FATAR-Keyboard-Haelften werden vom 4051 Decoder (U6) simultan gescant. Die gedrueckten Tastendaten der Keyboard-Haelften werden von den Bus-Transceivern 74652 (U7, U8), welche die Daten zum Datenbus durch Auswahl mittels SELUPPER und SELLOWER transportieren, voneinander isoliert. Die FATAR-Ausgangsleitungen werden von den 100k Widerstaenden r3,r4,r9-r14,r16-r21,r23 auf Masse gezogen. Die Software erzeugt die interne CV mit dem 12 Bit DAC MCP4821 (U10), der mittels SPI Standard vom Microcontroller als Slave angesteuert wird. Die CV kann vom Opamp U13A, dem 220k Trimmer RV6 (Scale) und dem 100k resistor r59 auf 1V/Oktave - Verhalten normalisiert werden. Die CV wird zur Frontpanel-Schaltung ueber J7 geschickt, welche das Portamento-Handling (TOPORT, FROMPORT, Spannungsfolger U13D) vornimmt. Das Ergebnis wird mit einem invertierenden DC Mixer zusammen mit den TUNE COARSE - und TUNE FINE - Spannungen sowie einem Null-Abgleich gemixt. Als letztes wird das ganze mit einem weiteren invertierenden Spannungsfolger gepuffert. Die CV wird zusammen mit dem GATE - und TRIGGER - Signal, welche direkt vom Microcontroller per Software erzeugt werden, am System-Bus J9 bereitgestellt. Die Ausgangsspannungen der Wheels werden ebenfalls direkt auf den Bus gegeben. Die User-Entscheidungen LFO 1 und 2 bei Tasten-Betaetigungen betreffend werden am System-Bus ohne weitere Verarbeitung oder Interpretation bereitgestellt. Die entsprechenden LFOs muessen sich spaeter um die Verarbeitung kuemmern. MIDI IN, THRU und OUT sind Standard-Current-Loop - Physik. Eingehende MIDI IN Sequenzen (J5) werden ueber r1, D1 und dem PC900 Optokoppler U2 opto-isoliert. Das Schmitt-Trigger - Ergebnis wird vom Widerstand r22 und der Open-Collector-Ausgangsstufe des Optokopplers invertiert dem Microcontroller an RXD bereitgestellt. Zusaetzlich werden die MIDI-Sequenzen ueber den 4050-Buffer U3A und den Current-Loop - Erzeugern r5 und r6 an der MIDI THRU DIN - Buchse (J4) bereitgestellt. Ausgehende MIDI-Sequenzen werden vom TXD-Pin des Microcontrollers und einem weiteren 4050 Buffer (U3B) mittels r7 und r8 in Current-Loop - Physik gewandelt und ann der DIN Buchse J6 bereitgestellt. Frontpanel Die Frontpanel-Schaltung beinhaltet den /RESET - Teil, die PORTAMENTO-Schaltung, alle LED-Treiber sowie die Doppel-Umschalter-Schaltungsanteile mit und ohne Anzeige-LEDs. Der RESET-Taster entlaedt C16, und /RESET geht runter (RESET wird im Microcontroller ausgefuehrt). Nach dem Loslassen des Tasters wird C16 ueber r30 wieder aufgeladen. D3 schuetzt den /RESET - Eingang des Microcontrollers. Der PORTAMENTO - Doppel-Umschalter aktiviert LED D7 in ON - Position, und mit der CV vom MCU-Board (J8, FTOPORT) wird C8 ueber das PORTAMENTO-Poti RV4 und r54 entsprechend der CV-Veraenderungen aufgeladen oder entladen. Diese sich ueber die Zeit aendernde CV wird an das MCU-Board ueber J8 FFROMPORT zurueckgegeben. In OFF - Position ist die LED ausgeschaltet und FTOPORT (Eingang) ist direkt mit FFROMPORT (Ausgang) verbunden. Die reinen "Entscheidungsschalter" geben lediglich "0" oder "1" (0V oder 5V) ueber entsprechende Widerstaende und ueber die entsprechenden Ausgangsports (FLFO1MOD, FLFO2MOD, FKBDMOD) zurueck. Der VELOCITY - Doppel-Umschalter aktiviert seine Anzeige-LED D8 und gibt die logische "1" (5V) an FVELOMOD in der On-Position, ansonsten "0" und die LED wird ausgeschaltet. Das VELOCITY-Poti stellt eine Spannung zwischen 0V und 5V am VELOCITY ADC - Port des Microcontrollers auf dem MCU-Board via FVELOCITY zur Verfuegung. Die Software analysiert die Spannung und uebergibt den Wert an die VELOCITY - Auswirkungsberechnung. Die FFINE - und FCOARSE - Ports stellen entsprechende Spannungen an den korrespondierenden Ports auf dem MCU Board zur Verfuegung. Die LED-Treiberschaltungen aktivieren ihre korrespondierenden LEDs ueber entsprechende Widerstaende (r31 - r34), in dem die entsprechenden Transistoren (Q1 - Q4) geoeffnet werden. Software TyCoonKBD V1 ![]() |