CD4015 Schieberegister aneinanderreihen

OP #6093088
Lesenswert?

Hi :)
Vor nicht allzu langer Zeit hab ich mir beim 
Wucherpreis-Elektronikhändler meines Vertrauens dieses Schieberegister 
geleistet: CD4015B. Mit 3 davon würde ich gerne meinen Arduino um 24 
Output Pins erweitern (22 wenn man die verbrauchten Pins abzieht). Mein 
Aufbau ist simpel: Jedes Schieberegister kriegt Spannung und Erdung und 
alle Resetpins sind mit Minus verbunden. Alle Clockpins hängen gemeinsam 
an einem Arduino-Digitalpin. Data A vom ersten Register ist mit einem 
Digitalpin des Arduinos verbunden. Danach hab ich immer den letzen 
Outputpin eines Registers mit dem Datapin des nächsten verbunden. Also 
Q4 A mit Data B am ersten IC; Q4 B vom ersten IC mit Data A vom zweiten 
IC und so weiter. Wenn ich jz mit einem simplen Arduino-Sketch versuche, 
24 High-bits in den Aufbau zu shiften, wird zwar das erste Register ganz 
voll (A und B bereich), danach bleiben alle anderen ICs völlig leer. Ich 
hatte Angst, die Bauteile wären evtl kaputt, also hab ich anstelle des 
ersten ICs eines der baugleichen anderen verwendet und kam zum gleichen 
Ergebnis. Im Datenblatt steht auch, dass sich die Bauteile eignen, um 
auf über 8 bits erweitert zu werden. Meine Breadboard Verkabelung hab 
ich jz schon mehrmals überprüft und ich kann keinen Fehler finden.
Hat jemand hier vllt eine Idee, was mein Problem sein könnte?
Danke für eure Hilfe :)

Link zum Datenblatt:
https://asset.conrad.com/media10/add/160267/c1/-/de/000172715DS01/datenblatt-172715-cd4015be-logik-ic-schieberegister-push-pull-schieberegister-pdip-16.pdf

EDIT: Schaltplan angehängt
Angehängte Dateien:
#6093153
Lesenswert?

Hallo, Moritz!

Deinen Arduino so zu erweitern, müsste zwar funktionieren, ist aber 
nicht sehr elegant. Denn die Schieberegister haben kein Latch, mit dem 
die reingeschobenen Daten synchron auf Ausgänge gegeben werden. Alle 
angeschlossene Peripherie kriegt also die durchgeschobenen Nullen und 
Einsen mit. Wenn es sich "nur" um LEDs handelt, die du leuchten lassen 
willst, ist es relativ unkritisch, weil das menschliche Auge das nicht 
bemerken wird, wenn es schnell genug passiert. Willst du aber mehr damit 
machen, solltest du über einen Portexpander nachdenken. Via SPI oder I²C 
gibt es gute und günstige, z. B. von Microchip, die sich für solche 
Zwecke eignen.

Wenn dein Anspruch jetzt eher akademisch ist, würde ich mal ganz langsam 
takten, so mit 1 Hz etwa, und schauen, ob die erste Eins nach vier 
Takten auch auf Q4A ankommt und nach acht Takten auf Q4B zu sehen ist 
UND auf DATA/A vom nächsten IC anliegt. (Nach deiner Beschreibung 
funktioniert das erste Byte ja.) Dann muss sie eigentlich mit dem 
nächsten Takt auch auf Q1A ausgegeben werden.

Viele Grüße

Jochen
#6093161
Lesenswert?

Im Übrigen würde ich den Fehler, falls ein IC defekt ist, dann eher beim 
zweiten Schieberegister vermuten, nicht beim ersten. Wenn U3 ja alles 
durchschiebt, wäre U2 eine mögliche Fehlerquelle und ein Tausch 
sinnvoller gewesen. Aber du wirst dich schon rantasten. Die ganze Logik 
kannst du ja so langsam bedienen, dass du alle Pins in Ruhe mit dem 
Multimeter durchklingeln kannst.
OP #6093179
Lesenswert?

Danke für die ganzen Antworten!
Dass die Register keinen Latch haben wusste ich schon und das ist für 
meine Anwendung auch relativ unkritisch :)
Das mit dem Testen durch umsetzen der ICs hab ich bisschen schlecht 
formuliert, ich hab natürlich die Bauteile getauscht und jedes einzelne 
an erster stelle probiert (und die selben jweils an den anderen stellen)
Den Sketch hänge ich auch gleich an, ist aber nichts spektakuläres.
Danke auf jeden Fall für eure Hilfe und dass ihr mir die Korrektheit des 
Schaltplans bestätigen konntet. Ich denke, ich werde es einfach mit dem 
Vorschlag von schoenf versuchen, also langsam bits einclocken und 
schauen, wo genau das problem liegen könnte.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren