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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von H-G S. (haenschen)


Angehängte Dateien:

Bewertung
-1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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 Arduino Fanboy D. (ufuf)


Bewertung
1 lesenswert
nicht lesenswert
Software I2C über Schieberegister?

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

von Erich (Gast)


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

von schade (Gast)


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

von Clemens L. (c_l)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


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

von Arduino Fanboy D. (ufuf)


Bewertung
0 lesenswert
nicht lesenswert

: Bearbeitet durch User
von H-G S. (haenschen)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.