Forum: Mikrocontroller und Digitale Elektronik Gibt es solch eine fertige Digitalschaltung? (serial clock to parallel output)


von Marcel K. (viewer)


Angehängte Dateien:

Lesenswert?

Hallo liebe Forumgemeinde.

Ich habe früher, in meiner Ausbildung, immer gerne mit Logikbausteine 
gebastelt. (R/S- J/k FlipFlops….) Aber für das, was mir gerade durch den 
Kopf geht, habe ich noch keinen Logikbaustein gefunden.

Ich wollte hier im Forum fragen ob eventuell jemand von euch hier schon 
einmal eine ähnliche Schaltung bzw. Logikbaustein gesehen habt.

Ich suche nach einer Möglichkeit, mit einem Clock-Signal 4 Ausgänge zu 
schalten. Ich habe mal eine primitive Schaltung aufgezeichnet. (Sorry 
für meine schlimme Schrift aber mein Zeigefinger ist gerade verstaucht)

Ich suche kein Schieberegister, denn so halbiert sich lediglich die 
Frequenz der Ausgänge. Das meine ich nicht. Ich möchte einfach 
nacheinander 4 Ausgänge ein/aus schalten.

Und ja, das Ganze könnte ich auch mit einem guten, alten AVR Tiny 
programmieren, aber das möchte ich nicht.

Kennt von euch hier jemand im Forum solch einen Digital-Chip?

Viele Grüße und ein schönes Wochenende 😊

von Frank L. (hermastersvoice)


Lesenswert?

4017?

von J. S. (engineer) Benutzerseite


Lesenswert?

Wenn es ein Baustein sein soll und die Zählweise immer so ist, dann ein 
4017 (der "Johnsonzähler"). Man muss dann den Ausgang 4 auf der Reset 
legen, damit er nicht komplett durchzählt, sondern bei 4 looped. Damit 
hat man früher Lauflichter und Ampeln gebaut. Ampel zählt halt alle 
Phasen und die Ausgänge gehen inklusive auf die LEDs.

von Michael M. (Firma: Autotronic) (michael_metzer)


Lesenswert?

Frank L. schrieb:
> 4017?

Ja, aber die vier verwendeten Ausgänge des CD4017 müssen jetzt noch mit 
dem Clock-Eingang des selbigen mit einem CD4081 UND-verknüpft werden, 
damit die Schaltung dem oben gezeigten Flussdiagramm entspricht.

von Joachim B. (jar)


Lesenswert?

Frank L. schrieb:
> 4017?
https://www.ti.com/lit/ds/symlink/cd4017b.pdf?ts=1687020866799

hat 11 Ausgänge und wiederholt sich nicht nach 5 clk sondern nach 11 clk

Marcel K. schrieb:
> mit einem Clock-Signal 4 Ausgänge

evtl. geht am Ausgang 4 Pin 10 auf den reset Pin15 zurück zu koppeln.

von Falk B. (falk)


Lesenswert?

Michael M. schrieb:
> Ja, aber die vier verwendeten Ausgänge des CD4017 müssen jetzt noch mit
> dem Clock-Eingang des selbigen mit einem CD4081 UND-verknüpft werden,
> damit die Schaltung dem oben gezeigten Flussdiagramm entspricht.

Nö. Man klemmt den 5 Ausgang ans asynchrone Reset und gut.

von C-hater (c-hater)


Lesenswert?

Marcel K. schrieb:

> Kennt von euch hier jemand im Forum solch einen Digital-Chip?

Grob: Schieberegister mit Möglichkeit zum Parallel-Preload oder Zähler 
mit mit eingebautem 1:N-Decoder und Reset.

Es gibt wahrscheinlich ungefähr ein knappes Dutzend ICs in der 
4xxx-Reihe, die diese Anforderungen erfüllen.

> Aber für das, was mir gerade durch den
> Kopf geht, habe ich noch keinen Logikbaustein gefunden.

Nunja. Man muss die Sache nicht einfach nur durch den Kopf durchziehen 
lassen, sondern auch bearbeiten...

von Ron-Hardy G. (ron-hardy)


Lesenswert?

man könnte ein PLD nehmen

von Michael M. (Firma: Autotronic) (michael_metzer)


Lesenswert?

Falk B. schrieb:
> Man klemmt den 5 Ausgang ans asynchrone Reset und gut.

Das sowieso. Aber schau dir das Diagramm nochmal ganz genau an. Die 
Ausgänge sollen immer nur dann High sein, wenn am Clock-Eingang auch ein 
High ansteht. Zwischendurch gibt's auch immer ein Low!

von Marcel K. (viewer)


Lesenswert?

Hallo alle zusammen. Ihr seid so geil...🥰😎😁

Ich wusste das ich mich auf dieses Forum verlassen kann.
Man, auf ein Lauflicht bin ich gar nicht gekommen. Stimmt, das ist die 
gleiche Anwendung.

Nach dem ersten Blick ins Datasheet macht der 4017 genau das, was ich 
gesucht habe. Meine Anforderung wäre auch gewesen, ggf. die Ausgänge auf 
5,6 oder sogar 7 zu erhöhen.
Danke auch gleich für die Idee mit dem Reset- Anschluss um die "Zählung" 
zu begrenzen. Echt Perfekt!

Ihr seit echt spitze. Vielen Dank für eure super, schnelle Lösung.

Merci. 🙏

von Jörg R. (solar77)


Lesenswert?

Michael M. schrieb:
> Falk B. schrieb:
>> Man klemmt den 5 Ausgang ans asynchrone Reset und gut.
>
> Das sowieso. Aber schau dir das Diagramm nochmal ganz genau an. Die
> Ausgänge sollen immer nur dann High sein, wenn am Clock-Eingang auch ein
> High ansteht. Zwischendurch gibt's auch immer ein Low!

Ich vermute der TO hat nur versucht es bildlich darzustellen, ohne das 
Timing genau so zu meinen wie auf der Skizze. Er wird m.A.n. schon die 
Funktion des 4017 meinen.

Marcel K. schrieb:
> Ich suche nach einer Möglichkeit, mit einem Clock-Signal 4 Ausgänge zu
> schalten. Ich habe mal eine primitive Schaltung aufgezeichnet.
> Ich möchte einfach nacheinander 4 Ausgänge ein/aus schalten.

: Bearbeitet durch User
von Marcel K. (viewer)


Lesenswert?

Ja, genau. Ich wollte nur im groben erklären was meine Idee "braucht".

Ihr habt das alles schon richtig verstanden. Der 4017 ist wirklich die 
Lösung. ;)

von Jörg R. (solar77)


Lesenswert?

Marcel K. schrieb:
> Nach dem ersten Blick ins Datasheet macht der 4017 genau das, was ich
> gesucht habe. Meine Anforderung wäre auch gewesen, ggf. die Ausgänge auf
> 5,6 oder sogar 7 zu erhöhen.

Woher kommt das Clocksignal? Wenn es von einem Taster kommt musst Du an 
die Entprellung denken. Wobei der Clockeingang beim 4017 
Schmitt-Trigger-Charakteristik hat, das macht es etwas einfacher.

von Marcel K. (viewer)


Lesenswert?

Hi Jörg R., danke für Deinen Hinweis...

Also das Clock Signal soll von einem µC kommen.
Ich habe eine Tastartur- Matrix mit 5x5 Zeilen/Spalten.
Ich hatte die Idee, die Zeilen mit lediglich einem einzigen Pin (clock) 
anzusteuern. So könnte ich mir ein paar Pins einsparen. Im Moment habe 
ich 5 Aus- bzw. Eingänge vom µC verwendet.

Mal sehen ob ich mir die Eingänge (Spalten) ggf. auch noch irgendwie 
einsparen kann (parallel to binary?).

Mal sehen... :)

von Brüno (dominic_m833)


Lesenswert?

Marcel K. schrieb:
> parallel to binary?

74HC165

von Marcel K. (viewer)


Lesenswert?

Hi Brüno,

Vielen Danke für Deinen Vorschlag.

Ich dachte aber eher an einen:

MC14532B

oder auch:

"8-line to 3-line Encoder (LS_148).
So kann ich mit drei Leitungen, bis zu 8 Eingänge abfragen.

Schönen Sonntag und Grüße,
Marcel (",)

von J. S. (engineer) Benutzerseite


Lesenswert?

Falk B. schrieb:
> Nö. Man klemmt den 5 Ausgang ans asynchrone Reset und gut.

Dann glitched es aber (siehe Nachbarthread) :-) :-)

von Falk B. (falk)


Lesenswert?

J. S. schrieb:
>> Nö. Man klemmt den 5 Ausgang ans asynchrone Reset und gut.
>
> Dann glitched es aber (siehe Nachbarthread) :-) :-)

Wie meinen? Ja, der 5. Ausgang erzeugt einen kurzen Puls, in Fachkreisen 
Glitch genannt. Da der aber sonst nicht weiter verwendet wird, ist 
das unkritisch.

von Harald W. (wilhelms)


Lesenswert?

Joachim B. schrieb:

>> 4017?
> hat 11 Ausgänge und wiederholt sich nicht nach 5 clk sondern nach 11 clk

Wo hat der 4017 denn seinen elften Ausgang versteckt? :-)

von Christian H. (ch-hunn)


Lesenswert?

Marcel K. schrieb:
> Hi Jörg R., danke für Deinen Hinweis...
>
> Also das Clock Signal soll von einem µC kommen.
> Ich habe eine Tastartur- Matrix mit 5x5 Zeilen/Spalten.
> Ich hatte die Idee, die Zeilen mit lediglich einem einzigen Pin (clock)
> anzusteuern. So könnte ich mir ein paar Pins einsparen. Im Moment habe
> ich 5 Aus- bzw. Eingänge vom µC verwendet.
>
> Mal sehen ob ich mir die Eingänge (Spalten) ggf. auch noch irgendwie
> einsparen kann (parallel to binary?).
>
> Mal sehen... :)

Das wird nicht zuverlässig funktionieren, da der Controller nicht weiss, 
wo der Zähler des 4017 steht. Auch wenn du vom Controller regelmässig 
einen Reset des 4017 machst, ist immer noch nicht zu 100% gewährleistet, 
dass beide immer synchron sind.

Such mal nach Tastatur Matrix.

von Michael M. (Firma: Autotronic) (michael_metzer)


Angehängte Dateien:

Lesenswert?

Harald W. schrieb:
> Wo hat der 4017 denn seinen elften Ausgang versteckt? :-)

Er meint wahrscheinlich den Carry out Ausgang Pin 12. Der ist aber für 
diese Schaltung nicht relevant.

von Rainer W. (rawi)


Lesenswert?

Joachim B. schrieb:
> hat 11 Ausgänge und wiederholt sich nicht nach 5 clk sondern nach 11 clk

Liest du auch?

J. S. schrieb:
> Man muss dann den Ausgang 4 auf der Reset legen, damit er nicht komplett
> durchzählt, sondern bei 4 looped.

von Marcel K. (viewer)


Lesenswert?

Christian H. schrieb:
> Das wird nicht zuverlässig funktionieren, da der Controller nicht weiss,
> wo der Zähler des 4017 steht. Auch wenn du vom Controller regelmässig
> einen Reset des 4017 machst, ist immer noch nicht zu 100% gewährleistet,
> dass beide immer synchron sind.
>
> Such mal nach Tastatur Matrix.

Hi Christian H.,

hmmm, da muss ich Dir aber Recht geben. Das könnte zum Problem werden.

Ich könnte vielleicht den 5. Ausgang abprüfen und erst mit dem 6. 
Ausgang das Ganze zurücksetzen. Dann wäre immer eine Pause im Zyklus. So 
bräuchte ich einen weiteren Pin am Prozessor.

Wenn ich dann aber noch einen weiteren Pin spendiere, könnte ich z.B. 
gleich einen BCD-to-Decimal Decoder verwenden (CD4028).
Ich muss mir das Ganze also noch mal genauer überlegen.

Aber auf jeden Fall schon mal recht herzlichen Dank für den Hinweis. So 
einen Fehler findet man beim experimentieren nicht wirklich :)

Marcel (",)

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Man könnte einen Trick verwenden, indem man das IO-Pin auch mal auf 
Eingang schaltet. Siehe Anhang. Man taktet und schaltet CLK_SYNC auf 
HIGH. Dann schaltet man das IO-Pin auf Eingang mit internem Pull Up. 
Kurz warten (ein paar us), dann den Pegel des IO-Pins lesen.

IO-Pin bleibt HIGH -> Q0 aktiv
IO-Pin ist LOW -> Q0 inaktiv

Damit kann man ggf. immer wieder synchronisieren.

von Joachim B. (jar)


Lesenswert?

Rainer W. schrieb:
> Liest du auch?

ja du auch?

Joachim B. schrieb:
> evtl. geht am Ausgang 4 Pin 10 auf den reset Pin15 zurück zu koppeln.

Michael M. schrieb:
> Er meint wahrscheinlich den Carry out Ausgang Pin 12. Der ist aber für
> diese Schaltung nicht relevant.

ob relevant oder nicht, es ist ein AUSGANG oder hat jemand Einsprüche?

von Michael M. (Firma: Autotronic) (michael_metzer)


Lesenswert?

Joachim B. schrieb:
> ob relevant oder nicht, es ist ein AUSGANG oder hat jemand Einsprüche?

Nein. Du hast natürlich im Prinzip Recht.

Das ist quasi ein Ausgang mit 50% Pulsweite. Die anderen 10 Ausgänge (Q0 
bis Q9) haben alle nur eine PW von 10%.

von Joachim B. (jar)


Lesenswert?

Michael M. schrieb:
> Du hast natürlich im Prinzip Recht

an welcher Stelle ist Pulsweite eine Bedingung für Ausgang?

von Jörg R. (solar77)


Lesenswert?

Joachim B. schrieb:
> Michael M. schrieb:
>> Du hast natürlich im Prinzip Recht
>
> an welcher Stelle ist Pulsweite eine Bedingung für Ausgang?

Wo hat Michael das behauptet?

von Michael M. (Firma: Autotronic) (michael_metzer)


Lesenswert?

Joachim B. schrieb:
> an welcher Stelle ist Pulsweite eine Bedingung für Ausgang?

Laut Dabla an keiner Stelle, aber der TE benötigt diesen Ausgang nicht 
und das geht schon an der ersten Stelle hervor (erster Beitrag ganz 
oben).

von Joachim B. (jar)


Lesenswert?

Jörg R. schrieb:
> Wo hat Michael das behauptet?

indirekt durch sein "im Prinzip" mit nachfolgender PW Erläuterung.

Was bitte hat PW hier zu suchen?
Ist die Definition Ausgang nur gültig wenn er PW macht?

Michael M. schrieb:
> Joachim B. schrieb:
>> an welcher Stelle ist Pulsweite eine Bedingung für Ausgang?
>
> Laut Dabla an keiner Stelle, aber der TE benötigt diesen Ausgang nicht

Habe ich was anderes behauptet?
Egal ob der TE den braucht ist er ein Ausgang!

: Bearbeitet durch User
von Michael M. (Firma: Autotronic) (michael_metzer)


Lesenswert?

Joachim B. schrieb:
> Habe ich was anderes behauptet?
> Egal ob der TE den braucht ist er ein Ausgang!

Dann sprechen wir ja jetzt endlich die gleiche Sprache.

von Joachim B. (jar)


Lesenswert?

Michael M. schrieb:
> Dann sprechen wir ja jetzt endlich die gleiche Sprache.

und warum hatte ich nur "im Prinzip" Recht?

Ich schrieb nur das es

Joachim B. schrieb:
> 11 Ausgänge

gibt und nicht nur im Prinzip gibt es die sondern real!

von Michael M. (Firma: Autotronic) (michael_metzer)


Lesenswert?

Joachim B. schrieb:
> sondern real!

Wenn hier im Forum vom CD4017 gesprochen wird, dann werden immer die 10 
relevanten Ausgänge behandelt und der 11. Ausgang führt nur zu 
Verwirrungen.

Ohne weitere Benennung des 11. Ausgangs denken sonst viele, dass der 
CD4017 durch 11 teilen könnte.

von Joachim B. (jar)


Lesenswert?

Michael M. schrieb:
> Ohne weitere Benennung des 11. Ausgangs denken sonst viele

reine Nebelkerze und hat nichts mit dem Thema zu tun.

Es denken auch viele die Erde ist eine Scheibe und wurde in 6 Tagen 
erschaffen.

Die Gedanken sind frei aber nicht immer richtig.

von Michael M. (Firma: Autotronic) (michael_metzer)


Lesenswert?

Joachim B. schrieb:
> Die Gedanken sind frei aber nicht immer richtig.

Dann musst du aber damit rechnen, dass du hier nicht ernst genommen 
wirst. Jeder weiß, dass der CD4017 nicht durch 11 teilen kann!

von Falk B. (falk)


Lesenswert?

Falk B. schrieb:
> Dann schaltet man das IO-Pin auf Eingang mit internem Pull Up.
> Kurz warten (ein paar us), dann den Pegel des IO-Pins lesen.

Korrektur. Man schaltet nur auf Eingang, der interne Puul-Up ist nicht 
nötig, denn der Pegel ist ja immer definiert.

von Peter D. (peda)


Lesenswert?

Man kann auch ein Schieberegister (74HC164) mit RC-Glied von CP zum 
DS-Eingang nehmen.
Ein kurzes Low entlädt den Kondensator nicht und schiebt eine 1 ein.
Ein langes Low entlädt den Kondensator und schiebt eine 0 ein.
High muß so lang sein, daß der Kondensator sicher auf 1 geladen wird.

von Nikolaus S. (Firma: Golden Delicious Computers) (hns)


Lesenswert?

Marcel K. schrieb:
> Hi Jörg R., danke für Deinen Hinweis...
>
> Also das Clock Signal soll von einem µC kommen.
> Ich habe eine Tastartur- Matrix mit 5x5 Zeilen/Spalten.
> Ich hatte die Idee, die Zeilen mit lediglich einem einzigen Pin (clock)
> anzusteuern. So könnte ich mir ein paar Pins einsparen. Im Moment habe
> ich 5 Aus- bzw. Eingänge vom µC verwendet.

Falls Du mit dem µC I2C ansteuern kannst, reichen 2 Leitungen (evtl. 
plus eine für Interrupt) + ein TCA8418. Der macht auch gleich die 
Entprellung.

von Peter D. (peda)


Lesenswert?

Nikolaus S. schrieb:
> ein TCA8418

Wem das WQFN mit 0,5 Pitch zu fummelig ist, der kann auch den Klassiker 
nehmen 2 * PCF8574/A, die gibt es auch als PDIP.

von Brüno (dominic_m833)


Lesenswert?

Marcel K. schrieb:
> So kann ich mit drei Leitungen, bis zu 8 Eingänge abfragen.

Nö, damit kannst du den ersten gedrückten von bis zu 8 Eingängen 
anfragen. Ist z.B. der erste gedrückt, kriegst du von den folgenden 
nichts mit. Beim HC165 ist das anders, bei Latch werden die Stati aller 
Eingänge ins Register eingelesen und dann mit SCK und SDA an den uC 
weitergereicht. Macht auch 3 Leitungen, bei beliebig vielen Eingängen, 
weil kaskadierbar.

von Marcel K. (viewer)


Lesenswert?

Hallo zusammen,

erst mal vielen Dank für all eure tollen Tipps und Ideen. Das weiß ich 
sehr zu schätzen.

Mir ist bewusst, dass es auch die Möglichkeit gibt, z.B. einen Bus wie 
I2C zu nutzen. Das ist von mir aber nicht vorgesehen.
Im Moment nutze ich einen Timer um meine 5x5 Matrix anzusteuern. (Zeilen 
/ Pin-Outputs).

Die Idee von „falk“ finde ich eigentlich sehr charmant. Da die 
Matrixansteuerung allerdings durch den Timer zyklisch angesprungen wird, 
benötige ich jetzt noch zusätzliche Timer-Slots um den Clock-Pin 
zusätzlich noch umstellen bzw. den Wert noch einzulesen. Ich denke das 
ist aber echt ein Versuch wert.

Beim Einlesen der gedrückten Tasten (Spalten / Pin-Inputs) sehe ich 
schon einen Vorteil z.B. einen "8-line to 3-line Encoder (LS_148)“ zu 
verwenden. Und ja, mit LS_148 kann man maximal nur eine Taste erkennen. 
Dies wäre in meinem Fall aber OK so, da ich davon ausgehe, dass keine 
weiteren Tasten parallel gedrückt werden. Wie z.B. bei einer numerischen 
Tastatur für die Passworteingabe.

Viele Grüße an alle,

Marcel(",)

von Peter D. (peda)


Lesenswert?

Marcel K. schrieb:
> Dies wäre in meinem Fall aber OK so, da ich davon ausgehe, dass keine
> weiteren Tasten parallel gedrückt werden. Wie z.B. bei einer numerischen
> Tastatur für die Passworteingabe.

Dann ginge auch über den ADC einlesen:
Beitrag "Tastenmatrix auslesen über nur 2 Leitungen"

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.