DYI: MIDI Fußleiste selber bauen?!

OSon

Administrator
Teammitglied
Axe-Fest 2023 Teilnehmer
Axe-Fest 2022 Teilnehmer
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Sep 29, 2012
Beiträge
2.586
Sorry, dass ich so doof frage, aber ich will heute noch zu Conrad und so ein Ding kaufen. Ich habe jetzt noch ein wenig rumgelesen und würde den PC900 kaufen mit einer Diode und 2x 220 Ohm Widerstände. Und das wird dann so verdrahtet wie bei Sparkfun-Board.
 

OSon

Administrator
Teammitglied
Axe-Fest 2023 Teilnehmer
Axe-Fest 2022 Teilnehmer
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Sep 29, 2012
Beiträge
2.586
Ja hab ich gesehen, aber den gibt es bei Conrad nicht! Aber er hat mir den 6N139 ausgespuckt. Wenn ich das Datenblatt richtig vestehe, sind die sehr sehr ähnlich. Dann nehme ich den! :)
 

Jojolamenace

Member
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Apr 1, 2013
Beiträge
92

Andy

Well-known member
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Okt 21, 2012
Beiträge
8.738

Jojolamenace

Member
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Apr 1, 2013
Beiträge
92
Ja das ist so. Soweit bin ich schon! :-D Aber wie ist das dann verkabelt? Pin 2 + 3 für Midi-In und Pin 4 + 5 für Midi-Out? Und ist der RJ45-Anschluss des Axe-FX II evtl. nur ein anderer Anschluss für die Midi-In/Out Buchse? Hat da jemand wissen?
In der Axe-FXII Anleitung Seite 204 hat es ein Schema zum 5-Pol Midi-IN. Leider gibt es nichts zum MFC. Für das MFC wird es ähnlich sein; du musst nur alle INs und OUTs vertauschen. D.h. für den MFC has du ein normales Midi-IN mit den Pins 4+5. Ein Midi-OUT mit Funktion Midi-OUT an den Pins 4+5 und zusätzlich Funktion Midi-IN an den Pins 1+3. Dazu kommen noch die Pins 6+7 für die Spannungsversorgung (ist aber hier nicht wichtig).
Wenn du den AXe-FXII mit dem MFC über ein 5 oder 7 Pol Midi Kabel (natürlich "fully connected") verbindest, hast du die gleiche Funktionalität (Achtung: abgesehen von der Spannungsversorgung/Netzteil) wie mit dem RJ45 Ethernet-Kabel.
 

Andy

Well-known member
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Okt 21, 2012
Beiträge
8.738
Mal ne Frage, eher wieder in Richtung Software gehen. Die Standardwerte für Midi findet man ja noch irgendwo im Netz. Früher hatte ich mal irgendwo sogar ein Midi Buch in dem viel drind stand.

Sind eigentlich die Kommandos und Werte offengelegt, die FAS für den AXE FX 2 "Spezialmodus" verwendet?
Ich geb zu, ich hab nicht nachgesehen, nicht mal im Manual.

Gruß

Andy
 

OSon

Administrator
Teammitglied
Axe-Fest 2023 Teilnehmer
Axe-Fest 2022 Teilnehmer
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Sep 29, 2012
Beiträge
2.586
So erstmal danke für die Optokoppler-Empfehlungen und Pin-Belegungen. Ich hab das im Handbuch nicht gefunden. Ich habe aber natürlich klugerweise auch nur im MFC-Handbuch geschaut.

Wegen MIDI und Axe-FX spezifischen Befehlen... Ich glaube, da ist mir tatsächlich alles klar. Program Change und Controller Befehle sind eigentlich eindeutig und klar. In meinem Code habe ich zwei Prozeduren geschrieben (sendProgramChange und sendControllerValue). Ich glaube daraus werden die Hex-Werte, die gesendet werden recht klar. Vorraussetzung für MIDI ist auf jeden Fall eine Baudrate von 31250.

Das empfangen der Effekt-Block-Status, Tap-Tempo und Tuner sind SYSEX-Nachrichten notwendig. Diese sind aber recht gut im WIKI beschrieben: http://wiki.fractalaudio.com/axefx2/index.php?title=MIDI_SysEx
 

Andy

Well-known member
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Okt 21, 2012
Beiträge
8.738
OSon, danke für den Hinweis. Werd ich mir bei Gelegenheit mal näher ansehen.
 

Jojolamenace

Member
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Apr 1, 2013
Beiträge
92
Ich versuche Euch da zu helfen. Sicher kennt ihr das Problem - ein Schalter/Taster oder Encoder gedrückt oder gedreht und statt sich die Schaltung ein- oder umschaltet, gibt es gleich zwei- oder mehrere Schaltbefehle. Bei einem Encoder oft besonders nervig - statt einen Wert nach vorne, springt er zwei oder drei Werte nach vorne oder zurück . Das kommt von der mechanischen Vibration beim Schaltvorgang, sprich der dadurch entstehenden Schaltsignalverschmutzung. Man sprich dabei auch von "prellen". Und um diese Schalter bzw. Taster zu "entprellen" werden je nach Signalleitung entweder sogenannte Pull-down oder Pull-up Widerstände eingesetzt, die die Schaltung im "offenen" Zustand auf einen definierten Pegel legen um ein "Prellen" eines Schalters/Tasters zu verhindern.

Gruss
Pacosipulami
Das mit dem Entprellen habe ich nicht verstanden --> da braucht es doch zusätzlich einen Kondensator, z.B. https://www.google.ch/search?q=schalter+entprellen&tbm=isch&tbo=u&source=univ&sa=X&ei=kiJ1UpKQO-Te4QTQ_4DYBg&sqi=2&ved=0CEMQsAQ&biw=1420&bih=864#facrc=_&imgdii=_&imgrc=s0rsAQZeunvibM:;56-yhYJxt3lhIM;http%3A%2F%2Fwww.mikrocontroller.net%2Fwikifiles%2Ff%2Ff8%2FRC_debouncer.png;http%3A%2F%2Fpic-projekte.de%2FphpBB3%2Fviewtopic.php%3Ff%3D14%26t%3D231%26start%3D160;505;271 ?
Aber mit dem definierten Pegel/Zustand bin ich einverstanden. Pull-up/downs braucht es bei Open-Kollektor/Drain oder Tristate Bauteile, auch als Open-Circuits bezeichnet, um ein Potential/Zustand zu definieren --> siehe Open-Circuit.
 

Andy

Well-known member
Axe-Fest 2020 Online Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Okt 21, 2012
Beiträge
8.738
Du kannst hardwaremässig entprellen aber auch per Software.
Die SW Variante wurde hier ja schon beschrieben, paarmal hintereinander abfragen.
Die SW Variante kostet nichts, ausser CPU Leistung.
 

Jojolamenace

Member
Axe-Fest 2019 Teilnehmer
Axe-Fest 2018 Teilnehmer
Axe-Fest 2017 Teilnehmer
Mitglied seit
Apr 1, 2013
Beiträge
92
Ich bevorzuge sowieso die SW-Entprellung. Aber was hat Pull-up/down mit Entprellung zu tun?
 
P

Pacosipulami

Guest
Sehr viel - so mache ich zb. Relais geräuschlos (ist Analog-Technik), von dort her kenne ich das. Kondensatoren sind dort nicht nötig - bei Impulse je nach Schaltkreise notwendig, in der Analog-Technik unnötig - und von daher kommt auch Pacosipulami :)
 

wildlive

Active member
Mitglied seit
Okt 6, 2012
Beiträge
167
ok, ich habe wohl ein wenig für Verwirrung gesorgt. Versuche mal die von mir genannten Begriffe und Abkürzungen zu erläutern. Ich gebe mir Mühe... versprochen, aber ein wenig hat das natürlich mit Elektrotechnik zu tun, da kann ich nix zu.
Ansonsten könnt ihr mich auf dem AXEFest löchern oder auch steinigen. Aber lieber der Erstere, bei ein oder zwei Bier :)



1. Prellen

Prellen von z.B. Tastern ist ein rein mechanisches Phänomen, bei dem die Kontakte beim Drücken des Tasters nicht sofort eindeutig schließen. Das heißt, der Kontakt prellt kurze Zeit (bis zu 5 ms) zwischen auf und zu hin und her. Vergleichbar mit einem Lineal, dass man am Tischrand federn lässt. Dadurch kann ein Tastendruck auf einen nicht entprellten Taster als mehrere Tastendrücke wahrgenommen werden. Dieses prellen lässt sich nicht (!) allein durch die Beschaltung durch einen Pullup bzw. Pulldown Widerstand vermeiden. Die dazu notwendige Hardware- oder Software Lösung habe ich ja bereits beschrieben (mein Gekritzel auf den Bildchen).



2. Pullup bzw. Pulldown Widerstand.

Ein Pullup bzw. ein Pulldown Widerstand bildet eine Reihenschaltung mit dem z.B. Taster (oder Transistor bei der oben erwähnten Open Kollektor Technik).

Pullup (zieh hoch) Widerstand
Code:
               + (VCC)
----------------------
      |
      |
      -
     | |
     | |
      -         Tasterwert
      |---------------
      |
    \ 
     \
      |
      |        - (GND)
----------------------
      |
      -
Pulldown (zieh runter) Widerstand
Code:
               + (VCC)
----------------------
      |
      |
    \ 
     \
      |          Tasterwert
      |--------------
      -
     | |
     | |
      -
      |
      |       - (GND)
----------------------
      |
      -
In einer Reihenschaltung fallen die Spannungen an den jeweiligen Widerständen proportional zum Widerstandswert ab.

Ist der Taster nicht gedückt, hat dieser einen riesig großen Widerstand im Vergleich zum Pullup bzw. Pulldown Widerstand. D.h., fast die gesamte Spannung fällt am Taster ab.
Ist der Taster gedrückt (kurzgeschlossen), hat dieser einen winzigen Widerstand im Vergleich zum Pullup bzw. Pulldoewn Widerstand. D.h. fast die gesamte Spannung fällt am Pullup bzw. Pulldown Widerstand ab.

Daraus folgt mit Pull up Widerstand:
Bei nicht gedrücktem Taster fällt am Taster die gesamte Spannung ab -> Tastenwert ist auf VCC (Versorgungsspannung z.B. 5V)
Bei gedrücktem Taster fällt die gesamte Spannung am Widerstand ab -> Tasenwert ist auf GND (Masse oder 0V)

Beim Pulldown Widerstand ist das umgekehrt.


Warum benötigt man so einen komischen Widerstand überhaupt?
Wenn man ihn weglassen würde, wäre dort aber dennoch ein gedachter sehr sehr hochohmiger (parasitärer) Widerstand, die Isolation. Der Schalter hat einen ähnlich hohen Widerstand wenn er nicht gedrückt ist. Daraus folgt ein Spannungsteiler mit zwei ähnlich hohen Widerständen wo wir die Werte aber nicht genau kennen. Sprich wir kennen auch nicht den Spannungswert am Ausgang (Tasterwert). Weiterhin "fängt" sich so ein hochohmiges System auch gerne mal Ladungen von z.B. Leutstoffröhren oder ähnlichem Elektrosmog ein. Da diese Ladungen aber nicht so leicht abfließen können (hochohmiges System, da zu allen Seiten hin isoliert :) ), ist dort noch mal ein riesiger Unsicherheitsfaktor was die Ausgangsspannung betrifft.

Für den Fall des gedrückten Tasters bräuchten wir keinen Pullup bzw. Pulldown Widerstand, da diese in diesem Fall ja den großen Widerstand des Spannungsteilers darstellen und das kann natürlich auch die Isolation. Einfangen kann man sich da auch nichts, da der gedrücktze Taster ja einen sehr kleinen Widerstandswert hat.

Das bedeutet auf den Punkt gebracht,
- der Pullup Widerstand sorgt bei nicht gedrücktem Taster für eine stabile "1" (VCC oder Versorgungsspannung) am Ausgang.
- der Pulldown Widerstand sorgt bei nicht gedrücktem Taster für eine stabile "0" (GND oder Masse) am Ausgang.


Das Ganze hat aber nichts mit Prellen zu tun! Für eine ordentliche hardwareseitige Entprellung braucht es einen Kondensator, ob als extra Bauteil oder parasitär sei mal dahin gestellt!



3. VCC ist die Versorgungsspannung



4. GND ist die Masse (Minuspol)



5. uC ist die Abkürzung für Mikrocontroller



6. PORT, DDR und PIN Register des AVR bzw. ATMEGA Prozessors.

Ich gehe davon aus, dass ihr alle Arduinos mit ATMEGA (= AVR) Prozessoren habt. Es gibt mittlerweile auch ARM basierte, aber die Wahrscheinlichkeit ist doch sehr sehr groß :)

Bei den Arduiono Boards werden speziell für diese Plattform zugeschnittene Bibliotheken zur Verfügung gestellt, so dass man sich mit den Innereien des Controllers nicht abgeben muss.
Nur muss ein Taster jenachdem wie er angeschlossen wird auch unterschiedlich abgefragt werden (siehe Posting von mir weiter oben). Da sind diese Register wichtig. In wie weit die Varianten durch die Bibliotheken unterstützt werden kann ich nicht sagen.

Nun zum Erklärungsversuch:

Beim AVR werden jeweils 8 Anschlüsse zu einem Port zusammengesetzt. Im ATMEGA8 gibt es z.B. PORTB PORTC und PORTD. Über diese Register, die bei der Programmierung in der Sprache C als Variablen zur Verfügung stehen, kann ein Wert ausgegeben Werden.
Die Abkürzung DDR bedeutet hier Data Direction Register. Die DDR Register (beim ATMEGA8 DDRB, DDRC oder DDRD) dienen also dazu, dem AVR mitzuteilen, ob ein Anschluß ein Eingang oder ein Ausgang sein soll.

Eingelesen werden Werte über das PIN Register (PINB, PINC oder PIND). Ein beliebter Flüchtigkeitsfehler ist der Versuch Werte über das PORT Register einzulesen. Hier liest man aber nur die Werte, die man eigentlich ausgeben möchte, nicht die tatsächlichen.

Die internen Pullup Widerstände kann man nur einschalten, wenn ein Anschluß als Eingang konfiguriert ist (macht auch Sinn!). In diesem Fall benötigt man ja das PORT Register nicht, da man ja einlesen und nicht ausgeben will. Somit habe sich die Entwickler gedacht, Siliziumfläche ist teuer ... wir verwenden einfach das PORT Register doppelt.
Also, das Port Register gibt (wenn der Anschluß ein Ausgang ist) die Werte aus oder steuert (wenn der Anschluß ein Eingang ist) , ob ein Pullup Widerstand an ist bzw. aus ist



So, ich habe fertig und wahrscheinlich noch mehr verwirrt... wenn dem so ist, Entschuldigung!!
 
Zuletzt bearbeitet:

wildlive

Active member
Mitglied seit
Okt 6, 2012
Beiträge
167
Mist, ich hatte die Schaltungen so schön formatiert. Aber der löscht bei der Darstellung einfach die Leerzeichen. Kann ich das irgendwie verhindern? Dann würde ich an die Schaltungen oben nochmals dran gehen. So siehts einfach nur doof aus :frusty:
 

axefx

Administrator
Teammitglied
Axe-Fest 2019 Teilnehmer
Mitglied seit
Sep 28, 2012
Beiträge
5.871
Vielleicht mit dem (code) (/code) (mit eckigen Klammern!) tags versuchen?! Oder eben als (img)Bild-Adresse(/img) einfügen ...

Wie auch immer: Danke für deine Hilfe Wildlive und ja, ich glaube, ATMEGA hat das MEGA Board von mir OSOn ;)
 
Zuletzt bearbeitet:
P

Pacosipulami

Guest
aber ein wenig hat das natürlich mit Elektrotechnik zu tun, da kann ich nix zu.
Ich habe wohl lediglich den Begriff des "Prellens" in die falsche Relation gesetzt und dadurch für Verwirrung gesorgt (selber bin ich nicht verwirrt). Denn wenn ich in der analogen Audiotechnik einen mechanischen Schaltkontakt verwende (Schalter oder Relais) um HiZ-Audio-Signale zu schalten benutze ich Pull-down Widerstände um die Schaltvorgänge geräuschlos zu bekommen, nenne ich das in der Praxis ebenfalls "entprellen" - und habe damit in der digitalen Schaltungstechnik zwei Dinge in den gleichen Topf geworfen, die nicht in den gleichen Topf gehören. Dafür entschuldige ich mich......

PS: Ich würde ja sehr gerne mehr in dieser Richtung machen um mein mittlerweile 16 Jahre altes Wissen wieder "refreshen" zu können - doch ich hab immer wie mehr genug von meinen tagtäglichen Aufgaben (die mich "im doppeldeutigem Sinn" gesehen "zur Aufgabe" führt). So einfach ist das alles nicht - dazu spätestens am AxeFest mehr, sofern das überhaupt jemanden interessiert (vermutlich eh nicht).

Zum Rest können wir ja am AxeFest mal zusammen quasseln -
 

wildlive

Active member
Mitglied seit
Okt 6, 2012
Beiträge
167
Hehe Paco, das dir das alles sonnenklar ist, ist mir auch klar:biggrin: Ich wollte hier nur den Cheffe nicht verärgern, in dem ich von komischen Dingen schreibe und das dann nicht erkläre...
 
Oben
mainframe-fourhanded
mainframe-fourhanded