Warum drei I2C Adressen beim CS3231-Modul für Arduino?

Gast #6876601
Lesenswert?
• ▲
▼
Hallo zusammen,

Ich habe bei einem DS3231 Modul (längliche Bauform mit Batterie) die I²C 
Adresse auslesen wollen und derer gleich drei gefunden (0x51, 0x59 und 
0x68).

0x68 ist der RTC-Baustein bzw. dessen Slave-Adresse - soweit klar (wird 
ja auch in der Standard-Lib genutzt).
0x51 ist der EEPROM AT24C32 mit A1 + A2 auf low - auch klar.

Was ist jetzt 0x59? Sie ändert sich zu 0x58, wenn A0 noch gebrückt wird 
(hängt also wohl auch mit dem EEPROM zusammen)



Vielen Dank
Thomas
Gast #6876858
Lesenswert?
• ▲
▼
Thomas Scheidt schrieb:
> So wie ich das jetzt verstehe, habe ich also 8 Bits (1 0 1 0 A2 A1 A0
> WP)
>
>  das erklärt auch den unterschied von 8 0x51 und 0x59.

Eigentlich nicht. I2C-Adressen werden meist mit 7 Bit angegeben, in dem 
Fall ist es 101 0 A2 A1 A0, also 0x50 bis 0x57, je nach Ax.
Gibt man sie in 8 Bit an, dann wären es zwei, je eine für Read und Write 
und zwar 1010 A2 A1 A0 R/W; sie würden dann 0xC0 oder 0xC1 lauten, wenn 
die Adressbits auf Null sind.
0x59 kann imho da nicht vorkommen, wenn schon, dann 0xC9 (und 0xC8), 
wenn A2 auf HIGH ist.
Gast #6876865
Lesenswert?
• ▲
▼
Thomas Scheidt schrieb:
> So wie ich das jetzt verstehe, habe ich also 8 Bits (1 0 1 0 A2 A1 A0
> WP)
>
>  das erklärt auch den unterschied von 8 0x51 und 0x59.

Nein, das erklärt nicht den Unterschied. Die Adresse 0x59 kann es laut 
dem verlinktem Datenblatt nicht geben (1 0 1 0 A2 A1 A0 != 1 0 1 1 0 0 
1). Dein WP ist in Wirklichkeit übrigens das R/W Bit, das an die Adresse 
angehängt wird.
Das deutet auf ein Hardwareproblem hin (Busterminierung, oder 
chinesischer EEPROM Nachbau?), oder deine I2C Scanner Software arbeitet 
nicht sauber.
Gast #6877126
Lesenswert?
• ▲
▼
Gefunden auf Phytec.eu:

"The M24C32-D contains an extra Identification page which is 32 byte 
big. The Identification Page (32 byte) is an additional page which can 
be written and (later) permanently locked in Read-only mode. To start 
communication between the bus master and the slave device, the bus 
master must initiate a Start condition. Following this, the bus master 
sends the device select code, shown
in Table 3 (most significant bit first).

Device select code when addressing the memory array
1 0 1 0 A2 A1 A0 (R/W)

Device select code when accessing the Identification page
1 0 1 1 A2 A1 A0 (R/W) "

k.A. ob Der Atmel da identisch ist...
Gast #6878934
Lesenswert?
• ▲
▼
EAF schrieb:
> EAF schrieb:
>> Default: 0x50 auf  DS3231 Boards.
> Das war allerdings ein Irrtum.
> 0x57 ist korrekt, für die billig China Boards.

Ja, weil sie an den Adressleitungen externe Pullups drin haben, obwohl 
beim Atmel-EE interne Pulldowns vorhanden sind.
Das mag beim M24C32-D auch anders sein, wobei da auch steht: Imput 
impedance für LOW: min. 30kΩ (interessant, für HIGH sind es >500kΩ).
Bei Batteriebetrieb des ganzen Moduls stört das, wie auch die Power-LED. 
Ich habe bei meinem Modul beides ausgebaut.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.