PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I2C-Gerät "korrekt" vom Bus trennen?



Jaecko
11.06.2011, 12:17
Moin.

Ist es mit der angehängten Schaltung möglich, ein I2C-Gerät so vom Bus zu trennen, dass der Bus selbst weiterhin funktioniert und das Gerät selbst jedoch weiterhin beide Busleitungen auf Leerlauf = High hat, also nicht mertk, dass eigentlich kein Bus mehr da ist?
Vorlage dieser Schaltung ist der klassische 3V/5V-I2C-Pegelwandler.

Hintergrund: Ich möchte mehrere ST24Cxxx-EEPROMs in einem grösseren Array zusammenschalten. Bei den 512ern gibts jedoch nur 2 Adressleitungen => Am Bus wären nur 4 dieser ICs möglich. Nun sollen mehrere dieser 4er-Gruppen über eine solche Schaltung einfach vom Bus "getrennt" werden. Eine Art Chip-Select wählt dann die jeweilige Gruppe aus.

Klappt das so, oder ist da noch irgendwo ein (Denk-)Fehler drin?

mfG

Klebwax
11.06.2011, 13:00
Schau dir mal PCA9540 und Freunde an.

MfG Klebwax

Jaecko
11.06.2011, 13:28
Naja, der PCA liest sich schon nicht schlecht, fällt aber aus mehreren Gründen aus:
- Bei "Privatkunden-Lieferanten" nicht erhältlich (Conrad, Reichelt etc...)
- Bei Farnell zwar erhältlich, aber fast 3x teurer als die paar Teile der o.g. Schaltung
- Geschwindigkeitsverlust/Treiber"problem" durch zusätzliches Kontrollkommando, das auch per I2C gesendet werden muss.

PICture
11.06.2011, 14:00
Haallo!

@ Jaecko

Deine Schaltung sieht sehr gut aus. :D

Leider, wie auch immer, scheint mir Verwendung von Analogmultiplexer einfacher/billiger zu sein.

Besserwessi
11.06.2011, 20:36
Wenn man nicht auf I2C als Interface festgelegt ist, gäbe es sonst auch größere Speicherchips (Dataflash) mit mehr Speicher in einem Chip: z.B. AT45DB161D-SU mit 16 MBit in einem SOI8 Gehäuse, allerdings mit dem schnelleren SPI Interface.

Jakob L.
11.06.2011, 22:11
Ich glaube, dass die Schaltung so nicht funktionieren wird. Wenn der AVR die I2C-Leitungen auf Masse zieht, dann leiten die Mosfets durch die parasitäre Diode von Source nach Drain völlig unabhängig davon, welche Spannung am Gate anliegt.

Eigentlich müsste es auch reichen, wenn man nur die SCL-Leitung schaltbar macht. Solange es keine Impulse auf Clock gibt, wird das Device die Spannung auf SDA wohl einfach ignorieren.

Falls es dir bei der Aktion nur um eine höhere Kapazität geht, dann wäre eventuell auch eine SD-Karte eine Überlegung wert. Die Karten sind so weit verbreitet, dass man auch in einigen Jahren noch kompatible Ersatzkarten bekommt. Dabei muss man sich nicht auf einen Hersteller festlegen und man kann ohne Änderungen an der Schaltung von zukünftigen Kapazitätssteigerungen profitieren.

PICture
12.06.2011, 00:04
Das stimmt. Ich habe die Body-Dioden übersehen. :oops:

Besserwessi
12.06.2011, 09:54
Solange der Teil rechts der Schaltung inaktiv ist, d.h. den I2C Bus auf High hat, stören die Body-dioden nicht. Der Vorschlag mit einem analogen MUX wie 74HC4052 ist aber vermutlich einfacher.

Jaecko
12.06.2011, 11:57
Sodele, also es wird sich wohl dann auf nen analogen MUX rauslaufen. Allerdings der 4053.
(Immer wieder faszinierend, dass es doch so "einfach" geht)

Ne SD-Karte wäre zwar auch ne Möglichkeit, allerdings hab ich dann hier wieder etwas mehr Aufwand;
Kontaktierung, Kein Byteweises ansprechen möglich, "relativ" viel Flash/RAM-Bedarf im Vergleich zur I2C-Lösung, Pegelwandler nötig etc.

uwegw
12.06.2011, 12:25
Wie viel Speicherplatz brauchst du denn eigentlich?

Crazy Harry
16.06.2011, 10:59
Nimm den PCA9546 - den gibts bei Reichelt und der funktioniert hervorragend