Forum: Mikrocontroller und Digitale Elektronik ausgänge multiplexen


von noname (Gast)


Lesenswert?

hallo!
ich möchte ausgänge über einen multiplexer ansteuern. bzw. um es besser
zu formulieren:
ich möchte 8 ausgänge schalten, wovon immer nur einer gleichzeitig
aktiv sein muss. also dacht ich mir, ein multiplexer spart mir ausgänge
am controller. nun hab ich mir einen 74HC151 dafür besorgt, aber im
datenblatt ist die rede von 8 "data inputs" und 1 "output". ich
hätte aber gerne den umegkehrten fall: 1 input (vom controller) auf 8
outputs (die ich schalten möchte).
funktioniert der 74HC151 bidirektional, oder hab ich mir den falschen
chip gekauft?

von inoffizieller WM-Rahul (Gast)


Lesenswert?

Du brauchst ja auch einen _De_multiplexer.

Nimm lieber ein Schieberegister '595.

von Schoasch (Gast)


Lesenswert?

Was du suchst wäre ein Schieberegister (Seriell in..parallel out) oder
eine IO-Expander. Aber in jedem fall brauchst du mindestens 2 Pins
deinen µC. Wenn du nur 2Pins zur verfügung hast, würde ich einen
I2C-IO-Expander emfpehlen.Wenn es mehr Pins sein dürfen, dann wären
SPI-Schieberegister ..zumindest billiger ;-).

mfg Schoasch

von Detlev (Gast)


Lesenswert?

Was willst du genau?

8 Ausgänge, es ist maximal einer auf low => Du brauchst einen Dekoder
(z.B 74XX138)

1 Eingang an einen von 8 Ausgängen schalten, alle anderen Ausgänge sind
hochohmig : Du brauchst einen *De*multiplexer, z.B 4051 (ist aber CMOS)

von Pete Nerlinger (Gast)


Lesenswert?

es gibt auch 1wire Portexpander...ds irgendwas bei maxim...

von Manos (Gast)


Lesenswert?

"wovon immer nur einer gleichzeitig aktiv sein muss"
In welchem Zustand sollen denn dann die anderen 7 sein? Low oder der
letzte Zustand (Data Hold)?
Ich weiß jetzt nicht, ob ich bei 8 Ausgängen von denen möglicherweise
immer nur einer High sein soll mit I2C oder SPI arbeiten würde da ich
ja wahrscheinlich für einen reinen 3x8 Decoder auch nur 3 Pinne
benötigen würde (ist natürlich auch alles eine Preis- und
Verfügbarkeitsfrage).

Vom Forum her gehe ich ma davon aus dass es sich "wahrscheinlich" um
einen AVR handeln wird. Welchen Typ willst Du einsetzen? Vielleicht ist
da der nächst größere die einfachere Alternative wenn das Programm noch
nicht stehen sollte (Mega8 statt Tiny26 z.B.).

von noname (Gast)


Lesenswert?

ist ein atmega8, den kann ich auch nicht durch einen größeren ersetzen.
ich hab mich auch vertan :) also ich hab 8 LEDs. jedoch leuchten i.d.r.
zwei davon, die anderen sind aus. dann fällt alles, was mit
demultiplexern funktioniert ja schonmal weg.
also doch eher ne lösung über schieberegister? (ich hab mich noch nie
mit i2c oder spi auseinandergesetzt, und weiß nicht, ob ich lust habe,
mir das für 8 schnöde leds anzueignen ;) )

von inoffizieller WM-Rahul (Gast)


Lesenswert?

Zu Schieberegistern gibt es einen schönen Wiki-Artikel (wenn ich den
finden würde, würde ich den Link auch posten).

von Reiner (Gast)


Lesenswert?

"(ich hab mich noch nie mit i2c oder spi auseinandergesetzt, und weiß
nicht, ob ich lust habe, mir das für 8 schnöde leds anzueignen ;) )"

Schau Dir mal an wie man eine Sieben-Segment LED Anzeige mit SPI
multiplext.  Ein Datenwort ins SPI Register und der Prozessor macht den
Rest.  Gesamtaufwand sind höchstens 10 Zeilen Code (inkl.
Initialisierung).  Verbindung Schieberegister-Prozessor sind Data und
Clock.  Reset für das Schieberegister brauchst Du nicht wenn Du immer
8bit sendest.

von noname (Gast)


Lesenswert?

"Ein Datenwort ins SPI Register und der Prozessor macht den
Rest.  Gesamtaufwand sind höchstens 10 Zeilen Code (inkl.
Initialisierung)."

naja. das mag sein, dass das 10 zeilen code sind. aber dafür muss ich
doch die SPI schnittstelle im atmega8 aktivieren oder? sowas wollte ich
eigentlich vermeiden.

von noname (Gast)


Lesenswert?

moment: geht das überhaupt? der atmega8 hat doch nur eine serielle
schnittstelle, und die hab ich schon belegt (da gehen meine mididaten
raus ;) ).
und wie gesagt: sowas in software zu machen könnte für mich in arbeit
ausarten...

von Reiner (Gast)


Lesenswert?

"und wie gesagt: sowas in software zu machen könnte für mich in arbeit
ausarten..."

Dann solltest Du es outsourcen.  Firmen gibt es genug

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.