www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik USB-Relaiskarte


Autor: Florian Demski (code-wiz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits,

ich ärgere mich darüber, dass meine externen Festplatten sich per 
SCSI-Befehlen nicht ausschalten lassen.

Daher die Frage:
Hat jemand von Euch schon einmal eine USB-Relaiskarte (für > 8 Relais) 
entworfen und kann das Design zur Verfügung stellen?

Ansonsten müsste ich mich wohl selbst daransetzen und das Rad vermutlich 
zum x. Mal erfinden (bzw. bauen). Ich habe hier noch ein paar PICs 
herumliegen, die USB sprechen, damit ließe sich das umsetzen. Wollte 
aber vorher klären, ob ich mir die Arbeit eventuell sparen kann.

Grüße,

Florian

Autor: Florian Demski (code-wiz)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Da die Resonanz nicht allzu groß war, hier einmal mein erster Wurf.

Ich würde mich freuen, wenn jemand einmal einen Blick darauf werfen 
könnte und evtl. Probleme bekanntgibt.

Die zweite Seite ist noch nicht fertig (ich war zu faul, ein Relais in 
Kicad zu zeichnen). An den ULN2803 würden dann die Relais geschaltet und 
wohl LEDs mit Vorwiderstand entspr. parallel.

Die Spannungsversorgung bereitet mir am meisten Kopfzerbrechen. Die 
Frage ist, ob sich das Ein- und Ausschalten der Relais nicht ggf. 
störend auf die 5V-Versorgung auswirkt.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du willst SCSI-Festplatten abschalten, aber am Bus angeschlossen lassen? 
Bist Du Dir sicher, daß das eine gute Idee ist?

Autor: Florian Demski (code-wiz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, ich meine USB-Festplatten, die unter Linux als SCSI-Devices 
auftauchen.

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat schon jemand erfunden, www.google.de und nach "avr usb" suchen.

http://www.obdev.at/products/avrusb/automator.html

Autor: Florian Demski (code-wiz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem mit dem 'Automator' ist, dass dort fest 8 Relais 
untergebracht sind. Ich würde das Ganze aber gerne skalierbar haben. 
Übrigens frage ich mich gerade, ob das von denen eine gute Idee ist, die 
LEDs direkt an die Eingänge des ULN2803 zu hängen. Da ich die genauen 
Werte des ULN2803 jetzt ad hoc nicht parat habe, möchte ich nicht 
behaupten, dass das Unsinn ist.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unter anderen* Betriebssystemen funktioniert das softwaregesteuerte 
Abschalten von Festplatten, die an USB-IDE-Bridges angeschlossen sind.

Vielleicht wäre es eine sinnvollere Lösung, die 
Powermanagementunterstützung des verwendeten Linux in dieser Hinsicht 
weiter zu untersuchen? Ich kann mir kaum vorstellen, daß das nicht schon 
gelöst wurde bzw. bin überrascht davon, daß das nicht selbstverständlich 
geht.


*) ganz böses Zeug aus Nordwestamerika

Autor: Florian Demski (code-wiz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Prinzipiell funktioniert das wohl auch unter Linux, aber wohl nicht mit 
den billigen Gehäusen/Controllern, die ich hier habe. Die Menschen, die 
sich um das Projekt openslug kümmern, behaupten zumindest, dass es 
klappt. Vermutlich würde es mit dem ausländischen Betriebssystem auch 
mit meinem Setup Probleme geben.

Autor: Florian Demski (code-wiz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Controller ist übrigens ein JM20337

http://www.jmicron.com/JM20337.html

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guck mal nach dem "IO Warrior".

Autor: Florian Demski (code-wiz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gast wrote:
> Guck mal nach dem "IO Warrior".

14,80 EUR bzw. 11,75 EUR pro Stück ist leider zu teuer.

Der PIC 18F2550 kostet um die 8 EUR das Stück.

Rumliegen hätte ich die so oder so.

Autor: Florian Demski (code-wiz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sehe gerade, dass ich die Pull-Ups zwischen '373 und ULN2803 vergessen 
habe. Werde morgen mal den vervollständigten Schaltplan veröffentlichen.

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab hier 4 verschiedene USB-Platten getestet, drei davon liessen sich 
softwaremässig ausschalten, eine nicht.

Lustigerweise funktionierts grad bei den "billigen" USB-Only Platten, 
die USB+Firewire Platte weigert sich.

Ich verwende das sg_start Utility aus dem sg3_utils Paket. je nach 
Platte gehts mit
> sg_start 0 /dev/$disk
oder
> sg_start 0 -pc=2 /dev/$disk

Hier ein kleines Shellscript, dass die Platte nach 10Minuten Inaktivität 
runterfährt:
#!/bin/sh

disk=$1
interval=600

state=`grep " $disk " /proc/diskstats`
count=$interval
up=1

while sleep 10; do
   count=$(($count-10))
   newstate=`grep " $disk " /proc/diskstats`
   if [ "$state" = "$newstate" ]; then
      if [ $count -lt 0 ]; then
         count=$interval
         if [ $up = 1 ]; then
            echo -e "spin-down\t$disk\t" `date`
            sync
            state=`grep " $disk " /proc/diskstats`
            sg_start 0 -pc=2 /dev/$disk
            sg_start 0 /dev/$disk
            up=0
         fi
      fi
   else
      echo -e "drive $disc is up\t" `date`
      count=$interval
      state="$newstate"
      up=1
   fi
done

start mit
./scsi_idle.sh sdh &
./scsi_idle.sh sdi &
etc.

Schau mal ob das bei dir evtl auch funktioniert, vielleicht kannst du 
dir die Relais-Karte ja sparen.

/Ernst

Autor: Florian Demski (code-wiz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau so habe ich das ausprobiert. Ich habe hier dummerweise ein paar 
von den Gehäusen mit dem oben genannten Chip. Damit geht es leider 
nicht.

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok. dann wohl die Hardwarelösung.

Wenns statt dem PIC auch ein Tiny2313 o.ä. sein darf, hätt ich hier 
vielleicht was passendes für dich.

Läuft hier um die Türsprechanlage mit Asterisk zu koppeln, liest ein 
paar Portpins ein und schaltet zwei Relais.

Relativ simple Firmware auf USBtiny Basis, und ein kleines 
libusb-program für den Zugriff.
Leider kein Schaltplan oder Layout, ist auf die schnelle auf ner 
Streifenraster-Platine zusammengelötet.

/Ernst

Autor: Florian Demski (code-wiz)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So, jetzt sollte die Schaltung komplett sein und nun wirklich genug 
Relais ermöglichen. Ich habe mich darüber geärgert, dass ich 8 
Adressleitungen verwendet habe und daraus nur eine ausgewählt habe. Da 
ich nicht alles umzeichnen wollte, habe ich ein paar Bauteile 
hinzugefügt und kann nun tatsächlich 256 * 8 Relais ansprechen, auch 
wenn dann der 7805 bestimmt abrauchen würde. Ich frage mich zwar, ob das 
nicht ein wenig übertrieben ist (mit dem Hammer die Erdnuss öffnen), 
aber vermutlich werde ich das testweise so aufbauen. Die Platine mit den 
Relais ist so gedacht, dass auf beiden Seiten 2x10-polige Anschlüsse 
sind, die durchgeschliffen werden und man mit den Jumpern oder 
Mäuseklavieren (mal schauen) jeweils pro Platine eine Adresse auswählt. 
Vielleicht könnte man den 74LS04 noch durch einen Transistor (oder 
müssen es vielleicht sogar zwei sein...) und ein paar Widerstände 
ersetzen, aber die LS-Familie verheißt keinen guten Stromfluss 
(eigentlich nur einen negativen) bei High-Pegel. Ich hatte jetzt 
allerdings keine Lust, das Rechnen anzufangen.

Autor: nobody (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
RELAIS- UND EINGANGSKARTE MIT USB-INTERFACE
http://bascom-forum.de/index.php/topic,105.msg315....

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Florian Demski wrote:
> habe ich ein paar Bauteile hinzugefügt und kann nun tatsächlich
> 256 * 8 Relais ansprechen,

Ich hätte eine kaskadierbare Schiebregisterkette ala 595 genommen

595 -> 2803 -> Relais

Die Adressierung ergibt sich aus der Anordnung der Module
am Schieberegister-'Bus'

Autor: Florian Demski (code-wiz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger wrote:
> Ich hätte eine kaskadierbare Schiebregisterkette ala 595 genommen
>
> 595 -> 2803 -> Relais
>
> Die Adressierung ergibt sich aus der Anordnung der Module
> am Schieberegister-'Bus'

Dafür müsste die Controller-Platine allerdings wissen, wie viele 
Schieberegister angeschlossen sind. Das Schieben selbst ist ja 
unkritisch, da es im MHz-Bereich stattfinden kann.

Ich überlege gerade: Die Controller-Platine könnte sogar feststellen, 
wie lang das gesamte Schieberegister ist, in dem einfach eine einzelne 1 
durchgeschoben wird und man den Ausgang des letzten SR wieder auf einen 
Eingang des µC zurückführt.

Man könnte natürlich auch I2C nehmen und mit PCF8574 arbeiten.

Der Vorteil bei den seriellen Lösungen (also auch I2C) wäre der 
geringere Leitungsbedarf (Takt, Daten, GND, +5V, +12V, [für 595 
zusätzlich noch /MR und /OE, evtl. DS]) und die geringere Anzahl an 
Bauteilen (vermutlich dadurch auch der geringere Preis).

Die Idee gefällt mir. Ich werde das gleich einmal umzeichnen.

Autor: Florian Demski (code-wiz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nobody wrote:
> RELAIS- UND EINGANGSKARTE MIT USB-INTERFACE
> http://bascom-forum.de/index.php/topic,105.msg315....

Für über 100 EUR finanziell uninteressant.

Autor: Florian Demski (code-wiz)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier einmal die Version mit 74HCT595. Sieht gleich ein wenig 
aufgeräumter aus.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.