PullUp / Down - Widerstände am 74HC595

Hallo liebe Gemeinde,

ich bin verwirrt... folgendes Szenario:
Das Schieberegister ist mit seinen Input-Pins Data, Shift und Store an den (zuvor konfigurierten) Output-Pins A0 bis A2 des Nano angeschlossen. OutputEnable ist fix mit GND verbunden, MasterReset mit VCC und ein Abblockondensator zwischen VCC und GND. Die Ausgänge gehen auf einen Leistungstreiber, das spielt hier aber keine Rolle.
Ich möchte nicht dass das Schieberegister beim Booten des Boards einen undefinierten Zustand einnehmen - und damit den Leistungstreiber schalten - könnte, da A0 bis A2 ja erst per Software im 'setup ' als Ausgänge definiert und auf LOW gesetzt werden.
Ließe sich das mit PullUp bzw. -Down Widerständen an den drei "Datenpins" verhindern, d.h. sie per Hardware auf einen definieren Pegel ziehen - und falls ja, wäre eine Methode zu bevorzugen?
Ich habe leider noch keine Möglichkeit dies auf dem Breadboard zu testen, da die Teile schlicht und einfach noch nicht da sind. Die obrige Beschreibung basiert auf einem Platinenlayout, welches ich entworfen habe und noch habe ich Platz die drei Widerstände ggf. unterzubringen.

Vielen Dank und liebe Grüße
Cox

Nach Reset des µCs sind die IOs als Eingänge konfiguriert, also hochohmig. Das Schieberegister dürfte davon seinen Zustand nicht ändern.

Die statischen Zustände der Signalleitungen haben keinen Einfluß auf den Inhalt des Schieberegisters.
Erst eine Folge von Impulsen (Clock, Data und RCK) ergibt eine Datenübertragung/ Datenabspeicherung und somit Veränderung der Schieberegisterausgänge. Darum ist der Zustand der Signalleitungen uninteressant.
Sicher könnte theoretisch es möglich sein daß Störungen im Zeitraum von Einschalten der Versorgungsspannung und aktivieren der Arduino-Pins Daten in das Schieneregister laden könnten.
Eine ungewollten Ausgangszustand des Schieberegister mußt Du aber anders ausschließen:
Du mußt den Eingang !QE benutzen. Mittels eines Pullupwiderstandes hälst Du ihn auf HIGH.
Die Ausgänge sind dann hochohmig. Eventuell brauchst Du an den Ausgängen Pullup bzw Pulldown-Widerstände, das hängt aber vom Verhalten des Leistungstreibers im Bezug auf Eingänge ohne definiertes Spannungspotential ab.
Nach dem Booten des Arduinos setzt Du die Ausgänge und beschreibst das Schieberegister. Dann schaltest Du mittels eines weiteren Arduino-Ausgang den !OE Eingnag auf LOW. Die Ausgänge des 595 sind jetzt aktiv ( H bzw L je nach gesendeten Daten)
Du brauchst halt 4 statt 3 Arduino-Ausgänge.

Grüße Uwe

EDIT keinen zum Einfluß im ersten Satz hinzugefügt

Du meinst "haben keinen Einfluß", richtig?

Das wäre in der Tat gefährlich! Sichere Abhilfe: nimm richtige Port-Expander (PCF8574, MCP23017...) mit internem Reset oder mit offenem Kollektor und eingebauten Pullups.

Sonst müßtest Du die Ausgänge erst einmal disabeln (OE high) und dann mit PullUp/Dn in den gewünschten Zustand ziehen. Später den Zustand richtig einstellen und die Ausgänge einschalten (OE low). Dafür braucht der OE einen eigenen Ausgangs-Pin des Arduino.

Ja, meinte ich, schrieb es aber anders.
Danke für das aufzeigen. Hab es korrigiert.
Uwe