Impressum | Datenschutz | Shop | DIY | TT @ Twitter | TT-Cabs
Anzeigen der neuesten Beiträge

Entwicklung eines Midi-Switching-Systems auf Arduino-Basis

  • 145 Antworten
  • 77409 Aufrufe

0 Mitglieder und 1 Gast betrachten dieses Thema.

*

Offline Nils H.

  • YaBB God
  • *****
  • 3.067
Salü,Wie sieht den die Verschaltung rund um die Schaltkontakte der Relais aus? Wenn die Relais Umschalter sind, könnte man sie ja einfach passend verkabeln oder?
Kenn mich mit Loopern und dem Kram allerdings nicht so aus (mir reicht en Wah und en 2-Kanal-Amp ;) ). Weiß deshalb nicht warum es stört, wenn die Ausgänge High sind. Evtl. könnte man auch die Betriebsspannung der Relais schaltbar machen, sodass man erst den Portexpander initialisiert und dann vom µC die Betriebsspannung für die Relais frei gibt.
mfg sven

Naja wenn die Ausgänge High sind, schaltet der Transistor oder 2804 durch, die Relais werden geschaltet und die Loops wären alle aktiv. Verdrahte ich die Relais so, dass sie bei einem High des 8574 aus sind, sind sie alle durchgeschaltet, wenn keine Spannung da ist - das ist auch doof, stell' Dir vor, aus irgendeinem Grund fällt die Spannungsversorgung am Rackgerät aus, und plötzlich sind ALLE Effekte an  ;D .

Gruß, Nils

*

Offline SvR

  • YaBB God
  • *****
  • 2.384
Salü,
Okay, jetzt versteh ich das Problem.
Mal zwei Lösungsideen, die mir auf die Schnelle einfallen würden:
1. wie beschrieben die Relaisspannung erstfreigeben, wenn der Expander initialisiert wurde
2. einfach mal ausprobieren, wie lang der High-Zustand dauern würde, wenn der µC gleich als erstes den Expander initialsieren würde und dessen Ausgang auf Null setzten. Vielleicht störts gar nicht.
Wo findet man die Info über den Startzustand im Datenblatt? Habs grad nur schnell überflogen und nix gefunden.
mfg sven

PS: anderster rum verkabelni ist ja dann eigentlich keine so schlechte Lösung (wenn dir/uns sonst nichts besseres einfällt), da sie nur im Fehlerfall ein Problem wäre. Und alle Effekte an, ist dann vielleicht auch ein nettes Ablenkungsmanöver. ;) Und wenn du die Effekte aus der selben Quelle mit speisen willst, haben die ja dann auch keinen Saft mehr
« Letzte Änderung: 30.08.2011 16:52 von SvR »
Rettet den Wald, esst mehr Biber!
PIC32-Tutorial

*

Offline Nils H.

  • YaBB God
  • *****
  • 3.067
Moin,

ich denke, ich bau 'ne Einschaltverzögerung über ein Relais ein. Wenn ein freier Pin am µC über bleibt, kann ich's sogar vom µC aus schalten, wenn nicht, dann halt einen npn per RC-Glied durchsteuern.

Gruß, Nils

*

Offline Nils H.

  • YaBB God
  • *****
  • 3.067
Moin,

ich hab in der letzten Woche mal Stück für Stück weiter gemacht. Für die Rackunit hab ich ein paar Entscheidungen getroffen:

1. I/O-Erweiterung durch den Einsatz von I²C-Portexpandern, in diesem Fall 8x PCF8574. Gerade für das Ansteuern der LED und Abfragen der Taster ist das Killerargument, dass die Module gemischt als I/O konfiguriert werden können.

2. In Sachen µC steht für mich der Zukauf eines Boards fest, und auch schon, welches. Ich habe mich für das Freeduino USB Kit entschieden. Das ist ein Arduino Diecimila-kompatibles Board mit einem 328P, welches weitestgehend auf SMD verzichtet und als Through-Hole-Bausatz für rund 20 Euro zu haben ist. Da hab ich auch kein schlechtes Gewissen, das eingebaut zu belassen. Im Übrigen ist ein MEGA-Board für den Floorcontroller auch raus aus der Nummer, weil ich doch möglichst auf SMD verzichten will. Man stelle sich vor, ich schrotte aus versehen den µC, dann kann ich das ganze Board wegschmeißen - bei obigem Board wird halt einfach ein neuer in die Fassung gesteckt.

3. Ich habe die Möglichkeit sondiert, für die Rackeinheit doch PCBs zu erstellen, weil die Schaltung doch schon relativ komplex ist. Ich habe mich aber dagegen entschieden, gerade für einen Prototypen ist mir der Preis vernünftiger Boards zu hoch. Außerdem hab ich keine Ahnung vom PCB-Layout, und in der freien Version von Eagle ist man ja auch auf 100x80 beschränkt, was bei weitem nicht ausreicht. Deshalb werde ich die Schaltung auf Lochraster aufbauen und die Leiterbahnen halt von Hand mit Silberdraht verlegen  ;D .

Ich hab auch schon eine fast komplette Stückliste gemacht, demnach komme ich auf Materialkosten von ca. 200 Euro.

Anbei mal der Stromlaufplan, am Layout arbeite ich noch.

Gruß, Nils
« Letzte Änderung: 7.09.2011 11:29 von Nils H. »

*

Offline SvR

  • YaBB God
  • *****
  • 2.384
Salü,
Zwei Dinge die mir jetzt beim drüber gucken aufgefallen sind:
1. ext. Interrupt:
Ich würde den nur bei den Expandern anschließen, die auch (teilweise) als Eingänge verwendet werden.
Macht den Aufbau evtl. ein bissel übersichtlicher, wenn ein paar Verbindungen wegfallen.
2. Pull-up-Rs:
Ich hab keine Pull-up-Widerstände für den I2C-Bus gefunden.
http://www.sprut.de/electronic/pic/grund/i2c.htm#kabel
mfg sven
Rettet den Wald, esst mehr Biber!
PIC32-Tutorial

*

Offline Nils H.

  • YaBB God
  • *****
  • 3.067
Moin,

danke für's drüberschauen.

Salü,
Zwei Dinge die mir jetzt beim drüber gucken aufgefallen sind:
1. ext. Interrupt:
Ich würde den nur bei den Expandern anschließen, die auch (teilweise) als Eingänge verwendet werden.
Macht den Aufbau evtl. ein bissel übersichtlicher, wenn ein paar Verbindungen wegfallen.

das macht den Kohl, glaube ich, nicht fett. Das beträfe ja eh nur die drei, die die Relais ansteuern, und da ist es - nach meiner bisherigen Layoutskizze - egal, ob ich eine dritte Leitung parallel ziehe. Macht aber natürlich beim Aufbau weniger Arbeit. Mal sehen ;) .


2. Pull-up-Rs:
Ich hab keine Pull-up-Widerstände für den I2C-Bus gefunden.
http://www.sprut.de/electronic/pic/grund/i2c.htm#kabel
mfg sven

äh, ja. Vergessen  :bier: .

Gruß, Nils

*

Offline SvR

  • YaBB God
  • *****
  • 2.384
Salü,
Ich seh grad das du bei den LEDs und Tastern immer gemischt hast. Mach doch zwei Expander rein mit LEDs und zwei rein mit Tastern und nur einen gemischt. Wenn jetzt ein ext. Interrupt kommt, musst du 5 Portexpander abfragen, bei wem die Taste gedrückt wurde. Machst du nur einen gemischt, sind es nur noch drei mögliche Quellen für einen externen Interrupt, die abgefragt werden müssen.
mfg sven
Rettet den Wald, esst mehr Biber!
PIC32-Tutorial

*

Offline Nils H.

  • YaBB God
  • *****
  • 3.067
Salü,
Ich seh grad das du bei den LEDs und Tastern immer gemischt hast. Mach doch zwei Expander rein mit LEDs und zwei rein mit Tastern und nur einen gemischt. Wenn jetzt ein ext. Interrupt kommt, musst du 5 Portexpander abfragen, bei wem die Taste gedrückt wurde. Machst du nur einen gemischt, sind es nur noch drei mögliche Quellen für einen externen Interrupt, die abgefragt werden müssen.
mfg sven

So hatte ich es erst; ich hab mich dann beim Layouten für die Mischvariante entschieden, weil es die Verdrahtung der LEDs und Taster in Gruppen zu je vier an einem 8574 erlaubt und die Verdrahtung damit einfacher und übersichtlicher wird. Je ein 8674 lässt sich dann örtllich nahe an der LED-/Tastergruppe plazieren, und ich muss keine Leitungen hin- und herziehen, sondern nur die Busleitung/V+/GND von Expander zu Expander. Die zusätzlichen Abfragen sollten da softwareseitig aber kein Problem sein, ist ja nicht so, als wäre die Anwendung ultra-timingkritisch.

Gruß, Nils

*

Offline SvR

  • YaBB God
  • *****
  • 2.384
Salü,
Ok hast recht, macht Sinn das ganze so zu Gruppen zusammen fassen.
mfg sven
Rettet den Wald, esst mehr Biber!
PIC32-Tutorial

*

Offline Thisamplifierisloud

  • YaBB God
  • *****
  • 754
Naja wenn die Ausgänge High sind, schaltet der Transistor oder 2804 durch, die Relais werden geschaltet und die Loops wären alle aktiv. Verdrahte ich die Relais so, dass sie bei einem High des 8574 aus sind, sind sie alle durchgeschaltet, wenn keine Spannung da ist - das ist auch doof, stell' Dir vor, aus irgendeinem Grund fällt die Spannungsversorgung am Rackgerät aus, und plötzlich sind ALLE Effekte an  ;D .

Gruß, Nils


Sorry für die späte Antwort.

ULN2803 ist ein open-collektor-Treiber, invertiert und löst Dein Problem.
Dann sind im Einschaltzustand alle aus.
Und wenn das Ding keinen Saft hat, sowieso.  ;D
Der den Argumentenverstärker trägt.

*

Offline Thisamplifierisloud

  • YaBB God
  • *****
  • 754
Und noch 2 Sächele, Du hast Glück, daß ich grade beruflich mit den Dingern rummache :

- Die gemeinsame Interruptleitung der 8574 sollte nen Pullup haben, 10k sind angemessen.
- Die Schalteingänge der 8574 müssen auch Pullups haben, ich nehme da Wiederstandsleitern mit 1k.
- Die fehlenden Pullups an den beiden I2C-Leitungen hat der Kollege ja schon angemahnt.

Weitermachen !

 :guitar:
Der den Argumentenverstärker trägt.

*

Offline Nils H.

  • YaBB God
  • *****
  • 3.067
Moin,

Open Collector-Ausgänge haben die ULN280X doch alle. Genau das invertierende Verhalten ist doch das Problem: Die Ausgänge des 8574 sind nach dem Einschalten HIGH, wodurch der Ausgang des 280X auf LOW gezogen wird und die Relais schalten. Erst wenn der µC die Ausgänge der 8574 auf LOW setzt, werden die Relais abgeschaltet.

Das hat den Vorteil, dass man nicht mit invertierter Logik programmieren muss - HIGH = an, aber beim Einschalten ist das halt doof. Ich hab mich jetzt für eine fixe Einschaltverzögerung für den Spannungszweig der Relais entschieden.

Zu den Pullup-Widerständen: Die Busleitungen und die Interruptleitungen hatte ich schon nach Svens Einwurf mit Pullups ausgerüstet. Bei den 8574 hab ich mich jetzt an die gängigen Beispiele im Netz gehalten, dort wird immer gesagt, dass die internen Pullups für Tastereingänge ausreichend sind.

Anbei mal der aktualisierte Planentwurf, außerdem mal mein Layoutentwurf. (Edit: Layouts noch mal ausgetauscht /Edit)

Gruß, Nils
« Letzte Änderung: 8.09.2011 10:08 von Nils H. »

*

Offline SvR

  • YaBB God
  • *****
  • 2.384
Salü,
Was mir grad noch aufgefallen ist. Du hast bei den Relais überall die üblichen Schutzdioden eingebaut.
Hat der ULN2804 die nicht schon intern oder deute ich da das Datenblatt falsch? http://www.utc-ic.com/spec/ULN2804.pdf
Dann hast du für die Pullups 680ohm vorgesehen. Ist zwar nur ne Kleinigkeit, aber du könntest da eigentlich genauso gut 1k nehmen. Dann hast du überall ein 1k verbaut und kannst evtl durch Staffelpreise bei der größeren Bestellmenge Geld sparen. ;)
mfg sven
Rettet den Wald, esst mehr Biber!
PIC32-Tutorial

*

Offline carlitz

  • YaBB God
  • *****
  • 1.727
  • never give up
Hallo,

zurück aus meinem Urlaub sehe ich hier erfreulich viel Fortschritt.

Respekt !!!

If you don't know how to fix it, stop breaking it!

*

Offline Nils H.

  • YaBB God
  • *****
  • 3.067
Moin,

richtig, die ULN280X haben integrierte Schutzdioden, eigentlich bräuchte ich den COM nur mit +12V zu verbinden; meine bisherige Erfahrung ist aber, dass die Dioden am besten funktionieren, wenn sie so dicht wie möglich am Relais sind. Mal sehen, die 1N4148 hab ich eh zu Hauf rumfliegen.

Mit den 680R hast Du recht, 1k dürchte auch noch genug Strom liefern, um den 2804 durchzuschalten.

Gruß, Nils