Hallo zusammen, ich bin auf der Suche nach einem I2C I/O Expander mit Reset Funktion, bei welchem man die default Werte welche der I/O Expander durch den Reset annimmt selbst festlegen kann. Alle I/O Expander welche ich bis jetzt gefunden habe, haben einen festen default Wert (11111111). Gibt es so einen I/O Expander oder muss ich mir eine externe Schaltung überlegen?
Jonathan schrieb: > default Werte Von Was? Jonathan schrieb: > default Wert (11111111) Von Was? Nach dem Reset sind alle I/Os auf Eingang gesetzt. Wen du definierte Pegel haben willst musst du mit Pulup/-down arbeiten.
Expander wie der PCA9534 haben keine internen Pullup-Widerstände; du kannst die Pins extern hoch oder runter ziehen. Wenn du mit "Wert" den Inhalt des Konfigurations-Registers meinst: so etwas gibt es nicht; dafür bräuchte man einen Chip mit EEPROM oder Flash. Du könntest ein Mikrocontroller entsprechend programmieren.
Moin, wie schon oben erwähnt, würde ich einen ATtiny z.B. den 4313 als Expander nehmen. Der ist mit wenigen Zeilen so programmiert, wie Du ihn brauchst. Der I2C Treiber PowerMCU hat mir da gute Dienste erwiesen (in ASM). Gruß Carsten
Danke für eure Antworten ich hab mich etwas dumm ausgedrückt. Aber ja ich habe gemeint, dass alle I/Os immer als Eingang gesetzt sind nach einem Reset, bzw. die entsprechenden Register auf 1111 1111. Das mit dem Mikrocontroller behalte ich mal im Hinterkopf, falls die Zustände vor dem Reset doch noch gespeichert werden sollen macht das auf jeden Fall Sinn aber ich glaube ich werde erstmal bei dem I/O Expander bleiben. Ich denke die Wahl wird auf den PCA9538 fallen, den hatte ich mir auch schon angeschaut. Mit dem I/O Expander sollen Spannungsversorgungen für andere Geräte geschaltet werden. Da ist momentan auch noch die Frage ob ich ein externes Netzteil mit einem Relais schalte oder direkt auf der Platine eigene DC/DC Wandler mit ON/OFF Eingang verwende. Ich wollte ursprünglich die Relais direkt über den I/O Expander schalten und bin deswegen gar nicht auf die Idee mit den Pullup/down-Widerständen gekommen. Wenn ich jetzt aber noch einen passenden Treiber Baustein für das Relais finde oder einen Transistor zum ansteuern verwende sollte ja eure Vorgeschlagene Lösung mit den Pullup/-down Widerständen funktionieren.
Clemens L. schrieb: > Wenn du mit "Wert" den Inhalt des Konfigurations-Registers meinst: so > etwas gibt es nicht; dafür bräuchte man einen Chip mit EEPROM oder > Flash. Du könntest ein Mikrocontroller entsprechend programmieren. Genau das hat Cypress gemacht und jetzt kann man es bei Digikey und Mouser kaufen: CY8C95x0A -- EEPROM, PWM, 20, 40 oder 60 I/O-Pins, bis zu sieben I2C-Adress-Pins -> erweiterbar bis über 6000 I/O.
1 | The system master writes to the I/O configuration registers through |
2 | the I2C bus. Configuration and output register settings are storable |
3 | as user defaults in a dedicated section of the EEPROM. |
4 | If user defaults were stored in EEPROM, they are restored to the |
5 | ports at power up. |
https://www.infineon.com/cms/de/product/microcontroller/legacy-microcontroller/legacy-8-bit-16-bit-microcontroller/psoc-1/cy8c95xx/
Bauform B. schrieb: > https://www.infineon.com/cms/de/product/microcontroller/legacy-microcontroller/legacy-8-bit-16-bit-microcontroller/psoc-1/cy8c95xx/ Danke habs mir mal angeschaut und sieht eigentlich genau nach dem aus was ich gesucht habe. Ich werde aber dann vermutlich doch bei der Pullup/down Lösung bleiben, dass sollte für meine Anforderungen reichen und ist weniger kompliziert.
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.