Frage zu I2C Bussystem?

2 Antworten

Ich denke, die Frage ist ungenau gestellt.
Die Lösung kommt beim Blick ins Datenblatt des Bausteins:
die linken 4 Bits deuten auf eine der 16 möglichen "Pages" (Seiten) der Adresse (und sind hier offenbar schon gegeben),
die drei Bits rechts sind dann die Adresse der 8 möglichen Bytes pro Seite.

Bild zum Beitrag

Bild zum Beitrag

Bild zum Beitrag

 - (Elektronik, rechnen, Gleichungen)  - (Elektronik, rechnen, Gleichungen)  - (Elektronik, rechnen, Gleichungen)
Mmmmm71 
Fragesteller
 14.03.2024, 16:00

Hey, danke für die antwort. Aber mein Problem ist, dass ich nicht weiß, was adresse 4 ist. Gibt es auch adresse 3 oder 7 oder 5? Ist adresse 4 die untereinander 3xa2 und p2

0
atoemlein  14.03.2024, 16:48
@Mmmmm71

Ja. Da 3 Bits für die Adresse pro "Page" reserviert sind, gibt es 8 Möglichkeiten, also die Adressen 0 bis 7.
Offenbar dient dies dazu, beim kleinsten Baustein dieser Familie hardwaremässig 8 Gruppen von zu adressierenden Geräten festzulegen (z.B. mit Dip-Switches, oder mit drei zusätzlichen Leitungen A0-A2), und der Rest der Adressierung (also die Page 0-15, codiert mit 4 Bits links) kommt über die Busleitung.
Ob P zu Page gehört, bin ich grad unsicher, jedenfalls steht das bei den höheren Bausteine, die eben auch mehr Speicherplatz und mehr Pages und mehr Bytes haben:
Der AT24C16A braucht ja schon 11 Bits für die Adressierung, also 7 Page-Adressen, deshalb da P0-P2 plus die vier P3 bis P6 links; die A-Bits sind da nicht gezeigt und müssen irgendwo separat übermittelt oder eben hardwaremässig geschaltet werden.

0

Der AT24C01 entspricht der ersten Zeile bezüglich Adressierung:

1 0 1 0 A2 A1 A0 R/W

Adresse 4 heißt: A2=1, A1=0, A0=0 (0b100)

Schreiben heißt: R/W=0

Woher ich das weiß:Studium / Ausbildung – Studium Elektrotechnik und Informationstechnik, Hobbybastler
Mmmmm71 
Fragesteller
 14.03.2024, 15:16

Adresse 4 heißt: A2=1, A1=0, A0=0 (0b100) kannst du das bitte genauer erklären?

0
kmkcl  15.03.2024, 07:14
@Mmmmm71

Wenn du den AT24C01 hast, kannst du bis zu 8 Bausteine diesen Typs parallel an einem I2C betreiben. Unterschieden werden diese durch die I2C-Adresse, die sich aus einem festen Präfix (0b1010) und den Bits A2,A1,A0 ergibt. Wenn es jetzt heißt, der Baustein hat Adresse 4, dann wandelst du die 4 in Binärzahl um. Bit 2 =1, Bit 1 und Bit 0 sind 0. Daher dann die resultierende Adresse 0b10101000.

Natürlich könnte es auch einen EEPROM mit Adressse 3 geben, der wäre dann 0b1010011+R/W. Aber danach ist hier nicht gefragt.

Wenn du statt einem AT24C01 einen AT24C02 hättest, könntest du nur 4 unterschiedliche Bausteine an einem I2C-Bus betreiben, die alle eine unterschiedliche Adresse bekommen. Denn dann stehen dir nur A2 und A1 nach außen zur Verfügung. P0 (Page) wird intern verwendet. Im Prinzip verhält sich ein AT24C02 genauso, wie wenn du zwei AT24C01 hättest, bei denen einmal A0=1 und einmal A0=0 ist.

0