I2C EEPROM an 74HC165/595

OP #5014756
Hallo!

Ich müsste ein serielles EEPROM an eine I/O-Platine anschliessen. 
Eingänge sind alles 74HC165 die mit einem 22k-Widerstand an Masse 
hängen. Ausgänge wären 74HC595 die ich (ungern) alle gleichzeitig 
hochohmig schalten kann über den OE-Pin.

Da ich gerade etwas schwachgeistig bin und eine elektrische Katastrophe 
vermeiden will, frage ich hier mal nach ob jemand etwas dazu weiss :-)
Angehängte Dateien:
OP
Georg G. schrieb:
> I2C ist als "jeder Teilnehmer darf nur nach GND ziehen" mit Pull-Up
> definiert. Du musst also SDA und SCL separat hochohmig machen können und
> sie dürfen nie nach VCC gehen.
>
> Notfalls musst du noch 2 MOSFET spendieren.


Klingt gut!

Kannst du das irgendwie aufzeichnen ?




Erich schrieb:
> Besser ein EEPROM mit SPI (3-/4-Draht) Schnittstelle verwenden anstelle
> I2C.

Sind die irgendwie seltener als I2C-EEPROMs?
H-G S. schrieb:
> Kannst du das irgendwie aufzeichnen
Was ist da so kompliziert? Den SDA und SCL Ausgang des Schieberegisters 
auf das Gate je eines MOSFET (BS170), Source an GND, Drain an die 
Busleitung. Und je einen Eingang des HC165 an jede Busleitung. Die 22K 
sollten wenn möglich raus, notfalls wird es aber auch so spielen.

Der Rest ist Bitbanging (der übelsten Sorte). Viel Spaß dabei. Ich würde 
das Konzept noch mal überdenken.
Gast
Georg G. schrieb:
> Du musst also SDA und SCL separat hochohmig machen können und
> sie dürfen nie nach VCC gehen.

Früher (tm) hätte man das ganz einfach dadurch geregelt, dass man hinter 
den Push-Pull-Ausgang einfach eine (Schottky)-Diode gehängt hätte. Wenn 
man die richtig rum einbaut, zieht da nichts mehr nach VCC ;-)
OP
Die Seite ist prima :-)


Edit: ist es eigentlich noch im Sinne des I2C-Designs wenn die 
EEPROM-Schaltung auf einer steckbaren kleinen Platine ist? Es soll eine 
Art Speicherkarte werden die bei Bedarf eingesteckt wird. Maximale 
Leiterbahnlänge wäre wohl um die 5-10cm und die Stecker wären 
gewöhnliche einreihige Stiftleisten RM2,54mm.
H-G S. schrieb:
> Gibt das EEPROM eigentlich ein CLK aus ? Ich habe I2C noch nicht so
> verinnerlicht  :-)

Man darf in das Datenblatt ruhig mal reinschauen. Dann weiß man, das SCL 
nur ein Eingang ist.
SDA ist bidirektional, d.h. da braucht man einen open-drain Ausgang 
(Diode oder 74HC125-Gatter).

Über SPI-Expander ein I2C zu emulieren ist möglich, aber nicht 
sonderlich schnell. Aber I2C kennt ja keine Mindestgeschwindigkeit.
Man schreibt sich erstmal die 5 Grundfunktionen:
scl_low()
scl_high()
sda_low()
sda_high_z()
sda_in()
Und die fügt man dann in irgendeine Bit-Banging I2C-Lib ein.
H-G S. schrieb:
> Sind die irgendwie seltener als I2C-EEPROMs?

Nicht wirklich.
https://www.digikey.com/products/en/integrated-circuits-ics/memory/774?FV=ffe00306%2C1fec000b&mnonly=0&newproducts=0&ColumnSort=0&page=4&stock=0&pbfree=0&rohs=0&k=eeprom&quantity=&ptm=0&fid=0&pageSize=25&pkeyword=eeprom

Selbst wenn du die SPI vor deinen Schieberegistern nicht nutzen 
kannst/willst (das wäre der beste Weg) ist es immer noch einfacher, weil 
es keine bidirektionale Leitung gibt.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.