i2cdetect liefert vermeintlich falsche Adresse – Überprüfung und Erklärung

Bei den Experimenten mit dem SRF02 ist mir öfter aufgefallen, dass  der Befehl i2cdetect scheinbar falsche Werte liefert. So wurde mir bei dem SRF02, anstelle der eigentlich in der Werkseinstellung eingestellten Adresse „E0“, eine „70“ angezeigt. Nachdem auch bei der Änderung der Adresse des SRF02 nicht die eingegeben Werte (z.B. „EA“ -> „7A“) erschienen, ging es ans stöbern.

Nach etwas suchen bin ich dann auch fündig geworden.
Beim i2cdetect wird das achte Bit, das sogenannte Least Significant Bit (LSB), weggelassen, da dies die Datenrichtung (Write/Read) anzeigt und für die eigentliche Adresse nicht relevant ist. Wendet man dieses Wissen für das obige Beispiel an, kommt folgendes dabei heraus:

Adresse_Hex_7Bit: 70
Adresse_Bin_7Bit: 1110000
Adresse_Bin_8Bit: 11100000
Adresse_Hex_8Bit: E0