Forum: Mikrocontroller und Digitale Elektronik DEMUX Schaltung funktionsfähig


von Michael (Gast)


Angehängte Dateien:

Lesenswert?

Hi!

Ich hätte eine kurze Frage zu meiner Schaltung (leider schlechte Quali), 
und zwar wollte ich wissen ob die Schaltung so funktioniert wie ich mir 
das denke.

Bausteine: 1xDEMUX 74HC138 3 to 8 Decoder
           6xFF    74HC273 D-FlipFlop 8 Ein-und Ausgänge

In Eagle steht zwar noch ein N hinten dabei aber das sagt glaub ich nur 
was übers Gehäuse aus.

Richtig?
Ich schreibe über den uC auf ALLE FF die gewünschten Pins auf den D 
Eingang so zu sagen, und sobald ich über den DEMUX das Clock Signal gebe 
wird nur der EINE IC "freigegeben" den ich Auswähle. Mit CLR noch nicht 
Eingezeichnet natürlich wieder Löschbar bzw alle auf 0 setzen (was den 
selben Effekt hätte).

So kurze Frage noch: Hab ich irgentetwas VERGESSEN und passen 100nF als 
Koppelkondensator?

von Michael (Gast)


Lesenswert?

Sry meinte Abblockkondensator

von kaplic (Gast)


Lesenswert?

Das könnte so funktionieren!
Das ist aber ein riesiger Aufwand! Ich würde einen CPLD dafür nehmen 
oder zwei kleine CPLDs. Da könnte man dann die Pinnbelegung sogar so 
anpassen, dass es im Platinen-Layout kaum Kreuzungen gibt oder es sich 
besonders einfach layouten lässt! Unter Port-Expander findest du mit 
Sicherheit sogar schon alles fertig vorbereitet.

von Michael (Gast)


Lesenswert?

Ja Danke für die Info, mit CPLD kenn ich mich leider noch nicht aus, und 
hab auch keinen Plan wie man die "Programmiert" und ich will das 
Eigentlich schon mit DEMUX + FF realisieren. Ich wollte hier nur wissen 
ob ich irgentwas Falsch gemacht bzw. Vergessen habe.

Aber ich muss dir Recht geben zum Routen kann man das fast Vergessen.

Mfg Michael

von bko (Gast)


Lesenswert?

könnte aber auch sporadisch schiefgehen, denn durch
Signallaufzeiten der Logik im 138er könnten kurze
Glitches der Decoder Ausgänge an den Ck Eingängen der 273er
zu ungewollte Datenübernahme führen...

Kann man vermeiden indem man die Freigabe Eingänge
des 138ers entsprechend benutzt z.B so

A B C  Pin6
0 0 0    0    Adresse setzen
0 0 0    1    nun wird einer der Ausgänge 0
0 0 0    0     wird alles wieder 1
0 0 1    0   neue Adresse
0 0 1    1   nächster Ausgang wird 0
0 0 1    0    usw usw usw...

Und bei der 74HC** Serie keinen Eingang offen lassen (floaten)
Also beim 138 nun z.B. den Pin 4 und 5 auf Grund legen...

Dann wirds stabiler gehen.

von Michael (Gast)


Lesenswert?

Ok Danke schonmal!

Da haben sich bei mir jetzt Fragen aufgeworfen:
 - Soll ich die CLR Eingänge auch auf z.B. einen Ausgang des Decoders 
geben

 - Ich kapier noch nicht ganz wie du das meinst mit dem Pin 6


A B C  Pin6
0 0 0    0    Adresse setzen -> Adresse wird auf die D Eingänge der 
273er gesetzt aber nicht "Durchgeschalten"
0 0 0    1    nun wird einer der Ausgänge 0 -> Ein Ausgang vom Decoder 
wird freigegben und dieser spricht einen Clock an
0 0 0    0     wird alles wieder 1 -> warum wird ALLES wieder 1
0 0 1    0   neue Adresse
0 0 1    1   nächster Ausgang wird 0
0 0 1    0    usw usw usw...

von bko (Gast)


Lesenswert?

>0 0 0    0     wird alles wieder 1 -> warum wird ALLES wieder 1

Nunja, weil freundliche Entwickler (z.B. bei Ti
http://www.ti.com/product/sn74hc138) dafür
gesorgt haben, dass wenn Pin6 (bei TI als G1 bezeichnet)
beim 138er 0 ist, alle Ausgäge der 128ers (hier Y1..8 genannt)
1 werden ;-)

Aus dem TI pdf (unter Funtion Table) :

G1 G2A G2B C B A  Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
X   H   X  X X X  H H H H H H H H
X   X   H  X X X  H H H H H H H H
L   X   X  X X X  H H H H H H H H
H   L   L  L L L  L H H H H H H H
H   L   L  L L H  H L H H H H H H
H   L   L  L H L  H H L H H H H H
H   L   L  L H H  H H H L H H H H
H   L   L  H L L  H H H H L H H H
H   L   L  H L H  H 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  H H H H H H H L

X-meint hier 0 oder 1 - usenglisch: dont care.

In dem TI-datenblatt ist die Schaltung  des 138ers (auf Seite 3) 
abgebildet, dort sieht man wie G1 wirkt.

von Michael (Gast)


Lesenswert?

Ok jetzt hab ichs kapiert, ganz vergessen das ich ja den Invertierenden 
hab.

Danke

von Axel S. (a-za-z0-9)


Lesenswert?

Warum machst du dir den Streß mit einzelnen Latches und einem 
Adreßdecoder? Nimm doch einfach Schieberegister wie hier erklärt:

AVR-Tutorial: Schieberegister

OK, einzelne Bits wackeln zu lassen dauert mit Schieberegister etwas 
länger, weil du immer alle 6*8 Bits rausschieben mußt. Aber mit SPI geht 
das fix und vor allem total simpel. Und wenn du regelmäßig mehrere Bits 
ändern mußt, dürften Schieberegister am Ende sogar schneller sein.

Noch ein Vorteil: mit Schieberegister ändern sich immer all Bits 
gleichzeitig. Bei der oben skizzierten Variante immer nur die Bits, die 
auf dem gleichen Latch sind.

Und du brauchst natürlich viel weniger Pins.


XL

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.