Forum: Mikrocontroller und Digitale Elektronik I2C EEPROM an 74HC165/595


von H-G S. (haenschen)


Angehängte Dateien:

Lesenswert?

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 :-)

von Georg G. (df2au)


Lesenswert?

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.

von Einer K. (Gast)


Lesenswert?

Software I2C über Schieberegister?

Das würde ich erst mal so zwischen sinnlos und schwierig einordnen.
In die Kategroie "Schnapsidee".

von Erich (Gast)


Lesenswert?

Besser ein EEPROM mit SPI (3-/4-Draht) Schnittstelle verwenden anstelle 
I2C.
Gruss

von schade (Gast)


Lesenswert?

H-G S. schrieb:
Schwaches Bild. Ich hätte gern das Weiß in noch höherer Auflösung.

von Clemens L. (c_l)


Lesenswert?

Mit sehr viel Aufwand wäre es möglich, I²C in zweimal unidirektionale 
Push-/Pull-Signale umzuwandeln:
http://www.ti.com/lit/pdf/slyt403

von Al. K. (alterknacker)


Lesenswert?

Warum nicht, wir wissen doch nicht ob es nur eine Übung ist.
Solche Bilder könnte die Forensoftware berichtigen oder den USER 
nochmals aufmerksam machen,wenn er den Haken raus nimmt..

von H-G S. (haenschen)


Lesenswert?

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?

: Bearbeitet durch User
von Georg G. (df2au)


Lesenswert?

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.

von H-G S. (haenschen)


Angehängte Dateien:

Lesenswert?

So ?

Braucht es einen Gate-Vorwiderstand ? Welchen Wert müsste der haben ?

Edit: kann etwas passieren wenn das Gate eines Mosfet größeres Potential 
hat wie sein Drain ?




Ist das SPI-EEPROM leichter anzusteuern (Protokoll-mäßig) ?

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

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 ;-)

von H-G S. (haenschen)


Lesenswert?

Gibt das EEPROM eigentlich ein CLK aus ? Ich habe I2C noch nicht so 
verinnerlicht  :-)

von Einer K. (Gast)


Lesenswert?


von H-G S. (haenschen)


Lesenswert?

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.

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

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.

von Georg G. (df2au)


Lesenswert?

Peter D. schrieb:
> Dann weiß man, das SCL nur ein Eingang ist.

Clock Stretching? Jede vernünftige I2C Lib ist  darauf vorbereitet.

von H.Joachim S. (crazyhorse)


Lesenswert?

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.

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
Noch kein Account? Hier anmelden.