Nicht genug Pins, suche nach einem "Demultiplexer", der den Zustand hält [geschlossen]

Ich möchte ein einfaches Display mit einem Mikrocontroller steuern. Das Display hat 8 Eingangspins, der Mikrocontroller nur 6.

Gibt es ein IC, dem ich das zwischenschalten kann

  • lässt mich den Zustand jedes seiner Ausgangspins einstellen und behält es so bei
  • erfordert die geringste Menge an Eingangspins, die erforderlich sind

Irgendwas mit seriellem Bus vielleicht?

Ich weiß, dass normalerweise Anzeigecontroller verwendet werden, aber gibt es Geräte für allgemeine Zwecke?

Versuchen Sie, nach „GPIO-Expander“ zu suchen.
Das ist genau das, wonach ich gesucht habe, danke!
Ironischerweise werden die kleinen MCUs typischerweise genau dafür verwendet. Sie werden als " LCD serielle Schnittstelle " bezeichnet.
Im kleinen Maßstab ist dies ein "adressierbarer Riegel", wie 74HC259.

Antworten (3)

Was Sie suchen, ist ein GPIO-"Expander" -Chip. Es sind viele verfügbar, die normalerweise I2C oder SPI verwenden, um eine Verbindung zum Mikrocontroller herzustellen. Der Microchip MCP23017(I2C)/MCP23S17(SPI) ist nur ein Beispiel, das ich in der Vergangenheit verwendet habe. Es gibt viele andere zur Auswahl.

PCF8574 ist ein weiterer gebräuchlicher Chip dieses Typs (in diesem Fall I2C), für dessen Verwendung viele Ressourcen online verfügbar sind (sie werden besonders häufig verwendet, wenn Arduinos mit LCD-Modulen verbunden werden, was zu vielen Tutorial-Inhalten geführt hat).

Ein typisches Schieberegister ist 74HC595. Was Sie übergeben, ist ein Byte mit 8 Bits, also 8 Signalen. Sie müssen nur das Byte (8 Pins) im Speicher speichern, das nur ein Byte kostet.

Dafür benötigen Sie nur 3 Pins. Außer GND/VCC braucht man nur 3 Pins.

Sie können sogar 4 davon verketten, 32 Pins steuern (deren Speicherung 4 Byte kostet) und trotzdem nur 3 Pins verwenden (außer GND/VCC).

Sie möchten höchstwahrscheinlich entweder ein "Schieberegister" oder ein "Latch".

Schieberegister ermöglichen es Ihnen, Daten seriell zu laden, und werden häufig mit MCUs verwendet - 74HC595 ist ein weit verbreitetes.

Mit Latches können Sie ein Steuersignal verwenden, um einen Wert zu halten. Diese werden häufig beim Speicherzugriff verwendet, wenn Sie eine Adresse zwischenspeichern möchten. Wenn Sie beispielsweise eine 16-Bit-Adresse von einem 8-Bit-Bus laden möchten, können Sie die obere Hälfte laden, sie zwischenspeichern und dann die untere Hälfte laden Hälfte.

Sie könnten einen 8-Bit-Bus mit zwei 4-Bit-Latches realisieren. Jeder Latch könnte sein eigenes Steuersignal unter Verwendung von zusätzlichen 2 Pins haben. Das ergibt insgesamt 6. Sie können dies auch in 5 Pins tun, indem Sie einen Inverter verwenden, sodass ein Latch seinen Wert hält, während der andere transparent ist.

Eine Alternative ist PCF8574, ein bidirektionaler I2C-8-Bit-Parallelport. Was Sie verwenden, hängt davon ab, ob Sie SPI oder I2C bevorzugen.
Gelatchte Schieberegister klingen auch sehr nützlich, da sie viel schneller sein könnten. Ich habe die Antwort von IO Expander akzeptiert, da in meinem Anwendungsfall möglicherweise auch Informationen in die andere Richtung fließen, was viele Expander zu unterstützen scheinen.