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.
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.
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"
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.
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
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.
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
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!
> 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