{"id":32,"date":"2016-06-14T01:09:50","date_gmt":"2016-06-13T23:09:50","guid":{"rendered":"http:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/?page_id=32"},"modified":"2016-06-18T02:01:11","modified_gmt":"2016-06-18T00:01:11","slug":"interface","status":"publish","type":"page","link":"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/interface\/","title":{"rendered":"Interface"},"content":{"rendered":"<p>Die Gruppe Interface realisiert die Verarbeitung und Weitergabe der in den Synthesizer eingespielten Noten sowie der Grundlegenden Bedienbarkeit.<\/p>\n<p>Der\u00a0Purple Gain Synthesizer erh\u00e4lt\u00a0eine MIDI-Schnittstelle sowie ein StepSequencer zur Noteneinspielung. Des Weiteren wird in den\u00a0Synthesizer ein\u00a0Benutzerinterface implementiert.<\/p>\n<p>Im folgenden werden die einzelnen Bereiche der Interfacegruppe im Bezug auf die Ziele und die Umsetzung vorgestellt.<\/p>\n<p>&nbsp;<\/p>\n<p>(Blockschaltbild)<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Mikrocontroller<\/p>\n<p>Die wichtigste Aufgabe des Mikrocontroller ist die Verarbeitung des Midi-Signals. Interessant f\u00fcr uns ist die\u00a0NoteOn-\u00a0und\u00a0NoteOff-Nachricht sowie der\u00a0MIDI-Takt.<\/p>\n<p>Die NoteOn- und NoteOff-Nachricht enth\u00e4lt den musikalischen Notenwert sowie die Velocity. Der Midi-Takt ist vor allem f\u00fcr den StepSequencer relevant, wird aber auch den anderen Gruppen zur Verf\u00fcgung gestellt. Zum einlesen der MIDI-Nachrichten\u00a0\u00a0ist\u00a0die USART-Schnittstelle im Interrupt-basierten Betrieb.<\/p>\n<p>Aktuell ist\u00a0vor allem der Umgang des Mikrocontrollers beim spielen\u00a0mehrerer Noten interessant. Da der Synthesizer nur einen Notenwert auf einmal verarbeiten kann, wird \u00fcber den Mikrocontroller die zuletzt gedr\u00fcckte Taste auf den Notenausgang gelegt, die anderen noch gedr\u00fcckten Tasten werden abgespielt (neueste zuerst) sobald die zuletzt gedr\u00fcckte Taste losgelassen wird.<\/p>\n<p>&nbsp;<\/p>\n<p>Benutzerinterface<\/p>\n<p>\u00dcber einen Drehimpulsgeber mit Tastfunktion und einem LCD\u00a0k\u00f6nnen von dem Benutzer folgende Men\u00fcpunkte aufgerufen werden:<\/p>\n<ul>\n<li>Auswahl des MIDI &#8211; Kanals<\/li>\n<li>Anzeige der gespielten Note\/Velocity<\/li>\n<li>Auswahl der Wellenform des Voltage controlled Oscillator (VCO)<\/li>\n<li>Aktivierung\/Deaktivierung des Stepsequenzers<\/li>\n<li>Auswahl der Tacktquelle dessen(MIDI \/ Beats per Minute (BPM)-Zahl direkt)<\/li>\n<li>Einstellung der gew\u00fcnschten Tacktrate<\/li>\n<\/ul>\n<p>Die verschiedenen Men\u00fcpunkte sollten selbsterkl\u00e4rend sein.\u00a0Die Impulse des Drehimpulsgeber werden mittels Interruptbefehl verarbeitet, d.h. der Mikrocontroller unterbricht den aktuellen Programmablauf und f\u00fchrt die, mit dem Interruptbefehl verkn\u00fcpfte Funktion, sofort aus.<\/p>\n<p>&nbsp;<\/p>\n<p>Mainplatine<\/p>\n<p><a href=\"http:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/mainplatine_schaltplan.png\"><img loading=\"lazy\" class=\" wp-image-65 aligncenter\" src=\"http:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/mainplatine_schaltplan-300x161.png\" alt=\"mainplatine_schaltplan\" width=\"714\" height=\"383\" srcset=\"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/mainplatine_schaltplan-300x161.png 300w, https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/mainplatine_schaltplan-1024x550.png 1024w\" sizes=\"(max-width: 714px) 100vw, 714px\" \/><\/a><\/p>\n<p>Die Mainplatine unterteilt sich in folgende Punkte:<\/p>\n<ul>\n<li>Spannungsversorgung<\/li>\n<li>Mikrocontroller<\/li>\n<li>DAC + AMP<\/li>\n<li>TP 2. Ordnung<\/li>\n<li>BUS<\/li>\n<li>Verbindungen zu den anderen Platinen<\/li>\n<\/ul>\n<p><strong>Spannungsversorgung<\/strong><\/p>\n<p>Die Spannungsversorgung erfolgt \u00fcber ein Netzteil, welches mit dem BUS verbunden ist. Dieses liefert +\/- 12 V, welche direkt bei den OpAmps verwendet werden.<\/p>\n<p>Die sonstigen Bauteile der Platine ben\u00f6tigen eine Spannungsversorgung von +\/- 5 V, was \u00fcber die L7805 und L7905 realisiert werden. In Tests erwies sich die runterregelung der Spannung um 7 V bei verwendung eines K\u00fchlk\u00f6rpers als unproblematisch.<\/p>\n<p>Des Weiteren garantieren die Dioden einen \u00dcberspannungsschutz.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Mikrocontroller<\/strong><\/p>\n<p>Der Mikrocontroller wird entsprechend dem Schaltplan verbunden. Interessant ist die Programmierung, die sp\u00e4ter erl\u00e4utert wird.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>DAC + AMP<\/strong><\/p>\n<p>Die Digital-Analog-Wandler wandeln das Digitale Noten und Velocity Signal in einen Spannungswert um. Beide befinden sich in einem Bereich von 0 bis 5 V.<\/p>\n<p>Der AMP ist als Buffer geschaltet und garantiert, das die Bauteile davor\u00a0vor Str\u00f6men gesch\u00fctzt sind und die Signale in der Lage sind eine Last zu treiben.<\/p>\n<p>Die beiden anderen OpAmps des TL074 werden mit dem Pulsweitenmodulation und der Stepsequencernote verbunden, ebenfalls als Buffer.<\/p>\n<p><strong>BUS<\/strong><\/p>\n<p>\u00dcber den Bus wird unter anderem die Spannungsversorgung bereit gestellt,d es weiteren erfolgt heir\u00fcber der Datenaustausch zwischen den anderen Projektgruppen.<\/p>\n<p>F\u00fcr eine genaue Pinbelegung siehe auch:<\/p>\n<p>https:\/\/service.projektlabor.tu-berlin.de\/benv3\/index.php\/Attachment\/6660-PIN-Belegung-Bus-pdf\/<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Verbindungen zu den anderen Platinen<\/strong><\/p>\n<p>\u00dcber die Pinheader erfolgt eine Verbindung mittels Flachbandkabel zu den 2 weiteren Platinen der Interfacegruppe, die im folgenden erl\u00e4utert werden<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Benutzerinterface<\/strong><\/p>\n<p><a href=\"http:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/lcd_schaltplan.png\"><img loading=\"lazy\" class=\"alignnone wp-image-64\" src=\"http:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/lcd_schaltplan-300x272.png\" alt=\"lcd_schaltplan\" width=\"609\" height=\"553\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><strong>StepSequencer<\/strong><\/p>\n<p><a href=\"http:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/step_sequencer_schaltplan.png\"><img loading=\"lazy\" class=\"alignnone wp-image-66\" src=\"http:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/step_sequencer_schaltplan-300x214.png\" alt=\"step_sequencer_schaltplan\" width=\"570\" height=\"407\" srcset=\"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/step_sequencer_schaltplan-300x214.png 300w, https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/step_sequencer_schaltplan-1024x731.png 1024w\" sizes=\"(max-width: 570px) 100vw, 570px\" \/><\/a><\/p>\n<p>Der Stepsequencer dient der alternativen Notenwiedergabe zum Midisignal.<\/p>\n<p>Zusammengefasst l\u00e4sst sich mit dem Stepsequencer eine Notenreihe erzeugen, welche abgespielt wird. Hierbei kann die Tonh\u00f6he \u00fcber die Potentiometer gesteuert werden und \u00fcber einen Schalter k\u00f6nnen Noten aktiviert oder deaktiviert werden.<\/p>\n<p>Der Stepsequencer wird \u00fcber einen Timer realisiert, der \u00fcber das Taktsignal des Mikrocontrollers gesteuert wird. Bei einer steigenden Flanke z\u00e4hlt dieser bitweise hoch. Dies hei\u00dft das jedem Ausgang ein Bit zugeordnet wird, vom LSB zum MSB. In unserem Aufbau werden 3 Ausg\u00e4nge verwendet, folglich z\u00e4hlt der Timer von 0 &#8211; 7.\u00a0\u00dcber die Ausg\u00e4nge des Timers werden 2 Multiplexer gesteuert. Diese schalten, je nach Wert den sie vom Timer erhalten, einen bestimmten Ausgang durch. Der erste Multiplexer ist f\u00fcr die Note verantwortlich, gibt folglich einen Spannungswert weiter. Der Spannungswert wird \u00fcber den Mittelabgriff eines Potis gesteuert, wovon 8 verwendet werden. Folglich wird der Reihe nach ein Poti nach dem anderen auf den Ausgang gesetzt.<\/p>\n<p>Der zweite Multiplexer erh\u00e4lt das selbe Timersignal wie der erste, steuert jedoch nicht den Notenwert sondern das Gatesignal. Dies ist erforderlich, damit man die Noten an- und ausschalten kann. Ein einfaches &#8218;zudrehen&#8216; der Potis w\u00e4re nicht ausreichend, da auch 0 V einem Notenwert entspricht. \u00dcber einen Schalter werden entweder 5 V Gatespannung auf den Ausgang des 2. Multiplexers gelegt, oder dieses Signal wird deaktiviert indem der Schalter in off Stellung ist. Bei dem Gatesignal bedeutet ein Wert von 0 V das keine Note gespielt wird.<\/p>\n<p>Allerdings l\u00e4sst sich so noch nicht die Notenl\u00e4nge beeinflussen, da das Gatesignal auf 5 V liegt bis der Timer einen Wert weiter schaltet und somit der Multiplexer auf den n\u00e4chsten Kanal wechselt. Dies erfolgt aber erst bei der n\u00e4chsten steigenden Flanke des MIDI_SCK Signals. Um die Notenl\u00e4nge beeinflussen zu k\u00f6nnen, wird das Gatesignal des 2. Multiplexer \u00fcber ein &amp;-Gatter mit dem MIDI_SCK Signal verbunden. Dadurch gelangen nur dann 5 V Gatespannung auf den Ausgang, wenn auch das MIDI_SCK Signal auf 5 V liegt. Verk\u00fcrzt man die Dauer, die das MIDI_SCK Signal 5 V hat, wird auch die Notenspieldauer verk\u00fcrzt. Da aber die Frequenz der steigenden Flanken die selbe bleibt, hat dies keinen Einfluss auf den Takt und auf die Schaltfrequenz des Timers.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Platinen<\/p>\n<p>Im folgenden der Entwurf der Platinen:<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Mainplatine<\/strong><\/p>\n<p><a href=\"http:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/Screenshot-2016-06-14-01.09.18.png\"><img loading=\"lazy\" class=\"alignnone wp-image-43\" src=\"http:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/Screenshot-2016-06-14-01.09.18-300x218.png\" alt=\"Screenshot 2016-06-14 01.09.18\" width=\"511\" height=\"371\" srcset=\"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/Screenshot-2016-06-14-01.09.18-300x218.png 300w, https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/Screenshot-2016-06-14-01.09.18-1024x744.png 1024w, https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/Screenshot-2016-06-14-01.09.18.png 1066w\" sizes=\"(max-width: 511px) 100vw, 511px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Benutzerinterfaceplatine<\/strong><\/p>\n<p><a href=\"http:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/Screenshot-2016-06-14-01.08.33.png\"><img loading=\"lazy\" class=\"alignnone wp-image-42\" src=\"http:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/Screenshot-2016-06-14-01.08.33-300x199.png\" alt=\"Screenshot 2016-06-14 01.08.33\" width=\"508\" height=\"337\" srcset=\"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/Screenshot-2016-06-14-01.08.33-300x199.png 300w, https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/Screenshot-2016-06-14-01.08.33-1024x680.png 1024w, https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/Screenshot-2016-06-14-01.08.33.png 1130w\" sizes=\"(max-width: 508px) 100vw, 508px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Stepsequencerplatine<\/strong><\/p>\n<p><img loading=\"lazy\" class=\"alignnone wp-image-41\" src=\"http:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/Screenshot-2016-06-14-01.07.36-300x181.png\" alt=\"Screenshot 2016-06-14 01.07.36\" width=\"554\" height=\"334\" srcset=\"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/Screenshot-2016-06-14-01.07.36-300x181.png 300w, https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/Screenshot-2016-06-14-01.07.36-1024x619.png 1024w, https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-content\/uploads\/sites\/15\/2016\/06\/Screenshot-2016-06-14-01.07.36.png 1128w\" sizes=\"(max-width: 554px) 100vw, 554px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Gruppe Interface realisiert die Verarbeitung und Weitergabe der in den Synthesizer eingespielten Noten sowie der Grundlegenden Bedienbarkeit. Der\u00a0Purple Gain Synthesizer erh\u00e4lt\u00a0eine MIDI-Schnittstelle sowie ein StepSequencer zur Noteneinspielung. Des Weiteren wird in den\u00a0Synthesizer ein\u00a0Benutzerinterface implementiert. Im folgenden werden die einzelnen Bereiche der Interfacegruppe im Bezug auf die Ziele und die Umsetzung vorgestellt. &nbsp; (Blockschaltbild) &nbsp; &hellip; <a href=\"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/interface\/\" class=\"more-link\"><span class=\"screen-reader-text\">Interface<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":37,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-json\/wp\/v2\/pages\/32"}],"collection":[{"href":"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-json\/wp\/v2\/users\/37"}],"replies":[{"embeddable":true,"href":"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-json\/wp\/v2\/comments?post=32"}],"version-history":[{"count":8,"href":"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-json\/wp\/v2\/pages\/32\/revisions"}],"predecessor-version":[{"id":68,"href":"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-json\/wp\/v2\/pages\/32\/revisions\/68"}],"wp:attachment":[{"href":"https:\/\/service.projektlabor.tu-berlin.de\/wordpress\/purplegain\/wp-json\/wp\/v2\/media?parent=32"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}