EEPROM mit GPIO [geschlossen]

Ich versuche es jetzt schon eine Weile, aber ich kann keinen EEPROM-Speicher finden, bei dem ein Adressbit einem GPIO zugeordnet ist. Oder aus einem anderen Blickwinkel, ein GPIO-Expander mit einem EEPROM-Speicher zum Speichern der Konfiguration.

Gibt es solche Geräte auf dem Markt?

BEARBEITEN: Natürlich wäre der einfachere Weg, eine MCU zu verwenden, aber das ist keine Option, da zusätzliche Abhängigkeiten erforderlich sind. Dies ist die erforderliche Funktionalität:

Eine CPU kann entweder von NOR-Flash 1 oder NOR-Flash 2 booten. Die einzige Möglichkeit, zwischen den Flashs umzuschalten, besteht darin, den #CS-Pin umzuschalten. Bevor die CPU bootet, muss die #CS-Pin-Info (0 oder 1) in der Hardware gesetzt werden. Dies kann durch die externe Entität erfolgen, die über einen GPIO und ein EEPROM verfügt. Die Konfiguration kann sich während der Laufzeit ändern, deshalb muss sie irgendwie programmierbar sein (dh über I2C). Also suche ich entweder nach einem EEPROM, das einen seiner adressierten Werte auf GPIOs abbildet (obwohl ich nur 1 brauche), oder ich suche nach einem GPIO, das mit (wie erwähnt) einem nichtflüchtigen Speicher erweitert ist. Auf diese Weise bleibt beim Einschalten der programmierte GPIO-Wert erhalten.

Das hat mehr Logik, aber das erklärt es auf den Punkt gebracht. Ich muss einfach einen Zustand eines GPIO (programmiert vor dem Herunterfahren) beim Einschalten beibehalten. Der gpio-Zustand muss theoretisch für unendlich gültig sein, deshalb ist das Laden eines Kondensators oder einer anderen Lösung ein No-Go.

Diese Geräte begleiten eine MCU, in der diese Funktionen normalerweise implementiert sind.
Und erfordert ein Programm, das gewartet werden muss.
Suchen Sie also eigentlich einen GPIO-Expander mit nichtflüchtigem Konfigurationsspeicher?
Was versuchen Sie zu tun?
Ich habe weitere Details hinzugefügt.

Antworten (3)

Und ich glaube, ich habe eine Lösung für mein Problem gefunden: diesen Maxim DS4520 Non Volatile I/O Expander .

Das scheint ein ziemlich teurer Teil zu sein - eine andere Option wäre ein nichtflüchtiges digitales Potentiometer (Sie würden nur die äußersten Enden seines Bereichs verwenden). Sie sind in 2- oder 4-Kanal-Versionen erhältlich, wenn Sie mehr als ein solches Konfigurationsbit benötigen.

Afaik, der übliche Weg ist, Ihre Anforderungen in zwei Teile aufzuteilen:

  • Speichern der Informationen im EEPROM (Ihrer MCU)
  • Einen GPIO-Expander haben

Die typischen Schritte sind:

  • Der Arduino liest die Konfiguration aus dem EEPROM
  • Der Arduino verwendet diese Konfiguration, um Signale an den GPIO-Expander zu senden

Und natürlich müssen Sie Code schreiben, um die Konfiguration zu ändern.

Tbh die Konfiguration ist wahrscheinlich nicht riesig, es kann einfach ein fest codiertes Array von Konfigurationen sein, die an den Expander übertragen werden, der den Speicherstapel verlässt, sobald die Funktion erledigt ist
@Ilya Ich nehme an, wenn EEPROM benötigt wird, kann sich die Konfiguration ändern
tbh, wenn eine MCU angeschlossen ist, kann ich so gut wie nie einen triftigen Grund finden, irgendetwas davon im Eeprom zu halten. Ich meine, es sei denn, es gibt mehrere Config-Sets? Selbst dann können sie hartcodiert werden und verwenden nur RAM 1-Konfigurationssatz zu einem Zeitpunkt, wenn sie benötigt werden ¯\_(ツ)_/¯
Ich kann mir vorstellen, dass es vom Benutzer ausgewählt werden kann oder so, aber in der Tat ist es aus der Frage unklar.
Ich habe weitere Details hinzugefügt. MCU ist natürlich die Lösung der Wahl, wie Attiny, aber es erfordert Programmierung, was die Komplexität erhöht.
Ja, jetzt scheint Ihre Lösung am besten zu sein.

Während es scheint, dass Sie eine kommerzielle Option gefunden haben, die Ihren Anforderungen entspricht, besteht die andere Alternative darin, Ihre eigene zu rollen. Ein Allzweck-Mikrocontroller mit NVram oder EEPROM kann als digitaler Port-Expander fungieren. Es gibt mehrere Bibliotheken online, um eine solche schnell bereitzustellen. Es ist im Grunde trivial für jeden mit Mikrocontroller-Erfahrung. Dies gibt Ihnen mehr Spielraum als ein speziell entwickeltes, da Sie möglicherweise kein i2c möchten oder mehr oder weniger Ports benötigen oder andere Funktionen benötigen.

Dies ist eine Bastlersicht und berücksichtigt nicht die erheblichen Geschäftskosten für Softwareentwicklung und -support. Selbst wenn Sie nur ein einzeiliges Programm haben, entstehen erhebliche Kosten. Die Frage von OP rabattiert MCUs, möglicherweise aus diesem Grund. Nebenbei gesagt, es ist nicht trivial, nur einfach. Ich fürchte, aus diesen Gründen herabzustimmen.