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?
Du brauchst ja auch einen _De_multiplexer. Nimm lieber ein Schieberegister '595.
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
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)
"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.).
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 ;) )
Zu Schieberegistern gibt es einen schönen Wiki-Artikel (wenn ich den finden würde, würde ich den Link auch posten).
"(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.
"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.
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...
"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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.