Seite 1 von 1

Adresse von cmps10 0xC0 zu groß ?

Verfasst: 09 Jan 2013, 21:18
von funmca
Hallo zusammen,

ich habe jetzt noch eine Frage zur Adressierung unter I2C.

der Kompass CMPS10 hat werksseitig die Adresse 0xC0, er funktioniert auch mit dem TX Controller und Robo Pro. Er hängt jetzt alleine am I2C Bus, wird aber mit 0x60 angesteuert.

Ich denke aber mal, wenn ich mal weitere I2C Geräte anschliessen möchte, müsste ich die korrekte Adresse ansteuern. Gebe ich aber die echte Adresse ein ,
kommt folgender Hinweis:
Bild

Ich denke mal er wird nur deswegen erkannt, weil er alleine am I2C Bus hängt. Es scheint im Kompass aber nur die Adresse 0x C0 bis CE zu geben.
http://www.robot-electronics.co.uk/htm/cmps10i2c.htm

Was soll ich also tun, wenn ich ihn direkt ansteuern möchte?

Vielen Dank schon einmal !

Gruß Marco

To Rei: If you should read this, the default Address of the CMPS09 in the FT I2C Library is 0x60, which works. But now I have that device alone at the Bus. I am not able to set the sensor's default address 0xC0 in the Robo program, it says the biggest value can be 0x7F. Do you have any Idea what to do if I like to add more sensors to the EXT2? If I understand the documentary of devantech correctly the possible addresses can only be 0xC0 to 0xCE....

Re: Adresse von cmps10 0xC0 zu groß ?

Verfasst: 10 Jan 2013, 07:09
von thkais
Hallo,
das liegt daran, dass in den meisten Datenblättern das R/W-Bit in der Adresse mitgezählt wird, bei RoboPro aber nicht.
Das R/W-Bit ist Bit 0 (also LSB), wenn man sich die Werte mal binär anschaut, wird es klar:
0xC0 = 11000000
0x60 = 01100000
Dabei ist es unwesentlich, ob ein Gerät alleine am Bus hängt oder nicht - die richtige Adresse ist immer notwendig, um das Gerät anzusprechen.
Adresse 0xC2 im Datenblatt wird dann 0x61, 0xC4 zu 0x62 usw.

Also bei den Adressen überall das R/W-Bit weglassen, dann sollte es klappen ;-)

Re: Adresse von cmps10 0xC0 zu groß ?

Verfasst: 10 Jan 2013, 09:28
von Dirk Fox
Hallo Marco,

Thomas hat es schon geschrieben - die I²C-Adresse muss immer korrekt sein und ist sieben Bit lang, sie kann also maximal den Wert 127 (dezimal) = 0x7F (Hex) annehmen.
Im ersten gesendeten Byte steht in den sieben höchstwertigen Bits die Adresse, im niederstwertigen Bit der Read/Write-Befehl - und manchmal wird in den Datenblättern das Adress- und Befehlsbyte komplett angegeben (also in Deinem Fall 0xC0 bzw. 0xC1, obwohl die Adresse nur aus den ersten sieben Bit besteht, also 0x60 lautet).

Mehr Hintergründe findest Du auch in der ft:pedia 3/2012 (http://www.ftcommunity.de/ftpedia_ausga ... 2012-3.pdf), falls Du sie noch nicht gelesen hast...

Beste Grüße,
Dirk

Re: Adresse von cmps10 0xC0 zu groß ?

Verfasst: 10 Jan 2013, 12:04
von funmca
Was für ein nettes Forum!! Vielen Dank für die Infos, schön dass sich alles so einfach auflöst.....