Forum: Mikrocontroller und Digitale Elektronik DS3231 I2C Adresse?


von Helmut K. (Gast)


Lesenswert?

Hi,

ich hab meiner Schaltung einen DS3231 Bautein, den ich als RTC verwenden 
wollte, gegönnt.

Im Datenblatt steht nichts über die I2C Adresse des Bausteins, auch 
keine Möglichkeit zum Einstellen einer Adresse.
Das ist mir jetzt schon bei mehreren Bausteinen aufgefallen, wie 
funktioniert das ganze ohne Adresse?

Gruß Helmut K.

von Tx2000 (Gast)


Lesenswert?

Hallo

laut Datenblatt (Seite 16) ist die Adresse 0x68.

von HildeK (Gast)


Lesenswert?

Zitat Datenblatt:
The slave address byte contains
the 7-bit DS3231 address, which is 1101000, fol-
lowed by the direction bit (R/W), which is 1 for a
read.
Also D0 für Write und D1 für Read.

von Volker Block (Gast)


Lesenswert?

was denn nun? 68 oder d0?

von Volker Block (Gast)


Lesenswert?

gefunden!
war auch falsch in Code Schnipseln über 3231.
Das wurde wohl nie ausprobiert.
Da kann man sich als Anfänger ja totsuchen.

"The i2c address for the DS1307 RTC is 0x68"

von Georg G. (df2au)


Lesenswert?

Die Adresse ist 0x68. Für die Übertragung wird sie einmal nach links 
geschoben und das R/W Bit wird angehängt. Macht 0xd0 bzw 0xd1. So ist es 
Standard bei allen I2C Bausteinen.

von schrieb schrieb schrieb (Gast)


Lesenswert?

Volker Block schrieb:
> was denn nun? 68 oder d0?

Da gibt wohl Unklarheiten, ob zuerst das MSB oder LSB übertragen wird.

von schrieb schrieb schrieb (Gast)


Lesenswert?

schrieb schrieb schrieb schrieb:
> Volker Block schrieb:
>> was denn nun? 68 oder d0?
>
> Da gibt wohl Unklarheiten, ob zuerst das MSB oder LSB übertragen wird.

Ich nehme das zurück und verweise auf 
Beitrag "Re: DS3231 I2C Adresse?"

von Georg G. (df2au)


Lesenswert?

Zuerst wird die Device Adresse übertragen, damit der Partner die Ohren 
auf lässt und nach dem R/W Bit reagiert.

von Volker Block (Gast)


Lesenswert?

und D0 für ds3231

von Norbert M. (Gast)


Angehängte Dateien:

Lesenswert?

Volker Block schrieb:
> was denn nun? 68 oder d0?

Alter Schwede, was hindert dich denn daran, selbst im Datenblatt 
nachzulesen? Digitale Elektronik geht nun mal nicht ohne LESEN.

schrieb schrieb schrieb schrieb:
> Da gibt wohl Unklarheiten, ob zuerst das MSB oder LSB übertragen wird.

Die Address-Übertragung ist bei I2C doch immer MSB first.

MGNOR

von Volker Block (Gast)


Lesenswert?

ok, nun hab ich es verstanden

von Karl H. (kbuchegg)


Lesenswert?

Aber AChtung:
Wenn eine I2C Lib verwendet wird, dann sollte man sich erst mal schlau 
machen (notfalls im Code), welche Form von der Lib verlangt wird.

Die Adresse, so wie sie im Datenblatt steht (also die 0x68), oder 
bereits die um 1 Bit nach links verschobene Version (0xD0 bzw. 0xD1), in 
der Bit0 für die RW Kennung bereits frei gemacht wurde.

Das ist im Prinzip kein großes Problem, allerdings kann einem die 
falsche Form den ganzen Tag versauen.

: Bearbeitet durch User
von chris (Gast)


Lesenswert?

Karl Heinz schrieb:
> Aber AChtung:
> Wenn eine I2C Lib verwendet wird, dann sollte man sich erst mal schlau
> machen (notfalls im Code), welche Form von der Lib verlangt wird.

das Gleiche gilt auch für den Eintrag im Datenblatt, auch hier habe ich 
schon beide Formen gesehen und hinterher verzweifelt den Fehler gesucht.
Aber vielleicht muss man wenn man den I2C verwendet auch einmal in diese 
'Falle' tappen um sich für sowas zu sensibilisieren ...

Chris

von Volker Block (Gast)


Lesenswert?

juhu, Uhr läuft.
 Mit selbstgeschriebenen Bit Bangs in Bascom
(was natürlich etwas überflüssig ist, gibt ja fertige Routinen)
Danke nochmal.

von Seano L. (Gast)


Lesenswert?

Auch lustig wenn es als Modul gekauft wurde und dort die falsch Adresse 
im Beipackzettel steht aber trotzdem immer wieder mal scheinbar korrekte 
Werte reinkommen. Hab so ein Ding irgendwann mal bestellt und gerade 
beim aufräumen drübergestolpert -> ausprobiert, mit falscher Addresse 
aus dem Beipackzettel. Eine Stunde sass ich da gerade dran, Kabel 
gecheckt, ... endlos Debugcode reingekloppt,... gegoogelt, hier 
draufgestossen, 0x68 ausprobiert -> läuft! AAAAARGH!

von Ralf (Gast)


Lesenswert?

>  Eine Stunde sass ich da gerade dran, Kabel gecheckt, ... endlos Debugcode > 
reingekloppt,... gegoogelt, hier draufgestossen, 0x68 ausprobiert ->
> läuft! AAAAARGH!
Sowas hatte ich auch schon, allerdings hatte ich damals die geniale(tm) 
Idee, den kompletten Bus einmal durch zu adressieren anstatt zuerst die 
Hardware zu prüfen. Alle Adressen, die mit einem ACKs reagiert haben 
wurden dann auf der seriellen Schnittstelle ausgegeben. Die 
entsprechende Firmware habe ich nie wieder gelöscht :)

Ralf

von Pete K. (pete77)


Lesenswert?

Ein Datenblatt ist durch nichts zu ersetzen, schon gar nicht durch einen 
"Beipackzettel" :-)

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
Noch kein Account? Hier anmelden.