Hallo, ich habe hier seltsame EEPROMs 24LC02B von Microchip, die über einen ACK-Scanner mit 16 Adressen (160 bis 175, also 8 mal Lesen&Schreiben) ansprechbar sind. Laut Datenblatt sind die Pins A0 bis A2 nicht benutzt (Punkt 8.4) und die korrespondierenden I2C-Adressbits unberücksichtigt (Punkt 3.6). So lassen sich aber nicht acht sondern nur eines davon gleichzeitig am I2C-Bus verwenden. Ich habe hier bei der Recherche dieses EEPROM-Types noch nie etwas über so eine Adressierung gelesen. Habe ich einen Denkfehler? Ich hoffe, ich war verständlich.
Rolf schrieb: > ich habe hier seltsame EEPROMs 24LC02B von Microchip, > die über einen ACK-Scanner mit 16 Adressen (160 bis 175, also 8 mal > Lesen&Schreiben) ansprechbar sind. > Laut Datenblatt sind die Pins A0 bis A2 nicht benutzt (Punkt 8.4) und > die korrespondierenden I2C-Adressbits unberücksichtigt (Punkt 3.6). > So lassen sich aber nicht acht sondern nur eines davon gleichzeitig am > I2C-Bus verwenden. Ohne die Adressleitungen A0-A2 kannst du nur eines an einem Bus verwenden. Dass dein Scanner das Teil unter 8 Adressen findet, liegt wohl daran, dass der Chip auf die Adresse 1010xxx reagiert, die kommt beim Durchprobieren halt 8 mal vor.
Das ist ganz normal für einen I2C EEPROM. Je nachdem ob der Adress-Pin mit Masse oder Versorgungsspannung verbunden ist hat das jeweilige Device eine andere I2C-Adresse. Mit den 3 Adress-Pins kannst du also (mit dem gleichen Baustein) 2^3 also 8 verschiedene I2C-Adressen an einem I2C-Bus haben. Wenn es die Pins nicht gäbe, so gäbe es nur eine Adresse und dementsprechend könnte jeder I2C-Bus nur einen dieser Speicherbausteine dran haben. Ansonsten hätten 2 Devices die gleiche Adresse und das geht nicht.
Dann macht er doch genau das, was im Datenblatt steht: er ignoriert die unteren 3 Adressbits - wo ist dein Problem? Gabs schon bei anderen Typen. Wer mehr Speicher braucht, schaltet eh nicht 2 oder mehr an den Bus, sondern nimmt gleich die passende Grösse in einem Chip. Das ganze dient einfach der Kostenminimierung, man spart sich Adresslogik und das bonden für die 3 Pins. Alles gut.
Unberücksichtigt bedeutet wohl, dass es egal ist, welcher Pegel an dieser Stelle über den Bus kommt. Das führt dazu, dass Du dasselbe mehrfach im Adressraum siehst (man nennt es auch gespiegelt). Und das mit Ansage. Dein IC macht also das, was im Datenblatt beschrieben ist. Es ist ja vom Speicherplatz her ein eher kleines Eeprom.Microchip ist beim Design wohl davon ausgegangen, dass man erstmal ein größeres einsetzt, bevor man mehrere davon an den Bus hängt. Die größeren dekodieren dann alle Adressbits.
Hallo Rolf, ich bin auch schon mal in die gleiche Falle getappt. Das ist im Datenblatt nicht gut dargestellt. Die Pins werden ja mit A0, A1 und A2 bezeichnet, sind aber intern nicht verbunden. Es gibt aber von Microchip auch eine korrekte U 2C-Variante. Ich hab den Typ jetzt gerade nicht parat. Ich hoffe, dass mir der Fehler nicht mehr passiert.
> Das ist ganz normal für einen I2C EEPROM. Je nachdem ob der Adress-Pin > mit Masse oder Versorgungsspannung verbunden ist hat das jeweilige > Device eine andere I2C-Adresse. [ ] Du hast das Datenplatt gelesen. > Das ganze dient einfach der Kostenminimierung, man spart sich > Adresslogik und das bonden für die 3 Pins. ..und man bekommt ihn ohne Funktionseinschränkungen auch in einem sot23-5 unter. Wer mehr davon an einem Bus anschließen will greift zu einem I2C-Muliplexer (oder behelfsweise zu Analogschaltern).
Dann habe ich also keinen Denkfehler und die Teile sind nur eingeschränkt nutzbar. Vielen Dank an alle.
> [..] die Teile sind nur eingeschränkt nutzbar.
Wieso eingeschränkt? Klappt doch hervorragend.
Naja, bisschen blöd ist schon, dass die 3 Pins mit A0, A1 und A2 bezeichnet sind, wie man es von anderen gewohnt ist. Hätte man in der SO8-Zeichnung auch als nc bezeichnen können. Klar, steht auch direkt dabei dass die keine Funktion haben, trotzdem unnötig.
Bei den etwas größeren I2C EEPROMs (04, 08, 16) werden die Adressleitungen teilweise ebenfalls nicht ausgewertet, aber der Baustein verwaltet unter den verschiedenen I2C-Adressen jeweils eine andere 256-Byte Page. Die kleinen I2C EEPROMs haben im Protokoll nämlich nur 1 Byte für die Adressübertragung vorgesehen. Also Aufpassen, was die eigene EEPROM-Routine da sendet!
:
Bearbeitet durch User
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.