mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ausgänge multiplexen


Autor: noname (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du brauchst ja auch einen _De_multiplexer.

Nimm lieber ein Schieberegister '595.

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Detlev (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Pete Nerlinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es gibt auch 1wire Portexpander...ds irgendwas bei maxim...

Autor: Manos (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.).

Autor: noname (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;) )

Autor: inoffizieller WM-Rahul (Gast)
Datum:

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

Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: noname (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: noname (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.