Forum: Mikrocontroller und Digitale Elektronik Mehrere Schalter mit ATtiny85 steuern: Ist mein Design sinnvoll?


von Erik W. (zoyd)


Angehängte Dateien:

Lesenswert?

Das Ziel meines allerersten Elektronik-Projekts soll sein, per MCU die 
Stromversorgung der einzelnen Schächte eines Festplattengehäuses zu 
steuern.
MCU und HDD-Gehäuse sind an die Stromversorgung eines Deskop-PCs 
angeschlossen.

((( Am besten hier den Schaltplan im Anhang betrachten. )))

Die MCU soll 15 identische Schalter steuern und zur Kommunikation und 
Stromversorgung per USB mit dem PC verbunden sein.

Für die MCU fiel meine Wahl auf den Digispark (ATtiny85), der bereits 
einen USB-Port enthält.
Zur Output-Port-Erweiterung nehme ich zwei kaskadierende 74HC595.

Da beim Start die Schalter nicht aktiviert werden sollen, muss ich den 
OE-Pin (Output Enable) des 74HC595 mit einem Pull-Up-Widerstand 
beschalten und erst nach Initialisierung auf LOW legen. (Siehe hier: 
https://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister#Achtung_beim_Startup.21)

1. Welcher Pull-Up-Widerstand ist hier angemessen? Ich würde gerne (aus 
didaktischen, nicht aus praktischen Gründen) den Stromverbrauch 
minimieren.
Sind 50k zu viel?

2. Welches exakte Transistor-Modell empfiehlt sich zur 
Schaltersteuerung? Ich bin nach langer Recherche noch unsicher.
Vielleicht auch MOSFET statt NPN? Natürlich muss ich der Basis noch 
einen Widerstand vorschalten, aber das finde ich dann selbst heraus.

3. Angenommen ich nehme einen NPN-Transistor:
Beim Start und solange der OE-Pin auf HIGH liegt, liegt die 
Transistor-Basis auf FLOAT.
Ist das ein Problem? Könnte dabei aus den 74HC595-Ausgängen genug Strom 
fließen, um den Schalter kurzzeitig zu aktivieren?

5. Das in meinen Augen etwas unglückliche Design des 74HC595 beansprucht 
für die Absenkung des OE-Pins ständig einen MCU-Pin.
Gibt es ein ähnliches Schieberegister, das beim Start seine Ausgänge 
automatisch auf LOW oder FLOAT setzt?

6. Ist das Design ansonsten valide und zweckmäßig?

Vielen Dank für Eure Hilfe!

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Erik W. schrieb:
> Sind 50k zu viel?

Da es CMOS ist, klappt das vermutlich, aber die meisten nehmen was 
niederohmigeres, z.B. 4,7k oder 3,3k.

> Beim Start und solange der OE-Pin auf HIGH liegt, liegt die
> Transistor-Basis auf FLOAT.
> Ist das ein Problem?

Nö. Transistoren benötigen echten Basisstrom, um durchzuschalten und 
sind mit offener Basis dicht.

> Gibt es ein ähnliches Schieberegister, das beim Start seine Ausgänge
> automatisch auf LOW oder FLOAT setzt?

Auch nicht. Merke, für gesparte Portpins gibt es kein Geld zurück. Du 
wirst beim Umschalten der Pins später froh sein, das es OE gibt, weil es 
dir z.B. auch einen Reset der SR einfach macht ohne unzulässige 
Ausgangszustände.

> 6. Ist das Design ansonsten valide und zweckmäßig?

Probier mal bitte zuerst an einem einzelnen Bay, ob deine 
Transistorschalter so funktionieren. Aussedem fehlt die Verbindung von 
HDD-Bay Masse zur MCU Masse.

Ausserdem musst du dir überlegen, was auf dem USB passieren soll und als 
was für ein Device sich das Dings anmelden soll.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Der Lösungsansatz setzt voraus, dass alle B Anschlüsse miteinander und 
mit GND verbunden sind. Prüfe das zuerst, bevor du in eine Sackgasse 
fährst.

50kΩ sind für Pull-Up bzw Pull-Down Widerstände schon recht viel. Es 
kann leicht passieren, dass deine Leitungen Radiowellen empfangen und 
darauf unerwünscht reagieren. Nimm lieber Werte zwischen 2,2kΩ und 10kΩ.

> Gibt es ein ähnliches Schieberegister, das beim Start seine
> Ausgänge automatisch auf LOW oder FLOAT setzt?

Ich kenne keins, du musst wohl den Reset-Eingang benutzen.

Schau Dir mal den TPIC6B595 an, das ist ein ganz ähnliches 
Schieberegister, wo die Transistoren bereit integriert sind.

von HildeK (Gast)


Lesenswert?

Erik W. schrieb:
> Sind 50k zu viel?

In sauberer (EMV) Umgebung geht das schon, wenngleich ich eher nicht 
über 10k gehe.

Erik W. schrieb:
> 2. Welches exakte Transistor-Modell empfiehlt sich zur
> Schaltersteuerung? Ich bin nach langer Recherche noch unsicher.
> Vielleicht auch MOSFET statt NPN? Natürlich muss ich der Basis noch
> einen Widerstand vorschalten, aber das finde ich dann selbst heraus.

Ein NPN benötig einen (kleinen) Basisstrom und einen Basisvorwiderstand.
Ein nMOS benötigt statisch keinen Gatestrom, aber einen PullDown, wenn 
der Treiberausgang auch hochohmig sein kann.
Beim NPN geht praktisch jeder Feld-, Wald-, Wiesentyp; beim nMOS musst 
du einen suchen, der mit dem HIGH-Pegel des HC595 noch schaltet (5V oder 
3.3V).

von Erik W. (zoyd)


Lesenswert?

1.
Ja, MCU und alle HDD-Bays liegen auf gleicher Masse.

2. @matzetronics
Zur Kommunikation nehme ich DigiUSB oder ähnliches. Wenn alles fertig 
ist, poste ich hier einen Link zum Quellcode.

3.
Ich tendiere zu NPN + Vorwiderstand.
Ein Hinweis zu einem konkreten Transistormodell würde mir sehr helfen.

von Gerd E. (robberknight)


Lesenswert?

Erik W. schrieb:
> Ja, MCU und alle HDD-Bays liegen auf gleicher Masse.

ok, und wenn Du den "A"-Pin einer HDD-Bay auf diese gemeinsame Masse 
legst (und nicht auf das zugehörige "B"-Pin), geht die HDD an?

Die Verschaltung von denen korrekt herauszufinden ist entscheidend für 
den Erfolg.

> Ich tendiere zu NPN + Vorwiderstand.
> Ein Hinweis zu einem konkreten Transistormodell würde mir sehr helfen.

BC337 wenn Du THT möchtest, BC817 wäre das SMD-Äquivalent.

Es gibt die in verschiedenen Verstärkungskategorien (-16, -25, -40,...). 
Da Du die hier im Schaltbetrieb mit frei wählbarem Vorwiderstand 
betreibst ist es egal welche Verstärkungskategorie Du kaufst.

: Bearbeitet durch User
von Rene Z. (renezimmermann)


Lesenswert?

Hi,
ein ATTiny hat kein in Hardware "gegoßenes" USB Interface. Nimm einen 
ATxxU2, ATxxU4 oder direkt einen FT4232H und spare dir die 74HC595.
Gruß

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Rene Z. schrieb:
> ein ATTiny hat kein in Hardware "gegoßenes" USB Interface.

Das ist wahr. So wie ich den Schaltplan interpretiere, arbeiten die da 
mit einer Abart von V-USB, allerdings nur mit dem internen Oszillator. 
Das kann funktionieren, muss aber nicht. Wird jedenfalls ein Wackeltanz.

von Erik W. (zoyd)


Lesenswert?

Gerd E. schrieb:
> wenn Du den "A"-Pin einer HDD-Bay auf diese gemeinsame Masse
> legst (und nicht auf das zugehörige "B"-Pin), geht die HDD an?
Ja, tut sie.

> BC337 wenn Du THT möchtest
Großartig, der passt perfekt!

Rene Z. schrieb:
> Nimm einen ATxxU2, ATxxU4 oder direkt einen FT4232H
Das ist in der Tat die pragmatischere Lösung. Danke für den Tip!
Geeignet scheint mir das Teensy 2.0, ein minimalistisches 
ATmega32U4-Dev-Board, das mir weitere Basteleien erspart.
Schema: https://www.pjrc.com/teensy/schematic2.gif

Matthias S. schrieb:
> Wird jedenfalls ein Wackeltanz.
Ja, ich lese gerade, dass gelegentlich Desynchronisierungen auftreten. 
Darauf verzichte ich besser.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.