Technik > Tech-Talk Design & Konzepte
Projekt: universeller Fußschalter mit vielen Optionen
Firebird:
Hab die Pläne gefunden. Hier zuerst der Teil für den Amp, bietet 10 Schalter-Eingänge und 16 Schalt-Ausgänge die je 500 mA treiben können.
Neun der Eingänge werden über einen 74HC147 auf 4 Pins binär-codiert, ich brauchte für dieses Projekt 10 Eingänge, deswegen ist noch ein weiterer Eingang direkt auf den µC geschaltet. Insgesamt verbrauche ich als0 5 Eingänge des Controlles für 10 Taster.
Ausgangsseitig werden Schieberegister vom Typ 74HC595 verwendet, die kaskadierbar sind. So kann man mit drei Controller-Pins quasi beliebig viele Schaltausgänge ansteuern. Von den Schieberegistern geht es auf die ULN2803, die als Leitungstreiber dienen und pro Pin 500 mA abkönnen.
Rechts oben ist der XLR-Anschluß für die 1-Wire Kommunikation mit dem Fußschalter (kommt gleich im nächsten Post), links eine Midi-In Schaltung.
Achtung: Die Midischaltung habe ich bisher nicht aufgebaut, kann also nicht garantieren, daß die so funktioniert.
Bei meinem Testaufbau hatte ich Probleme mit der Reaktionsgeschwindigkeit des Fußschalters (Umschaltung kam immer so ca. eine halbe Sekunde nach dem Tastendruck). Eventuell muß man noch einen 1-Wire Controller einsetzen, ich habe mir diesen bisher über eine Software-Emulation erspart und vermute, daß die das Problem ist.
Firebird:
Hier jetzt der Fußschalter, wieder mit 10 Eingängen und 16 Ausgängen. Die Kommunikation übernimmt der DS2408, der 8 IO-Pins zur Verfügung stellt, die in beliebiger Kombination auf Ein- oder Ausgabe konfiguriert werden können. 5 Pins werden für die Taster verwendet, an den anderen 3 Pins hängen Schieberegister als Ausgänge. Die ULN2803-Treiber habe ich mir hier gespart, weil die Schieberegister pro Pin 35 mA treiben können und somit für LEDs ausreichen.
SvR:
Salü,
Mir ist zu der Idee mit dem I2C-Bus noch was eingefallen: Störsicherheit!
Ist ja ärgerlich wenn man zum Solo den Boost zuschalten will, bei der Übertragung ein Bit kippt und man dadurch im clean-Kanal landet ;D
Wenn man für jeden Slave "nur" 16 Schaltfunktionen vorsieht, braucht man dafür 4 Bits. Übertragen wird aber ja eh 1 Byte.
Die restlichen Bits könnte man für eine Fehlerkorrektur verwenden. Beim Hamming-Code braucht man für 4 Datenbits beispielsweiße 3 Kontrollbits.
Mit diesen kann man ein einzelnes, fehlerhaftes Bit finden und korrigieren. Auch zwei fehlerhafte Bits lassen sich noch sicher feststellen (allerdings nicht mehr korrigieren). Tritt also ein Fehler auf, kann der Slave ihn selbst korrigieren, die Schaltfunktion auslösen und dem Master die Ausführung quittieren.
Tretten zwei Bitfehler auf, kann der Slave beim Master eine erneute Übertragung anfordern. Kommt überhaupt kein Feedback vom Slave beim Master an, kann dieser eine Fehlermeldung aus geben.
mfg sven
Firebird:
Hallo Sven,
deswegen schlage ich den 1-Wire Bus vor, im Gegensatz zu I2C kannst du da die Signale zuverlässig über 100m Klingeldraht übertragen.
SvR:
Salü,
Wenn ich eh genug Bits übrig habe, würde ich prinzipiell eine Fehlererkennung und Korrektur vorsehen, unabhängig vom verwendeten Bus.
Vorallem wenn das System in einer Umgebung wie einer Bühne verwendet werden soll.
I2C hat den Vorteil, dass die meisten µC die Hardware dafür schon an Bord haben. Den 1-Wire-Bus müsste man als Software realisieren oder?
Welcher Bus weniger störanffällig weiß ich allerdings nicht.
mfg sven
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln