Forum: Mikrocontroller und Digitale Elektronik DEMUX + FlipFlop Aufbau


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Michael (Gast)


Lesenswert?

Hallo!

Ausgangssituation/Aufgabenstellung:

Mikrokontroller soll insgesamt 42 Ausgänge schalten eigentlich sind es 
6 x 7 Ausgänge also am besten wären 6 mal 1 zu 8 DEMUX.
Grund warum ich das mit DEMUX realisieren will ist, dass der 
Mikrocontroller nicht so belastet wird und zur Verringerung der Ausgänge 
(was ja der Sinn eines DEMUX ist).

Nach diesem DEMUX soll eine FlipFlop Schaltung stehen die den "Impuls" 
auf "1" hält für den jeweiligen Pin (sprich als ob der DEMUX + FF nicht 
vorhanden wäre).

Nach dieser FlipFlop Schaltung steht eine Treiberstufe (ist schon fertig 
nur zur Komplettierung des Beitrags) mittels Darlington Transistor und 
15k Widerstand.

Meine Frage wäre jetzt ob ihr irgendwelche billigen Bauteile kennt, die 
für so was geeignet sind (soll ja nicht zu viel Kosten), und wie ich das 
am besten mit den FF mache,
also mit dem Setzen bzw. Rücksetzen und auch welches FF ich nehmen 
könnte z.B. ein T-FlipFlop am besten wäre natürlich ein Link zu einer 
Beispiel Schaltung.

Vielen Dank im Voraus!

Mfg Michael

von Jürgen (Gast)


Lesenswert?

Um ein digitales Grab zu vermeiden, bieten sich z. B. 2 AVR-Controller 
im 40pol. Gehäuse an.

von Falk B. (falk)


Lesenswert?

@  Michael (Gast)

>Mikrokontroller soll insgesamt 42 Ausgänge schalten

Wenn es nicht superschnell sein muss, nimmt man dafür Schieberegister.

AVR-Tutorial: Schieberegister

> eigentlich sind es
>6 x 7 Ausgänge also am besten wären 6 mal 1 zu 8 DEMUX.
>Grund warum ich das mit DEMUX realisieren will ist, dass der
>Mikrocontroller nicht so belastet wird und zur Verringerung der Ausgänge
>(was ja der Sinn eines DEMUX ist).

Wie oft willst du denn die Ausgänge schalten? Auch mit Schieberegistern 
ist 1 kHz Updaterate kein Thema.

>Nach diesem DEMUX soll eine FlipFlop Schaltung stehen die den "Impuls"
>auf "1" hält für den jeweiligen Pin (sprich als ob der DEMUX + FF nicht
>vorhanden wäre).

Nennt man Register.

>Nach dieser FlipFlop Schaltung steht eine Treiberstufe (ist schon fertig
>nur zur Komplettierung des Beitrags) mittels Darlington Transistor und
>15k Widerstand.

ULN2008 ist hier vielleicht sinnvoll.

>Meine Frage wäre jetzt ob ihr irgendwelche billigen Bauteile kennt, die
>für so was geeignet sind (soll ja nicht zu viel Kosten), und wie ich das
>am besten mit den FF mache,

1x 74HC138 (1:8 Decoder)
6x 74HC373 (8 Bit Latch)

Damit bekommst du 6x8 zusätzliche Ports, die du beliebig setzen und 
löschen kannst. Ansteuerung ist einfach, so etwa wie hier.

http://www.mikrocontroller.net/articles/Speicher#Mit_Latch

Daten für Port anlegen (8 Bit)
Dekoder setzen
Dekoder rücksetzen

Fettig.

Braucht 8+3 IOs an deinem Mikrocopntroller. Lohnt sich aber nur, wenn du 
WIRKLICH mit mehreren Dutzend kHz dort Zugriffe machen musst.

von Uwe (Gast)


Lesenswert?

ein 42 Bit Schieberegister mit Enable in nem CPLD oder nen 1 zu 42 demux 
mit Nachgeschalteten RSFlipFlop in nem CPLD. Ist schön klein. Ist aber 
warscheilich eh egal weil du danch noch Darlibngton und Widerstände 
Freilaufdioden ... hast.

von Ulrich (Gast)


Lesenswert?

Die übliche Schaltung um so viele Ausgänge zu erreichen ist eigentlich 
ein Schieberegister wie 74HC595 - das gibt pro IC 8 Ausgänge. Die 
Ansteuerung geht wie bei SPI mit 3 Leitungen, ggf. auch der Hardware SPI 
Schnittstelle am µC.

Wenn es so sein soll wie Beschrieben, könnte ein 74HC273  oder 74HC573 
weiter helfen. Das gibt dann je 8 Ausgänge pro IC. Dazu braucht man dann 
noch einen Demux zum Auswählen des gerade gewünschten ICs.

von Michael (Gast)


Lesenswert?

Danke für die Infos!

von Falk B. (falk)


Lesenswert?

Hmm, ioch glaub ein 8 Bit Register als 74HC273 ist hier besser, weil 
direkt ansteuerbar durch den Dekoder.

von Michael (Gast)


Lesenswert?

Muss das Thema leider nochmal aufwärmen!

So mein Problem ist das ich grad nicht ganz kapier ob das wirklich 
funktioniert.
Bausteine:
74HC138 Decoder
74HC273 D-FF

Der Decoder is ja [Inverting]

G2B G2A  G1 C B A  Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
 X   X   L  X X X  H  H  H  H  H  H  H  H
 X   H   X  X X X  H  H  H  H  H  H  H  H
 H   X   X  X X X  H  H  H  H  H  H  H  H
 L   L   H  L L L  L  H  H  H  H  H  H  H
 L   L   H  L L H  H  L  H  H  H  H  H  H
 L   L   H  L H L  H  H  L  H  H  H  H  H
 L   L   H  L H H  H  H  H  L  H  H  H  H
 L   L   H  H L L  H  H  H  H  L  H  H  H
 L   L   H  H L H  H  H  H  H  H  L  H  H
 L   L   H  H H L  H  H  H  H  H  H  L  H
 L   L   H  H H H  H  H  H  H  H  H  H  L

G2B und G2A werden auf GND gelegt. -> also Egal

Meine Frage da Y0-Y5 auf die 6 FF kommt werden ja immer ALLE bis auf 
einen Durchgeschalten oder kapier ich das Logic Diagram vom FF nicht so 
ganz, weil nach meiner Ansicht müssten die Ausgänge vom Decoder 
invertiert sein.

von Michael (Gast)


Lesenswert?

Meine das Y0-Y5 auf die 6 Clock Eingänge der FF's kommt und ob ich das 
Logic Diagram vom FF nicht ganz verstehe.

von Stefan W. (dl6dx)


Lesenswert?

Michael schrieb:
> Meine das Y0-Y5 auf die 6 Clock Eingänge der FF's kommt und ob ich das
> Logic Diagram vom FF nicht ganz verstehe.

Hallo Michael,

du brauchst für Latches mit positivem Clock-Puls einen nicht 
invertierenden Decoder, z.B. den HC238. Die Ausgänge kommen an CP 
(HC273) bzw. LE (HC573).

Die Auswahl des anzusteuernden Latches erfolgt über die drei 
Adressleitungen des Decoders, die an drei Portpins kommen. Der 
Clock-Puls wird über einen zusätzlichen Portpin an einem der 
Enable-Eingänge erzeugt (nehmen wir mal /E1).

Die Ansteuerung sieht dann so aus:

Initialisierung der Ansteuerung:
1. Portpin mit /E1 auf H setzen.

Datenausgabe auf ein Latch:
1. Adresse an die drei Portpins mit A0-A2 anlegen.
2. Daten an die Portpins mit D0-D7 anlegen.
3. Portpin mit /E1 auf L setzen.
4. Portpin mit /E1 auf H setzen.

Ok?

Grüße

Stefan

von Michael (Gast)


Lesenswert?

Ok Danke Stefan jetzt hab ichs kapiert!

Für alle die sich Fragen warum nicht mit Schieberegister, einfach weil 
ich das mal anders machen wollte.

von Stefan W. (dl6dx)


Lesenswert?

Bitte, gerne!

Grüße

Stefan

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.